bug-binutils
[Top][All Lists]
Advanced

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

[Bug binutils/20393] .rela.plt info is pointing to .got.plt while it sho


From: amitgoel25aug at gmail dot com
Subject: [Bug binutils/20393] .rela.plt info is pointing to .got.plt while it should point .plt (X86_64)
Date: Thu, 21 Jul 2016 16:28:36 +0000

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

--- Comment #3 from Amit Goel <amitgoel25aug at gmail dot com> ---
Here is the section information of binary compiled with older gcc version 4.8.4
binutil version 2.24. Info link of .rela.plt point to .plt section (serial
numner 12).


Section Headers:
  [Nr] Name              Type             Address           Offset
       Size              EntSize          Flags  Link  Info  Align
  [ 0]                   NULL             0000000000000000  00000000
       0000000000000000  0000000000000000           0     0     0
  [ 1] .interp           PROGBITS         0000000000400238  00000238
       000000000000001c  0000000000000000   A       0     0     1
  [ 2] .note.ABI-tag     NOTE             0000000000400254  00000254
       0000000000000020  0000000000000000   A       0     0     4
  [ 3] .note.gnu.build-i NOTE             0000000000400274  00000274
       0000000000000024  0000000000000000   A       0     0     4
  [ 4] .gnu.hash         GNU_HASH         0000000000400298  00000298
       0000000000000024  0000000000000000   A       5     0     8
  [ 5] .dynsym           DYNSYM           00000000004002c0  000002c0
       0000000000000210  0000000000000018   A       6     1     8
  [ 6] .dynstr           STRTAB           00000000004004d0  000004d0
       0000000000000125  0000000000000000   A       0     0     1
  [ 7] .gnu.version      VERSYM           00000000004005f6  000005f6
       000000000000002c  0000000000000002   A       5     0     2
  [ 8] .gnu.version_r    VERNEED          0000000000400628  00000628
       0000000000000040  0000000000000000   A       6     2     8
  [ 9] .rela.dyn         RELA             0000000000400668  00000668
       0000000000000030  0000000000000018   A       5     0     8
---->  [10] .rela.plt         RELA             0000000000400698  00000698
       0000000000000198  0000000000000018   A       5    12     8
  [11] .init             PROGBITS         0000000000400830  00000830
       000000000000001a  0000000000000000  AX       0     0     4
---->  [12] .plt              PROGBITS         0000000000400850  00000850
       0000000000000120  0000000000000010  AX       0     0     16
  [13] .text             PROGBITS         0000000000400970  00000970
       0000000000000f42  0000000000000000  AX       0     0     16
  [14] .fini             PROGBITS         00000000004018b4  000018b4
       0000000000000009  0000000000000000  AX       0     0     4
  [15] .rodata           PROGBITS         00000000004018c0  000018c0
       0000000000001138  0000000000000000   A       0     0     8
  [16] .eh_frame_hdr     PROGBITS         00000000004029f8  000029f8
       0000000000000044  0000000000000000   A       0     0     4
  [17] .eh_frame         PROGBITS         0000000000402a40  00002a40
       0000000000000134  0000000000000000   A       0     0     8
  [18] .init_array       INIT_ARRAY       0000000000602df0  00002df0
       0000000000000008  0000000000000000  WA       0     0     8
  [19] .fini_array       FINI_ARRAY       0000000000602df8  00002df8
       0000000000000008  0000000000000000  WA       0     0     8
  [20] .jcr              PROGBITS         0000000000602e00  00002e00
       0000000000000008  0000000000000000  WA       0     0     8
  [21] .dynamic          DYNAMIC          0000000000602e08  00002e08
       00000000000001f0  0000000000000010  WA       6     0     8
  [22] .got              PROGBITS         0000000000602ff8  00002ff8
       0000000000000008  0000000000000008  WA       0     0     8
---->  [23] .got.plt          PROGBITS         0000000000603000  00003000
       00000000000000a0  0000000000000008  WA       0     0     8
  [24] .data             PROGBITS         00000000006030a0  000030a0
       00000000000003e1  0000000000000000  WA       0     0     32
  [25] .bss              NOBITS           0000000000603490  00003481
       0000000000000010  0000000000000000  WA       0     0     16
  [26] .comment          PROGBITS         0000000000000000  00003481
       000000000000002b  0000000000000001  MS       0     0     1
  [27] .shstrtab         STRTAB           0000000000000000  000034ac
       0000000000000108  0000000000000000           0     0     1
  [28] .symtab           SYMTAB           0000000000000000  00003d38
       00000000000007c8  0000000000000018          29    47     8
  [29] .strtab           STRTAB           0000000000000000  00004500
       0000000000000392  0000000000000000           0     0     1
Key to Flags:
  W (write), A (alloc), X (execute), M (merge), S (strings), l (large)
  I (info), L (link order), G (group), T (TLS), E (exclude), x (unknown)
  O (extra OS processing required) o (OS specific), p (processor specific)



PLTGOT DT_TAG of dynsym section points to .got.plt (address 0x603000)
--------------------------------------------------
 0x0000000000000001 (NEEDED)             Shared library: [libc.so.6]
 0x000000000000000f (RPATH)              Library rpath: [$ORIGIN]
 0x000000000000000c (INIT)               0x400830
 0x000000000000000d (FINI)               0x4018b4
 0x0000000000000019 (INIT_ARRAY)         0x602df0
 0x000000000000001b (INIT_ARRAYSZ)       8 (bytes)
 0x000000000000001a (FINI_ARRAY)         0x602df8
 0x000000000000001c (FINI_ARRAYSZ)       8 (bytes)
 0x000000006ffffef5 (GNU_HASH)           0x400298
 0x0000000000000005 (STRTAB)             0x4004d0
 0x0000000000000006 (SYMTAB)             0x4002c0
 0x000000000000000a (STRSZ)              293 (bytes)
 0x000000000000000b (SYMENT)             24 (bytes)
 0x0000000000000015 (DEBUG)              0x0
 ------>0x0000000000000003 (PLTGOT)             0x603000
 0x0000000000000002 (PLTRELSZ)           408 (bytes)
 0x0000000000000014 (PLTREL)             RELA
 0x0000000000000017 (JMPREL)             0x400698
 0x0000000000000007 (RELA)               0x400668
 0x0000000000000008 (RELASZ)             48 (bytes)
 0x0000000000000009 (RELAENT)            24 (bytes)
 0x000000006ffffffe (VERNEED)            0x400628
 0x000000006fffffff (VERNEEDNUM)         2
 0x000000006ffffff0 (VERSYM)             0x4005f6
 0x0000000000000000 (NULL)               0x0



If application is linked via 2.6 linker, both entry points to section .got.plt. 



If it is not a bug, Can you please provide a way to point to .plt section from
elf header information when section names has been stripped?

-- 
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]