[PATCH, i386] Remove EBX usage from asm code

Uros Bizjak ubizjak@gmail.com
Tue Jan 20 10:24:00 GMT 2015


On Tue, Jan 20, 2015 at 10:42 AM, Rainer Orth
<ro@cebitec.uni-bielefeld.de> wrote:

>>> The target is i386-pc-solaris2.10, which includes i386/sysv4.h.  Only
>>> the amd64 crtbegin.o is affected, the i386 one is fine.
>>
>> Please split sysv4-common.h out of i386/sysv4.h, similar to how
>> i386/gnu-user.h and gnu-user-common.h are split.
>
> This would break Solaris/SPARC (there's no sparc/sysv4-common.h), and
> only works on Linux/x86 by accident:
>
> * CRT_GET_RFIB_DATA is only defined in i386/gnu-user.h there, but that
>   file is only included for 32-bit-only configurations, not
>   32-bit-default ones (--enable-targets=all).  In the latter case, the
>   macro is not defined for the 32-bit multilib, where it should be.
>
> * CRT_GET_RFIB_DATA is only used in libgcc/crtstuff.c and
>   libgcc/unwind-dw2-fde-dip.c (which already has a workaround for it
>   being incorrectly defined for 64-bit Solaris/x86).
>
> IMO, the definition has no business living in gcc/config/i386 at all,
> but should move to libgcc/config instead (together with the one in
> frv/frv.h).  That being probably too intrusive at this stage, I think
> the best workaround for now is to simply wrap the definition in
> i386/syv4.h (which is Solaris/x86-only anyway) in __i386__.

Ugh...

Considering your explanation and the mess in the unwinder, IMO this
should be fixed in the correct way even at this stage.

CC RMs for their opinion.

Thanks,
Uros.



More information about the Gcc-patches mailing list