Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [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