boost: Ineffective compileflags and linkflags in user-config.jam
boost.inc's do_boostconfig task contains:
# D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation.
if ! grep -qe "^using gcc : 4.3.1" ${S}/tools/build/v2/user-config.jam
then
echo 'using gcc : 4.3.1 : ${CXX} : compileflags -DBOOST_SP_USE_PTHREADS -I${includedir} linkflags -L${libdir} ;' >> ${S}/tools/build/v2/user-config.jam
fi
The compileflags and linkflags have no effect as far as I can tell when passing -d+2 to bjam to display the command invocations. The "using gcc" line appears to date back into the mists of meta-oe.
The correct syntax would appear to be:
'using gcc ; 4.3.1 : ${CXX} : <compileflags>"-DBOOST_SP_USE_PTHREADS -I${includedir}" <linkflags>"-L${libdir}" ;'
(this syntax can be seen in the -sBUILD part of BJAM_TOOLS and is documented at
http://www.boost.org/boost-build2/doc/html/bbv2/reference/tools.html .)
But, if those options have no effect then they can't be required so should they just be removed? i.e. just use:
'using gcc ; 4.3.1 : ${CXX} : ;'
or should users of this recipe be given a convenient ability to override the compileflags, with perhaps something like:
'using gcc ; 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" ;'
I'm mainly interested in this because I wish to pass "-std=gnu++11". I can confirm that the last suggestion solves my problem when I add this to my bbappend:
CXXFLAGS += "-std=gnu++11"
Any advice gratefully received. Thanks.
Mike.
Quoted 4 lines · Mike Crowe
or should users of this recipe be given a convenient ability to override the compileflags, with perhaps something like:
'using gcc ; 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" ;'
this one. care to send a patch ?
Quoted 7 lines · Khem Raj
Quoted 4 lines · Mike Crowe
or should users of this recipe be given a convenient ability to override the compileflags, with perhaps something like:
'using gcc ; 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" ;'
this one. care to send a patch ?
Hi Khem,
I can do once I've tested it against current master.
Thanks.
Mike.
PATCH 1/1 boost: Pass CFLAGS, CXXFLAGS and LDFLAGS correctly into boost.build
The compileflags and linkflags do_boostconfig puts into user-config.jam are having no effect. According to
http://www.boost.org/boost-build2/doc/html/bbv2/reference/tools.html the correct syntax would be <compileflags>"the flags" <linkflags>"the flags".
Since the flags specified were having no effect they can't be necessary and can be safely removed. We should be passing ${CFLAGS}, ${CXXFLAGS} and ${LDFLAGS} instead so that users of the recipe can pass arbitrary flags as they choose.
--- meta/recipes-support/boost/boost.inc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-support/boost/boost.inc +1 -1
@@ -134,7 +134,7 @@ do_boostconfig() { # D2194:Fixing the failure of "error: duplicate initialization of gcc with the following parameters" during compilation. if ! grep -qe "^using gcc : 4.3.1" ${S}/tools/build/v2/user-config.jam then - echo 'using gcc : 4.3.1 : ${CXX} : compileflags -DBOOST_SP_USE_PTHREADS -I${includedir} linkflags -L${libdir} ;' >> ${S}/tools/build/v2/user-config.jam + echo 'using gcc : 4.3.1 : ${CXX} : <cflags>"${CFLAGS}" <cxxflags>"${CXXFLAGS}" <linkflags>"${LDFLAGS}" ;' >> ${S}/tools/build/v2/user-config.jam fi echo "using python : ${PYTHON_BASEVERSION} : : ${STAGING_INCDIR}/python${PYTHON_BASEVERSION} ;" >> ${S}/tools/build/v2/user-config.jam
Signature · 1 line
1.7.10.4