I'm not sure if this mail should belong to bin-utils mailer, although I speculate something is amiss in the gcc. How different is STT_GNU_IFUNC from PLT with respect to symbol table ? objdump is able to decode symbols for RELATIVE PLT entries, however it is unable to decode symbols for IRELATIVE entries. i686-pc-linux-gnu-objdump -d ~/rlim | less 0804862c <setrlimit@plt-0x10>: 804862c: ff 35 54 9e 04 08 pushl 0x8049e54 8048632: ff 25 58 9e 04 08 jmp *0x8049e58 8048638: 00 00 add %al,(%eax) ... 0804863c <setrlimit@plt>: 804863c: ff 25 5c 9e 04 08 jmp *0x8049e5c 8048642: 68 00 00 00 00 push $0x0 8048647: e9 e0 ff ff ff jmp 804862c <_init+0x18> 0804864c <strerror@plt>: 804864c: ff 25 60 9e 04 08 jmp *0x8049e60 8048652: 68 08 00 00 00 push $0x8 8048657: e9 d0 ff ff ff jmp 804862c <_init+0x18> i686-pc-linux-gnu-objdump -d exec | less 08048250 <.plt>: 8048250: ff 25 60 f5 8f 17 jmp *0x178ff560 8048256: 68 00 00 00 00 push $0x0 804825b: e9 00 00 00 00 jmp 8048260 <__rel_iplt_end+0x44> 8048260: ff 25 64 f5 8f 17 jmp *0x178ff564 8048266: 68 00 00 00 00 push $0x0 804826b: e9 00 00 00 00 jmp 8048270 <__rel_iplt_end+0x54> 8048270: ff 25 68 f5 8f 17 jmp *0x178ff568 8048276: 68 00 00 00 00 push $0x0 804827b: e9 00 00 00 00 jmp 8048280 <__rel_iplt_end+0x64> 8048280: ff 25 6c f5 8f 17 jmp *0x178ff56c 8048286: 68 00 00 00 00 push $0x0 804828b: e9 00 00 00 00 jmp 8048290 <__rel_iplt_end+0x74> 8048290: ff 25 70 f5 8f 17 jmp *0x178ff570