aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRob Savoye <rob.savoye@linaro.org>2015-04-07 14:56:13 -0600
committerRob Savoye <rob.savoye@linaro.org>2015-04-07 14:56:13 -0600
commit83f2f321444c40e53d3db70646045e432488d041 (patch)
tree022a8eef5e2bb47cfe3993d052764b62190958af
parent078801903e0003116ac1af214563616a0874935c (diff)
add support to specify which linker is used, LD or Gold.
-rwxr-xr-xabe.sh12
-rwxr-xr-xlib/configure.sh3
-rw-r--r--lib/globals.sh1
3 files changed, 16 insertions, 0 deletions
diff --git a/abe.sh b/abe.sh
index c8159a21..cb31e07a 100755
--- a/abe.sh
+++ b/abe.sh
@@ -31,6 +31,7 @@ usage()
[--list] [--march <march>] [--manifest <manifest_file>]
[--parallel] [--release <release_version_string>]
[--set {libc}={glibc|eglibc|newlib}]
+ [--set {linker}={ld|gold}]
[--set {languages}={c|c++|fortran|go|lto|objc|java|ada}]
[--set {cflags|ldflags|runtestflgs|makeflags}=XXX]
[--set {package}={toolchain|gdb|sysroot}]
@@ -240,6 +241,12 @@ OPTIONS
gcc-linaro-4.9-2014.10-1.tar.xz
+ --set {liinker}={ld|gold}
+
+ The default is to build the older GNU linker. This option
+ changes the linker to Gold, which is required for some C++
+ projects, including Andriod and Chromium.
+
--set {libc}={glibc|eglibc|newlib}
The default value is stored in lib/global.sh. This
@@ -481,6 +488,11 @@ set_package()
notice "Overriding ${setting} to LDFLAGS"
return 0
;;
+ linker|li*)
+ override_linker="${setting}"
+ notice "Overriding the default linker to ${setting} "
+ return 0
+ ;;
cflags|cf*)
override_cflags="${setting}"
notice "Overriding ${setting} to CFLAGS"
diff --git a/lib/configure.sh b/lib/configure.sh
index e60001fb..521c010a 100755
--- a/lib/configure.sh
+++ b/lib/configure.sh
@@ -238,6 +238,9 @@ configure_build()
local opts="${opts} --build=${build} --host=${host} --target=${target} --prefix=${prefix}"
;;
binutils)
+ if test x"${override_linker}" = x"gold"; then
+ local opts="${opts} --enable-gold=default"
+ fi
local opts="${opts} --build=${build} --host=${host} --target=${target} --prefix=${prefix}"
;;
gdb*)
diff --git a/lib/globals.sh b/lib/globals.sh
index b374bbeb..f5bcc327 100644
--- a/lib/globals.sh
+++ b/lib/globals.sh
@@ -102,6 +102,7 @@ release=""
with_packages="toolchain,sysroot,gdb"
building=yes
+override_linker=
override_cflags=
override_ldflags=
override_runtestflags=