X-Git-Url: http://git.ozo.com/?a=blobdiff_plain;f=toolchain%2Fgcc%2Ffinal%2FMakefile;h=01fec380273752d01c10046f476f785ec34b92aa;hb=0d9f922230aa02821c538a87c1d10584cff6c61c;hp=1decc951585044291f72e3626de2b7716862e1c7;hpb=62c174067616a911ef77a8cf02a6cc2220e534ec;p=lede-git%2F.git diff --git a/toolchain/gcc/final/Makefile b/toolchain/gcc/final/Makefile index 1decc95158..01fec38027 100644 --- a/toolchain/gcc/final/Makefile +++ b/toolchain/gcc/final/Makefile @@ -3,40 +3,53 @@ GCC_VARIANT:=final include ../common.mk GCC_CONFIGURE += \ + --with-headers=$(TOOLCHAIN_DIR)/include \ + --disable-libsanitizer \ --enable-languages=$(TARGET_LANGUAGES) \ --enable-shared \ --enable-threads \ - --with-slibdir=$(TOOLCHAIN_DIR)/lib - -ifneq ($(CONFIG_GCC_VERSION_4_5),) - GCC_CONFIGURE += \ + --with-slibdir=$(TOOLCHAIN_DIR)/lib \ --enable-lto \ --with-libelf=$(TOPDIR)/staging_dir/host + +ifdef CONFIG_USE_MUSL + GCC_MAKE += gcc_cv_libc_provides_ssp=yes endif -ifneq ($(CONFIG_TLS_SUPPORT),) +ifneq ($(CONFIG_SJLJ_EXCEPTIONS),) GCC_CONFIGURE += \ - --enable-tls -else - GCC_CONFIGURE += \ - --disable-tls + --enable-sjlj-exceptions endif -define Host/Configure - mkdir -p $(GCC_BUILD_DIR) $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) +define CleanupToolchain + $(INSTALL_DIR) $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME) # Important! Required for limits.h to be fixed. rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include ln -sf ../include $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include rm -rf $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib ln -sf ../lib $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib - $(if $(CONFIG_mips64)$(CONFIG_mips64el)$(CONFIG_x86_64),ln -sf ../lib64 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib64) + $(if $(CONFIG_ARCH_64BIT),ln -sf ../lib64 $(TOOLCHAIN_DIR)/$(REAL_GNU_TARGET_NAME)/lib64) +endef + +define Host/Configure + $(CleanupToolchain) + mkdir -p $(GCC_BUILD_DIR) (cd $(GCC_BUILD_DIR) && rm -f config.cache; \ $(GCC_CONFIGURE) \ ); endef +ifeq ($(CONFIG_USE_GLIBC)$(CONFIG_INSTALL_GCCGO),yy) +define FixGogccCrt + # link crtX.o for gotools + mkdir -p $(GCC_BUILD_DIR)/gotools + $(foreach crt, i 1 n, ln -sf ../../glibc-dev/lib/crt$(crt).o $(GCC_BUILD_DIR)/gotools/ ; ) +endef +endif + define Host/Compile - $(GCC_MAKE) -C $(GCC_BUILD_DIR) all + $(FixGogccCrt) + +$(GCC_MAKE) $(HOST_JOBS) -C $(GCC_BUILD_DIR) all endef define SetupExtraArch @@ -53,6 +66,7 @@ define SetupExtraArch endef define Host/Install + $(CleanupToolchain) $(_SINGLE)$(GCC_MAKE) -C $(GCC_BUILD_DIR) install # Set up the symlinks to enable lying about target name. set -e; \ @@ -65,6 +79,8 @@ define Host/Install done; \ ); $(if $(CONFIG_EXTRA_TARGET_ARCH),$(call SetupExtraArch)) + $(RM) $(TOOLCHAIN_DIR)/lib/libiberty.a + $(SCRIPT_DIR)/patch-specs.sh "$(TOOLCHAIN_DIR)" endef $(eval $(call HostBuild))