aboutsummaryrefslogtreecommitdiff
path: root/ld/ChangeLog
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2014-01-15 21:50:55 +1030
committerAlan Modra <amodra@gmail.com>2014-01-15 22:23:16 +1030
commit4199e3b8669d0a36448687850374fdc2ad7240b6 (patch)
treea7c11cbb939cda37c5e69363093c3ad0866b7df9 /ld/ChangeLog
parentbb4142cf49651ddcb0e00f6aaf451272c4c9977d (diff)
downloadgdb-4199e3b8669d0a36448687850374fdc2ad7240b6.zip
gdb-4199e3b8669d0a36448687850374fdc2ad7240b6.tar.gz
gdb-4199e3b8669d0a36448687850374fdc2ad7240b6.tar.bz2
non-PIC references to __ehdr_start in pie and shared
Rather than hacking every backend to not discard dynamic relocations against an undefined hidden __ehdr_start, make it appear to be defined early. We want __ehdr_start hidden before size_dynamic_sections so that it isn't put in .dynsym, but we do need the dynamic relocations for a PIE or shared library with a non-PIC reference. Defining it early is wrong if we don't actually define the symbol later to its proper value. (In some cases we want to leave the symbol undefined, for example, when the ELF header isn't loaded, and we don't have this infomation available in before_allocation.) ld/ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define __ehdr_start before size_dynamic_sections and restore afterwards. ld/testsuite/ * ld-elf/ehdr_start-shared.d: New. * ld-elf/ehdr_start-userdef.d: xfail frv. * ld-elf/ehdr_start-weak.d: Likewise. * ld-elf/ehdr_start.d: Likewise.
Diffstat (limited to 'ld/ChangeLog')
-rw-r--r--ld/ChangeLog5
1 files changed, 5 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 2b7a573..eaa6b93 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2014-01-15 Alan Modra <amodra@gmail.com>
+
+ * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation): Define
+ __ehdr_start before size_dynamic_sections and restore afterwards.
+
2014-01-10 Alan Modra <amodra@gmail.com>
PR ld/14207