https://sourceware.org/bugzilla/show_bug.cgi?id=28192
Bug ID: 28192 Summary: powerpc64le: gold generates wrong address with a relocation of symbol+offset@got@pcrel Product: binutils Version: 2.36.1 Status: NEW Severity: normal Priority: P2 Component: gold Assignee: ccoutant at gmail dot com Reporter: tuliom at ascii dot art.br CC: ian at airs dot com Target Milestone: --- I can reproduce this issue with the following: $ cat test.c /* Build with: gcc -shared -fuse-ld=gold -mcpu=power10 test.c -o libtest.so*/ #include <stdio.h> int foo (int a, int b) { return a + b; } int bar () { void *p; asm volatile ("pld %0,foo+16@got@pcrel" : "=r" (p)); printf ("foo() is at address %p\n", &foo); printf ("foo()+16 is at address %p\n", p); return 0; } $ cat main.c /* Build with: gcc main.c -o main -L. -ltest Run with: LD_LIBRARY_PATH=$(pwd) ./main */ extern int bar(); int main () { return bar(); } Then we get: $ LD_LIBRARY_PATH=$(pwd) ./main foo() is at address 0x7ffff7f40780 foo()+16 is at address 0x7ffff7f40780 We get the expected output when ld.bfd is used to link libtest.so: $ LD_LIBRARY_PATH=$(pwd) ./main foo() is at address 0x7ffff7f40740 foo()+16 is at address 0x7ffff7f40750 -- You are receiving this mail because: You are on the CC list for the bug.