diff mbox series

package/boost: fixup Optimization flag in boost build

Message ID 20200805124132.559272-1-buildroot@heine.tech
State Superseded
Headers show
Series package/boost: fixup Optimization flag in boost build | expand

Commit Message

Michael Nosthoff Aug. 5, 2020, 12:41 p.m. UTC
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(+)

Comments

Yann E. MORIN Aug. 6, 2020, 8:16 p.m. UTC | #1
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
Michael Nosthoff Aug. 7, 2020, 8:32 a.m. UTC | #2
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 mbox series

Patch

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