Please help with __attribute__ weak
H. J. Lu
hjl@lucon.org
Tue Jul 26 15:05:00 GMT 2005
On Tue, Jul 26, 2005 at 10:16:48AM -0400, Dimitry Golubovsky wrote:
> Dimitry Golubovsky wrote:
>
> > I need to declare a symbol which is weaker in the executable than in any
> > external static or dynamic library.
>
> > In other words, the executable provides some fallback function
> > implementation (in my example, for "write"). But if the linker or
> > dynamic linker resolves it, the symbol definition from an external
> > library must be used.
>
>
> H. J. Lu wrote:
>
> The weak symbol is different from the normal one only during creating
> executable or shared library if it is in a relocatable file. You
> can't use weak symbol for your purpose. But you can mark your symbol in
> shared library protected.
>
> =================
>
> Well, libraries are not created by me, so I cannot rely on any
> possibility to mark symbols in it. Besides, this is for an automated
> tool which may deal with tens of functions at once (this is for a
> Haskell FFI generator known as `hsffig' that I am developing).
>
> If there is no way to declare overridable symbols in executables, then
> perhaps placing all those fallback stub functions in a separate static
> library (.a) and telling the linker to use it last (after all default
> and user-specified libraries) could do the job, couldn't it?
>
Yes.
H.J.
More information about the Gcc
mailing list