pkgsrc-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

pkg/42746: devel/boost-libs needs an extra flag with gcc-4.4



>Number:         42746
>Category:       pkg
>Synopsis:       devel/boost-libs needs an extra flag with gcc-4.4
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    pkg-manager
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Feb 05 04:25:00 +0000 2010
>Originator:     Steven Drake
>Release:        boost-libs-1.41.0 (pkgsrc-2009Q4)
>Organization:
>Environment:
System: Linux idran 2.6.30 #2 PREEMPT Sun Aug 9 18:32:44 NZST 2009 i686 
pentium4 i386 GNU/Linux
Architecture: pentium4
Machine: i686
C library: GNU C Library stable release version 2.10.1, by Roland McGrath et al.

gcc (GCC) 4.4.1
>Description:
        gcc-4.4 needs the command line flag '-std=c++0x' to use scoped enums. 

>How-To-Repeat:
cd devel/boost-libs ; make 
[....]
gcc.compile.c++ 
bin.v2/libs/wave/build/gcc-4.4.1/release/threading-multi/instantiate_cpp_exprgrammar.o
In file included from 
./boost/spirit/home/support/iterators/multi_pass_fwd.hpp:14,
                 from 
./boost/spirit/home/support/iterators/detail/first_owner_policy.hpp:11,
                 from ./boost/spirit/home/support/multi_pass.hpp:16,
                 from ./boost/spirit/include/support_multi_pass.hpp:17,
                 from ./boost/wave/cpplexer/cpp_lex_iterator.hpp:23,
                 from libs/wave/src/instantiate_cpp_exprgrammar.cpp:23:
./boost/spirit/home/support/multi_pass_wrapper.hpp:22: warning: scoped enums 
only available with -std=c++0x or -std=gnu++0x
./boost/spirit/home/support/multi_pass_wrapper.hpp:31: error: 'clear_mode' is 
not a class or namespace
In file included from 
./boost/spirit/home/support/iterators/detail/first_owner_policy.hpp:11,
                 from ./boost/spirit/home/support/multi_pass.hpp:16,
                 from ./boost/spirit/include/support_multi_pass.hpp:17,
                 from ./boost/wave/cpplexer/cpp_lex_iterator.hpp:23,
                 from libs/wave/src/instantiate_cpp_exprgrammar.cpp:23:
./boost/spirit/home/support/iterators/multi_pass_fwd.hpp:77: error: 
'clear_mode' is not a class or namespace
In file included from ./boost/spirit/home/support/multi_pass.hpp:35,
                 from ./boost/spirit/include/support_multi_pass.hpp:17,
                 from ./boost/wave/cpplexer/cpp_lex_iterator.hpp:23,
                 from libs/wave/src/instantiate_cpp_exprgrammar.cpp:23:
./boost/spirit/home/support/iterators/multi_pass.hpp:133: error: 
'boost::spirit::traits::clear_mode' is not a class or namespace
./boost/spirit/home/support/iterators/multi_pass.hpp: In member function 'void 
boost::spirit::multi_pass<T, 
Policies>::clear_queue(boost::spirit::traits::clear_mode)':
./boost/spirit/home/support/iterators/multi_pass.hpp:135: error: 
'boost::spirit::traits::clear_mode' is not a class or namespace

    "g++"  -ftemplate-depth-128 -O3 -finline-functions -Wno-inline -Wall 
-pthread -fPIC  -DBOOST_ALL_DYN_LINK=1 -DBOOST_ALL_NO_LIB=1 -DNDEBUG  -I"." -c 
-o 
"bin.v2/libs/wave/build/gcc-4.4.1/release/threading-multi/instantiate_cpp_exprgrammar.o"
 "libs/wave/src/instantiate_cpp_exprgrammar.cpp"

...failed gcc.compile.c++ 
bin.v2/libs/wave/build/gcc-4.4.1/release/threading-multi/instantiate_cpp_exprgrammar.o...
[....]
...failed updating 16 targets...


>Fix:
Using 'make build-env', then cutting and pasting the g++ command lines
from the trace output (as shown above) adding the '-std=c++0x', exiting
the build-env and doing a 'make' witch now completes successfully.

Sorry I don't know enough about bjam to come up with a better fix!

-- 
Steven



Home | Main Index | Thread Index | Old Index