Message ID | 20200805124132.559272-1-buildroot@heine.tech |
---|---|
State | Superseded |
Headers | show |
Series | package/boost: fixup Optimization flag in boost build | expand |
Michael, All, On 2020-08-05 14:41 +0200, Michael Nosthoff spake thusly: > When building with Boost Build the CXXFLAGS are extended depending > on the optimization level set. When not defined explicitly the > optimization level depends on the <variant>. For release it's 'speed' > and for debug it's set to 'off' > > These flags overwrite the -O flag passed in with TARGET_CXXFLAGS as > it is appended when calling g++. > > This commit sets the Optimization flags generated by Boost Build > to the value of TARGET_OPTIMIZATION no matter what level is used. > > Signed-off-by: Michael Nosthoff <buildroot@heine.tech> > --- > package/boost/boost.mk | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/package/boost/boost.mk b/package/boost/boost.mk > index ef638fc9df..1fcb264062 100644 > --- a/package/boost/boost.mk > +++ b/package/boost/boost.mk > @@ -134,6 +134,11 @@ define BOOST_CONFIGURE_CMDS > (cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS)) > echo "using gcc : `$(TARGET_CC) -dumpversion` : $(TARGET_CXX) : <cxxflags>\"$(BOOST_TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > $(@D)/user-config.jam > echo "" >> $(@D)/user-config.jam > + echo "import modules ;" >> $(@D)/user-config.jam > + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>off : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam > + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>speed : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam > + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>space : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam Unfortunately, that does not seem to work: gcc.compile.c++ bin.v2/libs/thread/build/gcc-9.2.1/release/threadapi-pthread/threading-multi/visibility-hidden/pthread/thread.o "/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-g++" -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fPIC -pthread -O3 -finline-functions -Wno-inline -Wall -fvisibility=hidden -Wextra -Wno-long-long -Wno-unused-parameter -Wunused-function -pedantic -DBOOST_ALL_NO_LIB=1 -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o "bin.v2/libs/thread/build/gcc-9.2.1/release/threadapi-pthread/threading-multi/visibility-hidden/pthread/thread.o" "libs/thread/src/pthread/thread.cpp" (indentation mine) Regards, Yann E. MORIN. > + echo "" >> $(@D)/user-config.jam > endef > > define BOOST_BUILD_CMDS > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot@busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot
Hi Yann, On Thursday, August 06, 2020 22:16 CEST, "Yann E. MORIN" <yann.morin.1998@free.fr> wrote: > Michael, All, > > On 2020-08-05 14:41 +0200, Michael Nosthoff spake thusly: > > When building with Boost Build the CXXFLAGS are extended depending ... > > Unfortunately, that does not seem to work: > > gcc.compile.c++ bin.v2/libs/thread/build/gcc-9.2.1/release/threadapi-pthread/threading-multi/visibility-hidden/pthread/thread.o > "/home/ymorin/dev/buildroot/O/host/bin/arm-none-linux-gnueabihf-g++" > -fvisibility-inlines-hidden -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE > -D_FILE_OFFSET_BITS=64 -Os -fPIC -pthread -O3 -finline-functions > -Wno-inline -Wall -fvisibility=hidden -Wextra -Wno-long-long > -Wno-unused-parameter -Wunused-function -pedantic -DBOOST_ALL_NO_LIB=1 > -DBOOST_THREAD_BUILD_DLL=1 -DBOOST_THREAD_DONT_USE_CHRONO > -DBOOST_THREAD_POSIX -DNDEBUG -I"." -c -o > "bin.v2/libs/thread/build/gcc-9.2.1/release/threadapi-pthread/threading-multi/visibility-hidden/pthread/thread.o" > "libs/thread/src/pthread/thread.cpp" > Unfortunately that is true. I had some changes in my tree that made it appear to work. So it seems i have to fall back to the sed-based approach. I'll send a v2 shortly. Regards, Michael
diff --git a/package/boost/boost.mk b/package/boost/boost.mk index ef638fc9df..1fcb264062 100644 --- a/package/boost/boost.mk +++ b/package/boost/boost.mk @@ -134,6 +134,11 @@ define BOOST_CONFIGURE_CMDS (cd $(@D) && ./bootstrap.sh $(BOOST_FLAGS)) echo "using gcc : `$(TARGET_CC) -dumpversion` : $(TARGET_CXX) : <cxxflags>\"$(BOOST_TARGET_CXXFLAGS)\" <linkflags>\"$(TARGET_LDFLAGS)\" ;" > $(@D)/user-config.jam echo "" >> $(@D)/user-config.jam + echo "import modules ;" >> $(@D)/user-config.jam + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>off : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>speed : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam + echo "modules.poke gcc : flags gcc.compile OPTIONS <optimization>space : $(TARGET_OPTIMIZATION) ;" >> $(@D)/user-config.jam + echo "" >> $(@D)/user-config.jam endef define BOOST_BUILD_CMDS
When building with Boost Build the CXXFLAGS are extended depending on the optimization level set. When not defined explicitly the optimization level depends on the <variant>. For release it's 'speed' and for debug it's set to 'off' These flags overwrite the -O flag passed in with TARGET_CXXFLAGS as it is appended when calling g++. This commit sets the Optimization flags generated by Boost Build to the value of TARGET_OPTIMIZATION no matter what level is used. Signed-off-by: Michael Nosthoff <buildroot@heine.tech> --- package/boost/boost.mk | 5 +++++ 1 file changed, 5 insertions(+)