        .section .text.foo,"ax",@progbits
        .type foo, @function
foo:
        movl ifunc@GOT(%ecx), %eax
        movl ifunc@GOTOFF(%ecx), %eax
	call ifunc@PLT
	call ifunc
        movl xxx@GOT(%ecx), %eax
        movl xxx, %eax
        ret

        .section .text.bar,"ax",@progbits
        .type bar, @function
bar:
        .global bar
        ret

        .section .text.ifunc,"ax",@progbits
        .type ifunc, @gnu_indirect_function
ifunc:
        ret

        .section .data.foo,"aw",@progbits
xxx:
	.long ifunc 
