summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
authorWaldemar Brodkorb <wbx@openadk.org>2014-04-07 14:37:00 +0200
committerWaldemar Brodkorb <wbx@openadk.org>2014-04-07 14:37:00 +0200
commitd63d9df8e5c245214fbd94856773eba4b0c731cf (patch)
treec693fff33a22568984fe06c0be527c7428cd9eba /toolchain
parentc84401914937ecf8a49ec3e8a5ede12221b96d14 (diff)
add gold support
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/Config.in27
-rw-r--r--toolchain/binutils/Makefile14
-rw-r--r--toolchain/gcc/Makefile9
3 files changed, 40 insertions, 10 deletions
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