[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug ld/13178] New: Unnecessary GOT relocation created for IFUNC

From: drepper.fsp at gmail dot com
Subject: [Bug ld/13178] New: Unnecessary GOT relocation created for IFUNC
Date: Sun, 11 Sep 2011 14:26:13 +0000


             Bug #: 13178
           Summary: Unnecessary GOT relocation created for IFUNC
           Product: binutils
           Version: 2.21
            Status: NEW
          Severity: normal
          Priority: P2
         Component: ld
        AssignedTo: address@hidden
        ReportedBy: address@hidden
    Classification: Unclassified
              Host: x86_64-linux

Created attachment 5926
  --> http://sourceware.org/bugzilla/attachment.cgi?id=5926
Test program to show unnecessary IFUNC relocation

When compiling the attached code using

  gcc -shared -o u.so -fpic u.so

on an x86-64 system you will see the following relocations:

Relocation section [ 7] '.rela.dyn' for section [ 0] '' at offset 0x3e8
contains 5 entries:
  Offset              Type            Value               Addend Name
  0x0000000000200760  X86_64_RELATIVE 000000000000000000  +2099040 
  0x00000000002008e8  X86_64_GLOB_DAT 000000000000000000      +0 __gmon_start__
  0x00000000002008f0  X86_64_GLOB_DAT 000000000000000000      +0
  0x00000000002008f8  X86_64_GLOB_DAT 000000000000000000      +0 __cxa_finalize
  0x0000000000200900  X86_64_GLOB_DAT 0x00000000000005d8      +0 f

Relocation section [ 8] '.rela.plt' for section [10] '.plt' at offset 0x460
contains 3 entries:
  Offset              Type            Value               Addend Name
  0x0000000000200920  X86_64_JUMP_SLOT 000000000000000000      +0
  0x0000000000200928  X86_64_JUMP_SLOT 0x00000000000005d8      +0 f
  0x0000000000200930  X86_64_JUMP_SLOT 0x00000000000005e5      +0 g

There are two relocations against f.  Since there is no reference to f other
than through a call there is no need for a GOT relocation.  The PLT relocation
is all that's needed.  It works fine for normal symbols (there is only one
relocation for g) and IFUNCs should be handled just like that.

Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]