diff options
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/elf32-arm.c | 12 | ||||
-rw-r--r-- | ld/ChangeLog | 7 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/tls-app.d | 22 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/tls-app.r | 3 | ||||
-rw-r--r-- | ld/testsuite/ld-arm/unresolved-1-dyn.d | 2 |
6 files changed, 31 insertions, 21 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index f988812..bf400a9 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,9 @@ +2017-10-10 Renlin Li <renlin.li@arm.com> + + PR ld/21402 + * elf32-arm.c (allocate_dynrelocs_for_symbol): Only make undefined weak + symbols into dynamic. + 2017-10-09 H.J. Lu <hongjiu.lu@intel.com> PR ld/22274 diff --git a/bfd/elf32-arm.c b/bfd/elf32-arm.c index bad8540..f841da7 100644 --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -15443,8 +15443,8 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf) { /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local) + if (h->dynindx == -1 && !h->forced_local + && h->root.type == bfd_link_hash_undefweak) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -15531,8 +15531,8 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf) /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local) + if (h->dynindx == -1 && !h->forced_local + && h->root.type == bfd_link_hash_undefweak) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; @@ -15755,8 +15755,8 @@ allocate_dynrelocs_for_symbol (struct elf_link_hash_entry *h, void * inf) { /* Make sure this symbol is output as a dynamic symbol. Undefined weak syms won't yet be marked as dynamic. */ - if (h->dynindx == -1 - && !h->forced_local) + if (h->dynindx == -1 && !h->forced_local + && h->root.type == bfd_link_hash_undefweak) { if (! bfd_elf_link_record_dynamic_symbol (info, h)) return FALSE; diff --git a/ld/ChangeLog b/ld/ChangeLog index 58f6420..2a7f7bc 100644 --- a/ld/ChangeLog +++ b/ld/ChangeLog @@ -1,3 +1,10 @@ +2017-10-10 Renlin Li <renlin.li@arm.com> + + PR ld/21402 + * testsuite/ld-arm/tls-app.d: Update address. + * testsuite/ld-arm/tls-app.r: Remove relocations. + * testsuite/ld-arm/unresolved-1-dyn.d: Update. + 2017-10-10 Alan Modra <amodra@gmail.com> * Makefile.am (earmelfb_fuchsia.c): Rename rule from earmelf_fuchsia.c. diff --git a/ld/testsuite/ld-arm/tls-app.d b/ld/testsuite/ld-arm/tls-app.d index de0cbab..454adcd 100644 --- a/ld/testsuite/ld-arm/tls-app.d +++ b/ld/testsuite/ld-arm/tls-app.d @@ -2,17 +2,17 @@ .*: file format elf32-.*arm.* architecture: arm.*, flags 0x00000112: EXEC_P, HAS_SYMS, D_PAGED -start address 0x000081c8 +start address 0x00008[0-9a-f]+ Disassembly of section .text: -000081c8 <foo>: - 81c8: e1a00000 nop ; \(mov r0, r0\) - 81cc: e1a00000 nop ; \(mov r0, r0\) - 81d0: e1a0f00e mov pc, lr - 81d4: 000080bc .word 0x000080bc - 81d8: 000080b4 .word 0x000080b4 - 81dc: 000080ac .word 0x000080ac - 81e0: 00000004 .word 0x00000004 - 81e4: 000080c4 .word 0x000080c4 - 81e8: 00000014 .word 0x00000014 +00008[0-9a-f]+ <foo>: + 8[0-9a-f]+: e1a00000 nop ; \(mov r0, r0\) + 8[0-9a-f]+: e1a00000 nop ; \(mov r0, r0\) + 8[0-9a-f]+: e1a0f00e mov pc, lr + 8[0-9a-f]+: 000080bc .word 0x000080bc + 8[0-9a-f]+: 000080b4 .word 0x000080b4 + 8[0-9a-f]+: 000080ac .word 0x000080ac + 8[0-9a-f]+: 00000004 .word 0x00000004 + 8[0-9a-f]+: 000080c4 .word 0x000080c4 + 8[0-9a-f]+: 00000014 .word 0x00000014 diff --git a/ld/testsuite/ld-arm/tls-app.r b/ld/testsuite/ld-arm/tls-app.r index b156d52..518c18c 100644 --- a/ld/testsuite/ld-arm/tls-app.r +++ b/ld/testsuite/ld-arm/tls-app.r @@ -3,8 +3,5 @@ DYNAMIC RELOCATION RECORDS OFFSET TYPE VALUE -[0-9a-f]+ R_ARM_TLS_DTPMOD32 app_gd -[0-9a-f]+ R_ARM_TLS_DTPOFF32 app_gd [0-9a-f]+ R_ARM_TLS_DTPMOD32 lib_gd [0-9a-f]+ R_ARM_TLS_DTPOFF32 lib_gd -[0-9a-f]+ R_ARM_TLS_TPOFF32 app_ie diff --git a/ld/testsuite/ld-arm/unresolved-1-dyn.d b/ld/testsuite/ld-arm/unresolved-1-dyn.d index 21cd959..529da37 100644 --- a/ld/testsuite/ld-arm/unresolved-1-dyn.d +++ b/ld/testsuite/ld-arm/unresolved-1-dyn.d @@ -5,4 +5,4 @@ Relocation section '\.rel\.dyn' .* Offset .* -.* R_ARM_GLOB_DAT +00000000 +foo +^.* 00000000 R_ARM_NONE.+ |