diff options
Diffstat (limited to 'toolchain/gcc/Makefile')
-rw-r--r-- | toolchain/gcc/Makefile | 44 |
1 files changed, 30 insertions, 14 deletions
diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 7e806c68c..afb945000 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -11,6 +11,7 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \ --target=$(REAL_GNU_TARGET_NAME) \ --with-gmp=$(STAGING_HOST_DIR) \ --with-mpfr=$(STAGING_HOST_DIR) \ + --with-libelf=$(STAGING_HOST_DIR) \ --disable-__cxa_atexit \ --with-gnu-ld \ --disable-libmudflap \ @@ -19,7 +20,6 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \ --disable-decimal-float \ --disable-multilib \ --disable-sjlj-exceptions \ - --disable-libssp \ --disable-libstdcxx-pch \ --disable-ppl-version-check \ --disable-cloog-version-check \ @@ -27,6 +27,18 @@ GCC_CONFOPTS= --prefix=$(STAGING_HOST_DIR) \ --without-cloog \ --disable-nls +ifeq ($(ADK_TOOLCHAIN_GCC_SSP),y) +GCC_CONFOPTS+= --enable-libssp +else +GCC_CONFOPTS+= --disable-libssp +endif + +ifeq ($(ADK_TOOLCHAIN_GCC_LTO),y) +GCC_CONFOPTS+= --enable-lto +else +GCC_CONFOPTS+= --disable-lto +endif + ifeq ($(ARCH),cris) GCC_CONFOPTS+= --disable-tls else @@ -55,6 +67,17 @@ ifeq (${ADK_MAKE_PARALLEL},y) GCC_MAKEOPTS+= -j${ADK_MAKE_JOBS} endif +LANGUAGES:=c +ifeq ($(ADK_TOOLCHAIN_GCC_CXX),y) +LANGUAGES:=${LANGUAGES},c++ +endif +ifeq ($(ADK_TOOLCHAIN_GCC_JAVA),y) +LANGUAGES:=${LANGUAGES},java +endif +ifeq ($(ADK_TOOLCHAIN_GCC_ADA),y) +LANGUAGES:=${LANGUAGES},ada +endif + include ${TOPDIR}/mk/buildhlp.mk GCC_BUILD_DIR_MINIMAL:= $(WRKBUILD)-minimal @@ -63,7 +86,7 @@ GCC_BUILD_DIR_FINAL:= $(WRKBUILD)-final $(GCC_BUILD_DIR_MINIMAL)/.configured: mkdir -p $(GCC_BUILD_DIR_MINIMAL) - (cd $(GCC_BUILD_DIR_MINIMAL); rm -f config.cache; \ + (cd $(GCC_BUILD_DIR_MINIMAL); \ PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ @@ -85,12 +108,8 @@ $(WRKBUILD)/.headers: $(GCC_BUILD_DIR_MINIMAL)/.compiled touch $@ $(GCC_BUILD_DIR_INITIAL)/.configured: - rm -rf $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include - ln -sf ${STAGING_TARGET_DIR}/include $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/sys-include - rm -rf ${STAGING_HOST_DIR}/$(REAL_GNU_TARGET_NAME)/lib - ln -sf ${STAGING_TARGET_DIR}/lib $(STAGING_HOST_DIR)/$(REAL_GNU_TARGET_NAME)/lib mkdir -p $(GCC_BUILD_DIR_INITIAL) - (cd $(GCC_BUILD_DIR_INITIAL); rm -f config.cache; \ + (cd $(GCC_BUILD_DIR_INITIAL); \ PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ @@ -98,7 +117,7 @@ $(GCC_BUILD_DIR_INITIAL)/.configured: --disable-shared \ --disable-threads \ --with-newlib \ - --with-sysroot=$(TOOLCHAIN_SYSROOT) \ + --with-sysroot=$(STAGING_TARGET_DIR) \ ); touch $@ @@ -115,12 +134,12 @@ $(WRKBUILD)/.configured: $(GCC_BUILD_DIR_INITIAL)/.compiled $(GCC_BUILD_DIR_FINAL)/.configured: mkdir -p $(GCC_BUILD_DIR_FINAL) - (cd $(GCC_BUILD_DIR_FINAL); rm -f config.cache; \ + (cd $(GCC_BUILD_DIR_FINAL); \ PATH='$(TARGET_PATH)' \ $(WRKBUILD)/configure \ ${GCC_CONFOPTS} \ - --enable-languages=c,c++ \ - --with-sysroot=$(STAGING_TARGET_DIR) \ + --enable-languages=$(LANGUAGES) \ + --with-sysroot='$${prefix}/${STAGING_HOST2TARGET}' \ --with-slibdir=$(STAGING_TARGET_DIR)/lib \ --enable-shared \ ); @@ -133,9 +152,6 @@ $(WRKBUILD)/.compiled: $(GCC_BUILD_DIR_FINAL)/.configured $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled PATH='$(TARGET_PATH)' $(MAKE) -C $(GCC_BUILD_DIR_FINAL) install - # workaround if you cross-compile binutils - @-rm $(STAGING_TARGET_DIR)/lib/libiberty.a - @-rm $(STAGING_TARGET_DIR)/usr/lib/libiberty.a # Set up the symlinks to enable lying about target name. set -e; \ (cd $(STAGING_HOST_DIR); \ |