Similar as aarch64 backend, arm backend only overrides the decision on undefined
weak symbols. arm backend part already emits necessary relative relocation for
this case.
bfd/
PR ld/21402
* elf32-arm.c (allocate_dynrelocs_for_symbol): Only make undefined weak
symbols into dynamic.
ld/
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 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
{
/* 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;
/* 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;
{
/* 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;
+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.
.*: 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
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
Relocation section '\.rel\.dyn' .*
Offset .*
-.* R_ARM_GLOB_DAT +00000000 +foo
+^.* 00000000 R_ARM_NONE.+