https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67215
--- Comment #2 from Andrew Senkevich <andrew.n.senkevich at gmail dot com> ---
-bash-4.2$ cat test.c
extern int proc2(int);
int proc( void)
{
int i = proc2( 3);
return i;
}
gcc test.c -S -pie -fpie -o test.1.S
gcc test.c -S -pie -fpie -fno-plt -o test.2.S
-bash-4.2$ cat test.1.S
.file "test.c"
.text
.globl proc
.type proc, @function
proc:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movl $3, %edi
call proc2@PLT
movl %eax, -4(%rbp)
movl -4(%rbp), %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size proc, .-proc
.ident "GCC: (GNU) 6.0.0 20150812 (experimental)"
.section .note.GNU-stack,"",@progbits
-bash-4.2$ cat test.2.S
.file "test.c"
.text
.globl proc
.type proc, @function
proc:
.LFB0:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6, -16
movq %rsp, %rbp
.cfi_def_cfa_register 6
subq $16, %rsp
movq proc2@GOTPCREL(%rip), %rax
movl $3, %edi
call *%rax
movl %eax, -4(%rbp)
movl -4(%rbp), %eax
leave
.cfi_def_cfa 7, 8
ret
.cfi_endproc
.LFE0:
.size proc, .-proc
.ident "GCC: (GNU) 6.0.0 20150812 (experimental)"
.section .note.GNU-stack,"",@progbits