PLT entries for STT_GNU_IFUNC in static binaries

vijay nag vijunag@gmail.com
Thu Sep 26 08:58:00 GMT 2013


Why this difference in  "objdump -d" output of IRELATIVE PLT entries
for static and dynamic executable ?

Doesn't static executable possess PLT symbol information ?

Dynamic executable:

000694d0 <strrchr@plt>:
   694d0:       ff 25 40 bd 78 0f       jmp    *0xf78bd40
   694d6:       68 b0 02 00 00          push   $0x2b0
   694db:       e9 80 fa ff ff          jmp    68f60 <_init+0x38>

000694e0 <strncpy@plt>:
   694e0:       ff 25 44 bd 78 0f       jmp    *0xf78bd44
   694e6:       68 b8 02 00 00          push   $0x2b8
   694eb:       e9 70 fa ff ff          jmp    68f60 <_init+0x38>

000694f0 <strcmp@plt>:
   694f0:       ff 25 48 bd 78 0f       jmp    *0xf78bd48
   694f6:       68 c0 02 00 00          push   $0x2c0
   694fb:       e9 60 fa ff ff          jmp    68f60 <_init+0x38>


Static executable:

08048250 <.plt>:
 8048250:       ff 25 14 87 8f 17       jmp    *0x178f8714
 8048256:       68 00 00 00 00          push   $0x0
 804825b:       e9 00 00 00 00          jmp    8048260 <__rel_iplt_end+0x44>
 8048260:       ff 25 18 87 8f 17       jmp    *0x178f8718
 8048266:       68 00 00 00 00          push   $0x0
 804826b:       e9 00 00 00 00          jmp    8048270 <__rel_iplt_end+0x54>
 8048270:       ff 25 1c 87 8f 17       jmp    *0x178f871c
 8048276:       68 00 00 00 00          push   $0x0
 804827b:       e9 00 00 00 00          jmp    8048280 <__rel_iplt_end+0x64>
 8048280:       ff 25 20 87 8f 17       jmp    *0x178f8720
 8048286:       68 00 00 00 00          push   $0x0
 804828b:       e9 00 00 00 00          jmp    8048290 <__rel_iplt_end+0x74>
 8048290:       ff 25 24 87 8f 17       jmp    *0x178f8724



More information about the Binutils mailing list