PATCH: Add ifunc attribute

Petr Baudis pasky@suse.cz
Fri Jun 12 19:37:00 GMT 2009


Hi!

Shouldn't this mention what indirect function actually is?

On Fri, Jun 12, 2009 at 09:37:36AM -0700, H.J. Lu wrote:
> > all the issues of wrong optimizations when seeing the function body,
> > but at least the documentation needs to be more explicit about
> > this subtle difference.
> >
> 
> How about this
> 
> `ifunc ("FUNCTION")'
>      The `ifunc' attribute only applies to global function definition,
>      which causes the definition to be emitted as an indirect function.
>      For instance,
> 
>           void* f_ifunc () __attribute__ ((ifunc ("f")));
> 
>      defines `f_ifunc' to be an indirect function for `f'.  The
>      indirect function `f_ifunc', which is used by static linker and
>      dynamic linker, is never called directly in the program.

It is called the first time the `f' function would be called and returns
a pointer to the actual function that should be executed as `f'.


>      This attribute is ignored if `f_ifunc' is undefined in the same
>      translation unit.
> 
>      See `STT_GNU_IFUNC' specified in `ifunc.txt' at
>      `http://groups.google.com/group/generic-abi/files' for details.
> 
>      Not all target machines support this attribute.

-- 
				Petr "Pasky" Baudis
The lyf so short, the craft so long to lerne. -- Chaucer



More information about the Libc-alpha mailing list