From d63d9df8e5c245214fbd94856773eba4b0c731cf Mon Sep 17 00:00:00 2001 From: Waldemar Brodkorb Date: Mon, 7 Apr 2014 14:37:00 +0200 Subject: add gold support --- toolchain/Config.in | 27 +++++++++++++++++++-------- toolchain/binutils/Makefile | 14 +++++++++++++- toolchain/gcc/Makefile | 9 ++++++++- 3 files changed, 40 insertions(+), 10 deletions(-) (limited to 'toolchain') diff --git a/toolchain/Config.in b/toolchain/Config.in index 54016212a..7eb9cdda7 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -10,26 +10,37 @@ config ADK_TOOLCHAIN_GCC_CXX boolean default y -config ADK_TOOLCHAIN_GCC_SSP - prompt "Enable Stack Smashing Protection in GCC" +config ADK_TOOLCHAIN_SSP + prompt "Enable Stack Smashing Protection" boolean default y -config ADK_TOOLCHAIN_GCC_USE_SSP +config ADK_TOOLCHAIN_USE_SSP prompt "Use SSP for all packages" boolean - depends on ADK_TOOLCHAIN_GCC_SSP + depends on ADK_TOOLCHAIN_SSP default n -config ADK_TOOLCHAIN_GCC_LTO - prompt "Enable Link Time Optimization in GCC" +config ADK_TOOLCHAIN_LTO + prompt "Enable Link Time Optimization" boolean default y -config ADK_TOOLCHAIN_GCC_USE_LTO +config ADK_TOOLCHAIN_USE_LTO prompt "Use Link Time Optimization for all packages" boolean - depends on ADK_TOOLCHAIN_GCC_LTO + depends on ADK_TOOLCHAIN_LTO + default n + +config ADK_TOOLCHAIN_GOLD + prompt "Enable GOLD as linker" + boolean + default y + +config ADK_TOOLCHAIN_USE_GOLD + prompt "Use GOLD as linker for all packages" + boolean + depends on ADK_TOOLCHAIN_GOLD default n endmenu diff --git a/toolchain/binutils/Makefile b/toolchain/binutils/Makefile index 4d34e3566..87cea2987 100644 --- a/toolchain/binutils/Makefile +++ b/toolchain/binutils/Makefile @@ -6,12 +6,24 @@ include Makefile.inc include ../rules.mk include ${TOPDIR}/mk/buildhlp.mk -ifeq ($(ADK_TOOLCHAIN_GCC_SSP),y) +ifeq ($(ADK_TOOLCHAIN_SSP),y) CONFOPTS+= --enable-libssp else CONFOPTS+= --disable-libssp endif +ifeq ($(ADK_TOOLCHAIN_LTO),y) +CONFOPTS+= --enable-lto +else +CONFOPTS+= --disable-lto +endif + +ifeq ($(ADK_TOOLCHAIN_GOLD),y) +CONFOPTS+= --enable-gold +else +CONFOPTS+= --disable-gold +endif + ifeq ($(ADK_TARGET_SYSTEM_RASPBERRY_PI),y) CONFOPTS+= --with-arch=armv6 endif diff --git a/toolchain/gcc/Makefile b/toolchain/gcc/Makefile index 611de97bf..eee524ba3 100644 --- a/toolchain/gcc/Makefile +++ b/toolchain/gcc/Makefile @@ -202,11 +202,18 @@ $(WRKBUILD)/.installed: $(WRKBUILD)/.compiled # remove duplicate tools, convert hardlinks to symlinks set -e; \ cd $(TOOLCHAIN_DIR)/usr/$(GNU_TARGET_NAME)/bin; \ - for app in ar as c++ g++ gcc ld ld.bfd nm objcopy objdump ranlib strip; do \ + for app in ar as c++ g++ gcc ld ld.gold ld.bfd nm objcopy objdump ranlib strip; do \ ln -sf ../../bin/$(GNU_TARGET_NAME)-$${app} $${app}; \ done; (cd $(TOOLCHAIN_DIR)/usr/bin && \ ln -sf $(GNU_TARGET_NAME)-gcc $(GNU_TARGET_NAME)-gcc-${PKG_VERSION}) +ifeq ($(ADK_TOOLCHAIN_USE_GOLD),y) + (cd $(TOOLCHAIN_DIR)/usr/bin && \ + ln -sf $(GNU_TARGET_NAME)-ld.gold $(GNU_TARGET_NAME)-ld) +else + (cd $(TOOLCHAIN_DIR)/usr/bin && \ + ln -sf $(GNU_TARGET_NAME)-ld.bfd $(GNU_TARGET_NAME)-ld) +endif cd $(STAGING_TARGET_DIR)/lib && \ ln -sf libstdc++.so.6.0.18 libstdc++.so && \ ln -sf libstdc++.so.6.0.18 libstdc++.so.6 -- cgit v1.2.3