summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexey Neyman <stilor@att.net>2018-12-04 03:27:30 (GMT)
committerAlexey Neyman <stilor@att.net>2018-12-04 04:19:09 (GMT)
commit893932e90f967169fcf494e36ac9001f2f1b90a5 (patch)
treed6d7ef14f4d0bc6f2443f74998933f6e012ddae7
parentd9afcd80fc3feb83684c530adc7413e5ed17cf98 (diff)
Add a config option for default RELRO setting
Fixes #656. Signed-off-by: Alexey Neyman <stilor@att.net>
-rw-r--r--config/binutils/binutils.in10
-rw-r--r--packages/binutils/package.desc2
-rw-r--r--scripts/build/binutils/binutils.sh5
3 files changed, 16 insertions, 1 deletions
diff --git a/config/binutils/binutils.in b/config/binutils/binutils.in
index bd32bd6..c0a0c55 100644
--- a/config/binutils/binutils.in
+++ b/config/binutils/binutils.in
@@ -146,6 +146,16 @@ config BINUTILS_PLUGINS
Especially, gold can use the lto-plugin, as installed
by gcc, to handle LTO.
+config BINUTILS_RELRO
+ tristate
+ prompt "Enable -z relro in ELF linker by default" if BINUTILS_2_27_or_later
+ default m
+ help
+ Setting this option forces "-z relro" by default in the ELF linker.
+ Clearing this option forces "-z norelro" by default in the ELF linker.
+ Setting this option to 'M' configures binutils with their internal
+ default for the selected architecture.
+
config BINUTILS_EXTRA_CONFIG_ARRAY
string
prompt "binutils extra config"
diff --git a/packages/binutils/package.desc b/packages/binutils/package.desc
index cf38889..317cd6c 100644
--- a/packages/binutils/package.desc
+++ b/packages/binutils/package.desc
@@ -1,6 +1,6 @@
repository='git git://sourceware.org/git/binutils-gdb.git'
mirrors='$(CT_Mirrors GNU binutils) $(CT_Mirrors sourceware binutils/releases)'
origin='GNU'
-milestones='2.23 2.25 2.30'
+milestones='2.23 2.25 2.27 2.30'
archive_formats='.tar.xz .tar.bz2 .tar.gz'
signature_format='packed/.sig'
diff --git a/scripts/build/binutils/binutils.sh b/scripts/build/binutils/binutils.sh
index f61b556..7335743 100644
--- a/scripts/build/binutils/binutils.sh
+++ b/scripts/build/binutils/binutils.sh
@@ -153,6 +153,11 @@ do_binutils_backend() {
if [ "${CT_BINUTILS_PLUGINS}" = "y" ]; then
extra_config+=( --enable-plugins )
fi
+ if [ "${CT_BINUTILES_RELRO}" = "y" ]; then
+ extra_config+=( --enable-relro )
+ elif [ "${CT_BINUTILS_RELRO}" != "m" ]; then
+ extra_config+=( --disable-relro )
+ fi
if [ "${CT_BINUTILS_HAS_PKGVERSION_BUGURL}" = "y" ]; then
[ -n "${CT_PKGVERSION}" ] && extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
[ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")