* [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