Bug#914688: g++: fails to understand BOOST_OS_LINUX on ppc64el?
On Mon, 26 Nov 2018 11:50:21 +0100 Matthias Klose wrote: > Control: severity -1 important > Control: tags -1 + moreinfo > > On 26.11.18 11:23, Gianfranco Costamagna wrote: > > Source: gcc-8 > > Version: 8.2.0-10 > > Severity: serious > > Affects: src:performous > > > > Hello, after trying to debug why src:performous was FTBFS on ppc64el, I got this issue: > > > > test example reproducing the issue: > > cat test.c++ > > #include > > #include > > > > #if BOOST_OS_LINUX > > #warning "OS LINUX DEFINED" > > #endif > > > > int main() > > { > >printf("%d\n", BOOST_OS_WINDOWS); > >printf("%d\n", BOOST_OS_LINUX); > > } > > > > > > apt-get install libboost-dev > > > > on an amd64 machine this happens: > > $ g++ test.c++ > > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > > #warning "OS LINUX DEFINED" > > ^~~ > > > > $ g++ test.c++ -std=c++14 > > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > > #warning "OS LINUX DEFINED" > > ^~~ > > > > (everything is ok) > > > > on a ppc64el machine this happens instead: > > g++ test.c++ > > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > > #warning "OS LINUX DEFINED" > > ^~~ > > > > g++ test.c++ -std=c++14 > > (NO WARNINGS HERE). > > > > this is why the package FTBFS, because that macro is not defined when std is defined. > > > > Any idea? > > (this might be a boost issue, but I can't prove it!) > > ... but you are sure enough to file a RC issue for a different package. > > > same happens with old g++-7, and with c++0x or c++11 >
Bug#914688: g++: fails to understand BOOST_OS_LINUX on ppc64el?
control: severity -1 serious I reduced to a simple test case that involves no boost at all, and only a macro. cat test.cpp this code shows on ppc64el: $ g++ test.cpp -std=c++14 -c NO OUTPUT (wrong) $ g++ test.cpp -c test.cpp:2:2: warning: #warning defined linux [-Wcpp] #warning defined linux ^~~ test.cpp:6:2: warning: #warning defined __linux [-Wcpp] #warning defined __linux ^~~ good output. Is is a clear test case now? on amd64 both are returning correct, at least __linux is still defined. $ g++ test.cpp -c -std=c++14 test.cpp:6:2: warning: #warning defined __linux [-Wcpp] #warning defined __linux ^~~ $ g++ test.cpp -c test.cpp:2:2: warning: #warning defined linux [-Wcpp] #warning defined linux ^~~ test.cpp:6:2: warning: #warning defined __linux [-Wcpp] #warning defined __linux ^~~ I hope this makes the issue a little bit more clear! G.
Bug#914688: g++: fails to understand BOOST_OS_LINUX on ppc64el?
Control: severity -1 important Control: tags -1 + moreinfo On 26.11.18 11:23, Gianfranco Costamagna wrote: > Source: gcc-8 > Version: 8.2.0-10 > Severity: serious > Affects: src:performous > > Hello, after trying to debug why src:performous was FTBFS on ppc64el, I got > this issue: > > test example reproducing the issue: > cat test.c++ > #include > #include > > #if BOOST_OS_LINUX > #warning "OS LINUX DEFINED" > #endif > > int main() > { > printf("%d\n", BOOST_OS_WINDOWS); > printf("%d\n", BOOST_OS_LINUX); > } > > > apt-get install libboost-dev > > on an amd64 machine this happens: > $ g++ test.c++ > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > #warning "OS LINUX DEFINED" > ^~~ > > $ g++ test.c++ -std=c++14 > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > #warning "OS LINUX DEFINED" > ^~~ > > (everything is ok) > > on a ppc64el machine this happens instead: > g++ test.c++ > test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] > #warning "OS LINUX DEFINED" > ^~~ > > g++ test.c++ -std=c++14 > (NO WARNINGS HERE). > > this is why the package FTBFS, because that macro is not defined when std is > defined. > > Any idea? > (this might be a boost issue, but I can't prove it!) ... but you are sure enough to file a RC issue for a different package. > same happens with old g++-7, and with c++0x or c++11 look at include hierarchy, and defined macros, and try to figure out what happens here.
Bug#914688: g++: fails to understand BOOST_OS_LINUX on ppc64el?
Source: gcc-8 Version: 8.2.0-10 Severity: serious Affects: src:performous Hello, after trying to debug why src:performous was FTBFS on ppc64el, I got this issue: test example reproducing the issue: cat test.c++ #include #include #if BOOST_OS_LINUX #warning "OS LINUX DEFINED" #endif int main() { printf("%d\n", BOOST_OS_WINDOWS); printf("%d\n", BOOST_OS_LINUX); } apt-get install libboost-dev on an amd64 machine this happens: $ g++ test.c++ test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] #warning "OS LINUX DEFINED" ^~~ $ g++ test.c++ -std=c++14 test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] #warning "OS LINUX DEFINED" ^~~ (everything is ok) on a ppc64el machine this happens instead: g++ test.c++ test.c++:5:2: warning: #warning "OS LINUX DEFINED" [-Wcpp] #warning "OS LINUX DEFINED" ^~~ g++ test.c++ -std=c++14 (NO WARNINGS HERE). this is why the package FTBFS, because that macro is not defined when std is defined. Any idea? (this might be a boost issue, but I can't prove it!) same happens with old g++-7, and with c++0x or c++11 G.