package/Makefile.in: remove BR2_TARGET_OPTIMIZATION from TARGET_CFLAGS
PATCH 1/1 package/Makefile.in: remove BR2_TARGET_OPTIMIZATION from TARGET_CFLAGS
Since the toolchain is always wrapped and the wrapper already passes BR2_TARGET_OPTIMIZATION (through BR_ADDITIONAL_CFLAGS), there is no longer any need to pass it in TARGET_CFLAGS as well.
---
Tested with BR2_DEBUG_WRAPPER that BR2_TARGET_OPTIMIZATION and BR2_OPTIMIZE_* are still called correctly.
--- package/Makefile.in | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)
package/Makefile.in +5 -7
@@ -110,22 +110,20 @@ endif STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot STAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR) -TARGET_OPTIMIZATION := $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) - ifeq ($(BR2_OPTIMIZE_0),y) -TARGET_OPTIMIZATION += -O0 +TARGET_OPTIMIZATION = -O0 endif ifeq ($(BR2_OPTIMIZE_1),y) -TARGET_OPTIMIZATION += -O1 +TARGET_OPTIMIZATION = -O1 endif ifeq ($(BR2_OPTIMIZE_2),y) -TARGET_OPTIMIZATION += -O2 +TARGET_OPTIMIZATION = -O2 endif ifeq ($(BR2_OPTIMIZE_3),y) -TARGET_OPTIMIZATION += -O3 +TARGET_OPTIMIZATION = -O3 endif ifeq ($(BR2_OPTIMIZE_S),y) -TARGET_OPTIMIZATION += -Os +TARGET_OPTIMIZATION = -Os endif ifeq ($(BR2_DEBUG_1),y) TARGET_DEBUGGING = -g1
Signature · 1 line
2.6.1
PATCH 1/1 package/Makefile.in: remove BR2_TARGET_OPTIMIZATION from TARGET_CFLAGS
Arnout, All,
On 2015-10-15 00:19 +0200, Arnout Vandecappelle (Essensium/Mind) spake thusly:
Quoted 5 lines
Since the toolchain is always wrapped and the wrapper already passes
BR2_TARGET_OPTIMIZATION(throughBR_ADDITIONAL_CFLAGS), there is no longer any need to pass it inTARGET_CFLAGSas well.
On principle:
However, I noticed a potential bug in the toolchain-wrapper makefile. Here's how we currently define BR_ADDITIONAL_CFLAGS:
-DBR_ADDITIONAL_CFLAGS='$(foreach f,$(call qstrip,$(BR2_TARGET_OPTIMIZATION)),"$(f)",)'
Notice the last comma in there? We want to have that comma in the resulting expansion, so that we transform the option string:
-mfoo -mbar -buz
into:
"-mfoo", "-mbar", "-mbuz",
so that it can be used ina C array definition:
static char *predef_args[] = {
[...]
#ifdef BR_ADDITIONAL_CFLAGS
BR_ADDITIONAL_CFLAGS
#endif
}However, in Makefile function calls, the comma is used to separate the arguments passed to the function.
Even though $(foreach ...) only accepts three arguments, and the last comma in fact correctly ends up in the expanded string, it would be much safer to use $(comma) instead, like we would have to do in a call to any other function.
Regards,
Yann E. MORIN.
Quoted 46 lines
---
Tested withBR2_DEBUG_WRAPPERthatBR2_TARGET_OPTIMIZATIONand BR2_OPTIMIZE_* are still called correctly.--- package/Makefile.in | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-)package/Makefile.in +5
-7@@ -110,22 +110,20 @@ endif STAGING_SUBDIR = usr/$(GNU_TARGET_NAME)/sysroot STAGING_DIR = $(HOST_DIR)/$(STAGING_SUBDIR) -TARGET_OPTIMIZATION := $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) - ifeq ($(BR2_OPTIMIZE_0),y) -TARGET_OPTIMIZATION += -O0 +TARGET_OPTIMIZATION = -O0 endif ifeq ($(BR2_OPTIMIZE_1),y) -TARGET_OPTIMIZATION += -O1 +TARGET_OPTIMIZATION = -O1 endif ifeq ($(BR2_OPTIMIZE_2),y) -TARGET_OPTIMIZATION += -O2 +TARGET_OPTIMIZATION = -O2 endif ifeq ($(BR2_OPTIMIZE_3),y) -TARGET_OPTIMIZATION += -O3 +TARGET_OPTIMIZATION = -O3 endif ifeq ($(BR2_OPTIMIZE_S),y) -TARGET_OPTIMIZATION += -Os +TARGET_OPTIMIZATION = -Os endif ifeq ($(BR2_DEBUG_1),y) TARGET_DEBUGGING = -g1Signature · 6 lines
2.6.1 _______________________________________________ buildroot mailing list buildroot at busybox.net http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 6 lines
.-----------------.--------------------.------------------.--------------------. | Yann E. MORIN | Real-Time Embedded | /"\ ASCII RIBBON | Erics' conspiracy: | | +33 662 376 056 | Software Designer | \ / CAMPAIGN | ___ | | +33 223 225 172 `------------.-------: X AGAINST | \e/ There is no | | http://ymorin.is-a-geek.org/ | _/*\_ | / \ HTML MAIL | v conspiracy. | '------------------------------^-------^------------------^--------------------'
PATCH 1/1 package/Makefile.in: remove BR2_TARGET_OPTIMIZATION from TARGET_CFLAGS
On 21-10-15 20:28, Yann E. MORIN wrote:
[snip]
Quoted 23 lines
However, I noticed a potential bug in the toolchain-wrapper makefile. Here's how we currently define
BR_ADDITIONAL_CFLAGS:-DBR_ADDITIONAL_CFLAGS='$(foreach f,$(call qstrip,$(BR2_TARGET_OPTIMIZATION)),"$(f)",)'Notice the last comma in there? We want to have that comma in the resulting expansion, so that we transform the option string:
-mfoo -mbar -buz
into:
"-mfoo", "-mbar", "-mbuz",so that it can be used ina C array definition:
static char *predef_args[] = { [...] #ifdef BR_ADDITIONAL_CFLAGS BR_ADDITIONAL_CFLAGS #endif }
Quoted 7 lines
However, in
Makefilefunction calls, the comma is used to separate the arguments passed to the function.Even though $(foreach ...) only accepts three arguments, and the last comma in fact correctly ends up in the expanded string, it would be much safer to use $(comma) instead, like we would have to do in a call to any other function.
Sure thing. Care to cook a patch?
Regards,
Arnout
[snip]
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
PATCH 1/1 package/Makefile.in: remove BR2_TARGET_OPTIMIZATION from TARGET_CFLAGS
In reply to Arnout Vandecappelle (Essensium/Mind)Quoted 7 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line
"Arnout" == Arnout Vandecappelle (Essensium/Mind) <[email protected]> writes:
Since the toolchain is always wrapped and the wrapper already passes
BR2_TARGET_OPTIMIZATION(throughBR_ADDITIONAL_CFLAGS), there is no longer any need to pass it inTARGET_CFLAGSas well.
Committed, thanks.
Signature · 1 line
Bye, Peter Korsgaard