Thanks!

On Fri 28 Jul 2017 at 13:41, David Chisnall <thera...@sucs.org> wrote:

> On 28 Jul 2017, at 13:16, Ivan Vučica <i...@vucica.net> wrote:
> >
> > Isn't it this? I'm intentionally grabbing an older version - I'm not
> sure which is the oldest GCC we support, but 3.4.5 documents alias:
> >
> > https://gcc.gnu.org/onlinedocs/gcc-3.4.5/gcc/Function-Attributes.html
> >
> > Quoting:
> >
> > =====
> > alias ("target")
> > The alias attribute causes the declaration to be emitted as an alias for
> another symbol, which must be specified. For instance,
> >           void __f () { /* Do something.
> >  */; }
> >           void f () __attribute__ ((weak, alias ("__f")));
> >
> >
> > declares `f' to be a weak alias for `__f'. In C++, the mangled name for
> the target must be used.
> >
> > Not all target machines support this attribute.
> >
> > ====
>
> It’s documented as a function attribute.  It kind-of works as a variable
> attribute, but probably doesn’t.
>
> > Though, again, as I asked before: why do we want this?
> >
> > I'm not sure we *need* anything more than the macro. Wouldn't we need
> this extra symbol only if we care about better binary compat (maybe for
> Darling's sake)?
>
> It also helps bridging from other languages.  Macros as a colossal pain to
> expose over FFIs, public symbols are trivial.  dlsym works if it’s an
> alias, doesn’t work if it’s a macro.
>
> David
>
> --
Sent from Gmail Mobile on iPad
_______________________________________________
Gnustep-dev mailing list
Gnustep-dev@gnu.org
https://lists.gnu.org/mailman/listinfo/gnustep-dev

Reply via email to