Browse Source
bfd/ PR ld/22064 * elf64-x86-64.c (elf_x86_64_finish_dynamic_symbol): Check ELF_COMMON_DEF_P for common symbols. ld/ 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.gdb-8.1-branch
6 changed files with 84 additions and 1 deletions
@ -0,0 +1,33 @@ |
|||
.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 |
|||
@ -0,0 +1,14 @@ |
|||
int foo[2]; |
|||
int bar[2] = { -1, -1 }; |
|||
|
|||
int * |
|||
foo_p (void) |
|||
{ |
|||
return foo; |
|||
} |
|||
|
|||
int * |
|||
bar_p (void) |
|||
{ |
|||
return bar; |
|||
} |
|||
Loading…
Reference in new issue