https://sourceware.org/bugzilla/show_bug.cgi?id=18900

            Bug ID: 18900
           Summary: Unnecessary PLT entry for function pointer
                    initialization
           Product: binutils
           Version: 2.26 (HEAD)
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
          Assignee: unassigned at sourceware dot org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---

[hjl@gnu-tools-1 no-plt-3]$ cat x.c
extern void foo (void);

void (*p) (void) = &foo;

int
main ()
{
  p ();
  return 0;
}
[hjl@gnu-tools-1 no-plt-3]$ cat foo.c
#include <stdio.h>

void
foo (void)
{
  printf ("OK\n");
}
[hjl@gnu-tools-1 no-plt-3]$ make
gcc -g   -c -o x.o x.c
gcc -g -fPIC   -c -o foo.o foo.c
ld  -shared -o libfoo.so foo.o
gcc  -o x x.o libfoo.so -Wl,-rpath,.
./x
OK
readelf -r x

Relocation section '.rela.dyn' at offset 0x3d0 contains 1 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000600958  000200000006 R_X86_64_GLOB_DAT 0000000000000000 __gmon_start__ +
0

Relocation section '.rela.plt' at offset 0x3e8 contains 2 entries:
  Offset          Info           Type           Sym. Value    Sym. Name +
Addend
000000600978  000100000007 R_X86_64_JUMP_SLO 0000000000000000
__libc_start_main@GLIBC_2.2.5 + 0
000000600980  000400000007 R_X86_64_JUMP_SLO 0000000000400460 foo + 0
[hjl@gnu-tools-1 no-plt-3]$

-- 
You are receiving this mail because:
You are on the CC list for the bug.

_______________________________________________
bug-binutils mailing list
bug-binutils@gnu.org
https://lists.gnu.org/mailman/listinfo/bug-binutils

Reply via email to