* [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build @ 2020-08-05 12:41 Michael Nosthoff 2020-08-06 20:16 ` Yann E. MORIN 2020-08-07 8:58 ` [Buildroot] [PATCH v2] " Michael Nosthoff 0 siblings, 2 replies; 6+ messages in thread From: Michael Nosthoff @ 2020-08-05 12:41 UTC (permalink / raw) To: buildroot 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 + echo "" >> $(@D)/user-config.jam endef define BOOST_BUILD_CMDS -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build 2020-08-05 12:41 [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build Michael Nosthoff @ 2020-08-06 20:16 ` Yann E. MORIN 2020-08-07 8:32 ` Michael Nosthoff 2020-08-07 8:58 ` [Buildroot] [PATCH v2] " Michael Nosthoff 1 sibling, 1 reply; 6+ messages in thread From: Yann E. MORIN @ 2020-08-06 20:16 UTC (permalink / raw) To: buildroot 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 at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build 2020-08-06 20:16 ` Yann E. MORIN @ 2020-08-07 8:32 ` Michael Nosthoff 0 siblings, 0 replies; 6+ messages in thread From: Michael Nosthoff @ 2020-08-07 8:32 UTC (permalink / raw) To: 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 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2] package/boost: fixup Optimization flag in boost build 2020-08-05 12:41 [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build Michael Nosthoff 2020-08-06 20:16 ` Yann E. MORIN @ 2020-08-07 8:58 ` Michael Nosthoff 2020-08-07 19:19 ` Yann E. MORIN 2020-08-28 15:03 ` Peter Korsgaard 1 sibling, 2 replies; 6+ messages in thread From: Michael Nosthoff @ 2020-08-07 8:58 UTC (permalink / raw) To: buildroot 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. As Boost Build offers no nice way to alter those values the gcc toolchain file is altered directly. Signed-off-by: Michael Nosthoff <buildroot@heine.tech> --- v1 -> v2: - use sed to manipulate gcc.jam directly - remove extending user-config.jam --- package/boost/boost.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/boost/boost.mk b/package/boost/boost.mk index ef638fc9df..323802488d 100644 --- a/package/boost/boost.mk +++ b/package/boost/boost.mk @@ -134,6 +134,7 @@ 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 + sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam endef define BOOST_BUILD_CMDS -- 2.25.1 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2] package/boost: fixup Optimization flag in boost build 2020-08-07 8:58 ` [Buildroot] [PATCH v2] " Michael Nosthoff @ 2020-08-07 19:19 ` Yann E. MORIN 2020-08-28 15:03 ` Peter Korsgaard 1 sibling, 0 replies; 6+ messages in thread From: Yann E. MORIN @ 2020-08-07 19:19 UTC (permalink / raw) To: buildroot Michael, All, On 2020-08-07 10:58 +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. > > As Boost Build offers no nice way to alter those values the gcc > toolchain file is altered directly. > > Signed-off-by: Michael Nosthoff <buildroot@heine.tech> Applied to master, thanks. Ultimately, it would be nice if upstream had a provision to not set the optimisation level. For example, in addition to the existign three levels, 'off', 'speed', and 'space' (IIRC), maybe suggest they add a new one, maybe 'none', that would not set any -O flag at all, thus using whatever the user would set in their CXXFLAGS, or whatever the compiler defaults to... Regards, Yann E. MORIN. > --- > > v1 -> v2: > - use sed to manipulate gcc.jam directly > - remove extending user-config.jam > > --- > package/boost/boost.mk | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/package/boost/boost.mk b/package/boost/boost.mk > index ef638fc9df..323802488d 100644 > --- a/package/boost/boost.mk > +++ b/package/boost/boost.mk > @@ -134,6 +134,7 @@ 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 > + sed -i "s/: -O.* ;/: $(TARGET_OPTIMIZATION) ;/" $(@D)/tools/build/src/tools/gcc.jam > endef > > define BOOST_BUILD_CMDS > -- > 2.25.1 > > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot -- .-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 561 099 427 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------' ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Buildroot] [PATCH v2] package/boost: fixup Optimization flag in boost build 2020-08-07 8:58 ` [Buildroot] [PATCH v2] " Michael Nosthoff 2020-08-07 19:19 ` Yann E. MORIN @ 2020-08-28 15:03 ` Peter Korsgaard 1 sibling, 0 replies; 6+ messages in thread From: Peter Korsgaard @ 2020-08-28 15:03 UTC (permalink / raw) To: buildroot >>>>> "Michael" == Michael Nosthoff <buildroot@heine.tech> writes: > 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. > As Boost Build offers no nice way to alter those values the gcc > toolchain file is altered directly. > Signed-off-by: Michael Nosthoff <buildroot@heine.tech> > --- > v1 -> v2: > - use sed to manipulate gcc.jam directly > - remove extending user-config.jam Committed to 2020.02.x and 2020.05.x, thanks. -- Bye, Peter Korsgaard ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2020-08-28 15:03 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2020-08-05 12:41 [Buildroot] [PATCH] package/boost: fixup Optimization flag in boost build Michael Nosthoff 2020-08-06 20:16 ` Yann E. MORIN 2020-08-07 8:32 ` Michael Nosthoff 2020-08-07 8:58 ` [Buildroot] [PATCH v2] " Michael Nosthoff 2020-08-07 19:19 ` Yann E. MORIN 2020-08-28 15:03 ` Peter Korsgaard
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox