+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22064
+ * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Check
+ ELF_COMMON_DEF_P for common symbols.
+
2017-09-02 Alan Modra <amodra@gmail.com>
* elf-eh-frame.c (offset_adjust): Avoid false positive gcc warning.
else if (bfd_link_pic (info)
&& SYMBOL_REFERENCES_LOCAL (info, h))
{
- if (!h->def_regular)
+ if (!(h->def_regular || ELF_COMMON_DEF_P (h)))
return FALSE;
BFD_ASSERT((h->got.offset & 1) != 0);
rela.r_info = htab->r_info (0, R_X86_64_RELATIVE);
+2017-09-01 H.J. Lu <hongjiu.lu@intel.com>
+
+ PR ld/22064
+ * testsuite/ld-x86-64/pr22064a.S: New file.
+ * testsuite/ld-x86-64/pr22064b.c: Likewise.
+ * testsuite/ld-x86-64/x86-64.exp: Run PR ld/22064 test.
+
2017-09-02 Alan Modra <amodra@gmail.com>
* emultempl/msp430.em (eval_upper_either_sections): Make base_sec_name
--- /dev/null
+ .section .rodata.str1.1,"aMS",@progbits,1
+.LC0:
+ .string "PASS"
+ .text
+ .globl main
+ .type main, @function
+main:
+ movq foo@GOTPCREL(%rip), %rax
+ cmpl $0, (%rax)
+ jne .L4
+ subq $8, %rsp
+ call foo_p@PLT
+ cmpq foo@GOTPCREL(%rip), %rax
+ jne .L2
+ movq bar@GOTPCREL(%rip), %rax
+ cmpl $-1, (%rax)
+ jne .L2
+ call bar_p@PLT
+ cmpq bar@GOTPCREL(%rip), %rax
+ jne .L2
+ leaq .LC0(%rip), %rdi
+ call puts@PLT
+.L2:
+ movl $0, %eax
+ addq $8, %rsp
+ ret
+.L4:
+ movl $0, %eax
+ ret
+ .size main, .-main
+ .comm bar,8,4
+ .comm foo,4,4
+ .section .note.GNU-stack,"",@progbits
--- /dev/null
+int foo[2];
+int bar[2] = { -1, -1 };
+
+int *
+foo_p (void)
+{
+ return foo;
+}
+
+int *
+bar_p (void)
+{
+ return bar;
+}
{{error_output "pr21997-1a.err"}} \
"pr21997-1a" \
] \
+ [list \
+ "Build pr22064a.o" \
+ "" \
+ "" \
+ { pr22064a.S } \
+ ] \
+ [list \
+ "Build pr22064.so" \
+ "-shared" \
+ "-fPIC" \
+ { pr22064b.c } \
+ {} \
+ "pr22064.so" \
+ ] \
]
if {[istarget "x86_64-*-linux*-gnux32"]} {
"pass.out" \
"-fPIC" \
] \
+ [list \
+ "Run pr22064" \
+ "-pie -Wl,--no-as-needed tmpdir/pr22064a.o tmpdir/pr22064.so" \
+ "" \
+ { dummy.s } \
+ "pr22064-pie" \
+ "pass.out" \
+ "-fPIE" \
+ ] \
]
# Run-time tests which require working ifunc attribute support.