diff --git a/package/gcc/gcc.mk b/package/gcc/gcc.mk index 93bc46643c..94935d79a2 100644 --- a/package/gcc/gcc.mk +++ b/package/gcc/gcc.mk @@ -98,23 +98,24 @@ HOST_GCC_COMMON_CONF_ENV = \ HOST_GCC_COMMON_MAKE_OPTS = \ gcc_cv_prog_makeinfo_modern=no -GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) -GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) +# Target binaries and libraries which are being built as a part of GCC +# don't use Buildroot toolchain wrapper because, instead its very own "xgcc" +# binary is used. And so we need to explicitly propagate ALL the flags +# directly to "xgcc" and that is done via configure-time environment +# variables, see below setup of HOST_GCC_COMMON_CONF_ENV. +GCC_COMMON_TARGET_CFLAGS = $(TARGET_CFLAGS) $(ARCH_TOOLCHAIN_WRAPPER_OPTS) +GCC_COMMON_TARGET_CXXFLAGS = $(TARGET_CXXFLAGS) $(ARCH_TOOLCHAIN_WRAPPER_OPTS) +GCC_COMMON_TARGET_LDFLAGS = $(TARGET_LDFLAGS) $(ARCH_TOOLCHAIN_WRAPPER_OPTS) # used to fix ../../../../libsanitizer/libbacktrace/../../libbacktrace/elf.c:772:21: error: 'st.st_mode' may be used uninitialized in this function [-Werror=maybe-uninitialized] ifeq ($(BR2_ENABLE_DEBUG),y) GCC_COMMON_TARGET_CFLAGS += -Wno-error endif -# Make sure libgcc & libstdc++ always get built with -matomic on ARC700 -ifeq ($(GCC_TARGET_CPU):$(BR2_ARC_ATOMIC_EXT),arc700:y) -GCC_COMMON_TARGET_CFLAGS += -matomic -GCC_COMMON_TARGET_CXXFLAGS += -matomic -endif - # Propagate options used for target software building to GCC target libs HOST_GCC_COMMON_CONF_ENV += CFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CFLAGS)" HOST_GCC_COMMON_CONF_ENV += CXXFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_CXXFLAGS)" +HOST_GCC_COMMON_CONF_ENV += LDFLAGS_FOR_TARGET="$(GCC_COMMON_TARGET_LDFLAGS)" HOST_GCC_COMMON_CONF_ENV += AR_FOR_TARGET=gcc-ar NM_FOR_TARGET=gcc-nm RANLIB_FOR_TARGET=gcc-ranlib # libitm needs sparc V9+