aboutsummaryrefslogtreecommitdiff
path: root/gold/options.h
diff options
context:
space:
mode:
authorCary Coutant <ccoutant@gmail.com>2015-11-05 12:24:14 -0800
committerCary Coutant <ccoutant@gmail.com>2015-11-05 12:24:14 -0800
commit0eccf19f96d6218dd7c2f8d13f0546c2b942cc08 (patch)
tree92d0c3a126be527683ecbbe4200d82d29e9fc15b /gold/options.h
parentc86a40c6c2902b73ec6f601176820c760524afd2 (diff)
downloadbinutils-0eccf19f96d6218dd7c2f8d13f0546c2b942cc08.zip
binutils-0eccf19f96d6218dd7c2f8d13f0546c2b942cc08.tar.gz
binutils-0eccf19f96d6218dd7c2f8d13f0546c2b942cc08.tar.bz2
Add aarch64-specific --no-apply-dynamic-relocs option.
With --no-apply-dynamic-relocs on aarch64 targets, gold will not apply link-time values for absolute relocations that become dynamic relocations. This provides a workaround for broken Android dynamic linkers that use the link-time value as an extra addend to the relocation. gold/ PR gold/19163 * aarch64.cc (Target_aarch64::Relocate::relocate): Don't apply certain relocations if --no-apply-dynamic-relocs is set. * options.h (--apply-dynamic-relocs): New aarch64-specific option.
Diffstat (limited to 'gold/options.h')
-rw-r--r--gold/options.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gold/options.h b/gold/options.h
index 4d65225..5756014 100644
--- a/gold/options.h
+++ b/gold/options.h
@@ -644,6 +644,11 @@ class General_options
N_("Allow unresolved references in shared libraries"),
N_("Do not allow unresolved references in shared libraries"));
+ DEFINE_bool(apply_dynamic_relocs, options::TWO_DASHES, '\0', true,
+ N_("Apply link-time values for dynamic relocations (default)"),
+ N_("(aarch64 only) Do not apply link-time values "
+ "for dynamic relocations"));
+
DEFINE_bool(as_needed, options::TWO_DASHES, '\0', false,
N_("Only set DT_NEEDED for shared libraries if used"),
N_("Always DT_NEEDED for shared libraries"));