PATCH: gcc4 alias fixes

Marcus Meissner meissner at suse.de
Tue Apr 26 03:46:55 CDT 2005


On Mon, Apr 25, 2005 at 10:43:09PM -0700, Dan Kegel wrote:
> Dimitrie O. Paun wrote:
> >>This is the patch I use for gcc4.0 here.
> >>
> >>I am not really sure why this aliasing was introduced,
> >>but it will not work this way anymore.
> >
> >I still don't understand why it doesn't work.
> >
> >It was introduced because using macros it not always acceptable.
> >Some source uses these functions in ways that break if they are
> >defined as macros.
> >
> >Defining them as inline functions work, but we can't do so for
> >varargs, in which case we used aliases.
> >
> >What was the reason to break them, and why they don't work?
> >They are aliasing to things that _are_ defined, so I'm not
> >sure what is going on there.
> 
> http://www.gnu.org/software/gcc/gcc-4.0/changes.html
> says (not that I really understand it totally):
> 
> --- snip ---
> Given __attribute__((alias("target"))) it is now an
> error if target is not a symbol, defined in the same
> translation unit. This also applies to aliases created
> by #pragma weak alias=target.
> This is because it's meaningless to define an alias to
> an undefined symbol. On Solaris, the native assembler
> would have caught this error, but GNU as does not.
> --- snip ---

Yes, thats what I found out too.

The problem is that "aliases" are only useable for renaming
functions in the compilation units where they are defined,
not for some kind of highlevel "#define" method.

Ciao, Marcus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://www.winehq.org/pipermail/wine-devel/attachments/20050426/b7af691a/attachment.pgp


More information about the wine-devel mailing list