From: Thomas Petazzoni Date: Sat, 31 Dec 2011 11:09:33 +0000 (+0100) Subject: Expand external toolchain wrapper to custom flags X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b95e436ee0c9e4638dc79766da0d17927c6641ce;p=buildroot.git Expand external toolchain wrapper to custom flags The BR2_TARGET_OPTIMIZATION flags were not used by the external toolchain wrapper, which broke the multilib selection logic of multilib external toolchains. It also simplifies the compilation of external programs since all flags are properly passed automatically by the toolchain wrapper. Signed-off-by: Thomas Petazzoni --- diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk index eb8ed4f6b5..dde6f22833 100644 --- a/toolchain/toolchain-external/ext-tool.mk +++ b/toolchain/toolchain-external/ext-tool.mk @@ -150,6 +150,14 @@ TOOLCHAIN_EXTERNAL_CFLAGS += -mabi=$(CC_TARGET_ABI_) TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ABI='"$(CC_TARGET_ABI_)"' endif +ifneq ($(BR2_TARGET_OPTIMIZATION),) +TOOLCHAIN_EXTERNAL_CFLAGS += $(call qstrip,$(BR2_TARGET_OPTIMIZATION)) +# We create a list like '"-mfoo", "-mbar", "-mbarfoo"' so that each +# flag is a separate argument when used in execv() by the external +# toolchain wrapper. +TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_ADDITIONAL_CFLAGS='$(foreach f,$(call qstrip,$(BR2_TARGET_OPTIMIZATION)),"$(f)",)' +endif + ifeq ($(BR2_SOFT_FLOAT),y) TOOLCHAIN_EXTERNAL_CFLAGS += -msoft-float TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += -DBR_SOFTFLOAT=1 diff --git a/toolchain/toolchain-external/ext-toolchain-wrapper.c b/toolchain/toolchain-external/ext-toolchain-wrapper.c index cc404f3e94..719f13bd16 100644 --- a/toolchain/toolchain-external/ext-toolchain-wrapper.c +++ b/toolchain/toolchain-external/ext-toolchain-wrapper.c @@ -40,6 +40,9 @@ static char *predef_args[] = { #ifdef BR_VFPFLOAT "-mfpu=vfp", #endif /* BR_VFPFLOAT */ +#ifdef BR_ADDITIONAL_CFLAGS + BR_ADDITIONAL_CFLAGS +#endif }; static const char *get_basename(const char *name)