1 .text 2 .globl bar 3 .type bar, @function 4bar: 5 call __x86.get_pc_thunk.ax 6 addl $_GLOBAL_OFFSET_TABLE_, %eax 7 lea foo@GOT, %ecx 8 mov (%eax,%ecx,1), %eax 9 ret 10 .globl bar_ifunc 11 .type bar_ifunc, @function 12bar_ifunc: 13 call __x86.get_pc_thunk.ax 14 addl $_GLOBAL_OFFSET_TABLE_, %eax 15 lea ifunc@GOT, %ecx 16 mov (%eax,%ecx,1), %eax 17 ret 18 .type ifunc, @gnu_indirect_function 19ifunc: 20 mov $0xbadbeef, %eax 21 ret 22 .section .text.__x86.get_pc_thunk.ax,"axG",@progbits,__x86.get_pc_thunk.ax,comdat 23 .globl __x86.get_pc_thunk.ax 24 .hidden __x86.get_pc_thunk.ax 25 .type __x86.get_pc_thunk.ax, @function 26__x86.get_pc_thunk.ax: 27 movl (%esp), %eax 28 ret 29 .section .note.GNU-stack,"",@progbits 30