aboutsummaryrefslogtreecommitdiff
path: root/gold/testsuite/pr22266_a.c
diff options
context:
space:
mode:
authorJames Clarke <jrtc27@jrtc27.com>2017-11-08 15:13:53 -0800
committerCary Coutant <ccoutant@gmail.com>2017-11-08 15:13:53 -0800
commit333d0055f6f162c334c36f1946b6fcdb5c92b681 (patch)
treee2f634ea32928beaa5801afc966ea07f5e5520cc /gold/testsuite/pr22266_a.c
parent08228b11557016f6f12d537ebff5f169fdf9bc6c (diff)
downloadbinutils-333d0055f6f162c334c36f1946b6fcdb5c92b681.zip
binutils-333d0055f6f162c334c36f1946b6fcdb5c92b681.tar.gz
binutils-333d0055f6f162c334c36f1946b6fcdb5c92b681.tar.bz2
Fix problems with -r.
The fix committed for PR gold/19291 ended up breaking other cases. The commit added adjustment code to write_local_symbols, but in many cases compute_final_local_value_internal had already subtracted the output section's address. To fix this, all other adjustments are now removed, so only the one in write_local_symbols is left. gold/ PR gold/22266 * object.cc (Sized_relobj_file::compute_final_local_value_internal): Drop relocatable parameter and stop adjusting output value based on it. (Sized_relobj_file::compute_final_local_value): Stop passing relocatable to compute_final_local_value_internal. (Sized_relobj_file::do_finalize_local_symbols): Ditto. * object.h (Sized_relobj_file::compute_final_local_value_internal): Drop relocatable parameter.
Diffstat (limited to 'gold/testsuite/pr22266_a.c')
-rw-r--r--gold/testsuite/pr22266_a.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/gold/testsuite/pr22266_a.c b/gold/testsuite/pr22266_a.c
new file mode 100644
index 0000000..b58254c
--- /dev/null
+++ b/gold/testsuite/pr22266_a.c
@@ -0,0 +1,5 @@
+__attribute__((section(".data.a")))
+static int int_from_a_1 = 0x11223344;
+
+__attribute__((section(".data.rel.ro.a")))
+int *p_int_from_a_2 = &int_from_a_1;