Skip to contentSkip to conversation

boost: Ineffective compileflags and linkflags in user-config.jam

PATCH Superseded Mike Crowe 2 participants 4 messages Feb 18, 2014 – Feb 19, 2014

lore
Share & tools
lore

Mike Crowe

author
#0 lore raw

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.

#1 lore raw
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 ?

author
#2 lore raw
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.

author
#3 lore raw

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
index c7642be..356ca22 100644
@@ -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