Bug 1262444

Summary: FTBFS: ./boost/test/impl/execution_monitor.ipp:1383:7: error: expected id-expression before '(' token
Product: [Fedora] Fedora Reporter: Karsten Hopp <karsten>
Component: boostAssignee: Jonathan Wakely <jwakely>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: medium    
Version: rawhideCC: dakingun, denis.arnaud_fedora, jwakely, pmachata
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64le   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-09-14 17:39:27 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Bug Depends On:    
Bug Blocks: 1071880    

Description Karsten Hopp 2015-09-11 17:08:22 UTC
Description of problem:
boost-1.59.0-3.fc24 fails to build on ppc64le (maybe on ppc64 too, but if aborted on LE first):

gcc.compile.c++ serial/boost/bin.v2/libs/test/build/gcc-5.1.1/release/debug-symbols-on/pch-off/threading-multi/execution_monitor.o
    "g++"  -g -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -m64 -mcpu=power7 -mtune=power8 -fno-strict-aliasing -Wno-unused-local-typedefs -pthread -fPIC  -DBOOST_ALL_NO_LIB=1 -DBOOST_CHRONO_DYN_LINK=1 -DBOOST_SYSTEM_DYN_LINK=1 -DBOOST_SYSTEM_NO_DEPRECATED -DBOOST_TEST_DYN_LINK=1 -DBOOST_TIMER_DYN_LINK=1 -DNDEBUG  -I"." -c -o "serial/boost/bin.v2/libs/test/build/gcc-5.1.1/release/debug-symbols-on/pch-off/threading-multi/execution_monitor.o" "libs/test/src/execution_monitor.cpp"
In file included from /usr/include/fenv.h:114:0,
                 from /usr/include/c++/5.1.1/fenv.h:36,
                 from ./boost/detail/fenv.hpp:97,
                 from ./boost/test/execution_monitor.hpp:64,
                 from ./boost/test/impl/execution_monitor.ipp:31,
                 from libs/test/src/execution_monitor.cpp:16:
./boost/test/impl/execution_monitor.ipp: In function 'unsigned int boost::fpe::enable(unsigned int)':
./boost/test/impl/execution_monitor.ipp:1383:7: error: expected id-expression before '(' token
     ::feclearexcept(BOOST_FPE_ALL);
       ^
./boost/test/impl/execution_monitor.ipp: In function 'unsigned int boost::fpe::disable(unsigned int)':
./boost/test/impl/execution_monitor.ipp:1420:7: error: expected id-expression before '(' token
     ::feclearexcept(BOOST_FPE_ALL);
       ^

Version-Release number of selected component (if applicable):
boost-1.59.0-3.fc24

How reproducible:
always

Steps to Reproduce:
1.ppc-koji build --scratch f24 boost-1.59.0-3.fc24.src.rpm
2.
3.

Actual results:


Expected results:


Additional info:

Comment 1 Jonathan Wakely 2015-09-12 10:14:58 UTC
It's just missing a #include <fenv.h>

I'll prepare a patch.

Comment 2 Jonathan Wakely 2015-09-14 13:06:33 UTC
The problem is not a missing include (although it should be including it anyway) but the fact that ppc64 has an optimized version of feclearexcept in <bits/fenvinline.h>, which is a macro that is not valid to use as the qualified name ::feclearexcept.

Comment 3 Jonathan Wakely 2015-09-14 17:39:27 UTC
Should be fixed in boost-1.59.0-4.fc24