https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82303
--- Comment #9 from Thomas Garnier <thgarnie at google dot com> --- I tested the change against a modified version of the proposed Linux x86_64 PIE support. The changes removes all the PLT32 and GOT64 entry but I still get R_X86_64_GOTPC64 & R_X86_64_GOTOFF64 relocations on the head64.c file that is built with -mcmodel=large (to prevent odd logic on early boot with different VA). Do you think the suggested patch can be changed to remove these? To repro, build the object file with: gcc -mcmodel=large -c -fstatic-pie ./test.c -o test The objdump -dr output of the testcase: 0000000000000000 <main>: 0: 55 push %rbp 1: 48 89 e5 mov %rsp,%rbp 4: 48 83 ec 20 sub $0x20,%rsp 8: 48 8d 05 f9 ff ff ff lea -0x7(%rip),%rax # 8 <main+0x8> f: 49 bb 00 00 00 00 00 movabs $0x0,%r11 16: 00 00 00 11: R_X86_64_GOTPC64 _GLOBAL_OFFSET_TABLE_+0x9 19: 4c 01 d8 add %r11,%rax 1c: 89 7d ec mov %edi,-0x14(%rbp) 1f: 48 89 75 e0 mov %rsi,-0x20(%rbp) 23: 48 ba 00 00 00 00 00 movabs $0x0,%rdx 2a: 00 00 00 25: R_X86_64_GOTOFF64 _text-0x1023 2d: 48 8d 14 10 lea (%rax,%rdx,1),%rdx 31: 89 55 fc mov %edx,-0x4(%rbp) 34: 8b 55 ec mov -0x14(%rbp),%edx 37: 48 63 d2 movslq %edx,%rdx 3a: 48 8b 4d e0 mov -0x20(%rbp),%rcx 3e: 48 89 ce mov %rcx,%rsi 41: 48 b9 00 00 00 00 00 movabs $0x0,%rcx 48: 00 00 00 43: R_X86_64_GOTOFF64 _text 4b: 48 8d 3c 08 lea (%rax,%rcx,1),%rdi 4f: 48 b9 00 00 00 00 00 movabs $0x0,%rcx 56: 00 00 00 51: R_X86_64_GOTOFF64 memcpy 59: 48 8d 04 08 lea (%rax,%rcx,1),%rax 5d: ff d0 callq *%rax 5f: 8b 45 fc mov -0x4(%rbp),%eax 62: c9 leaveq 63: c3 retq