On Tue, Jan 20, 2015 at 10:51:03AM +0100, Uros Bizjak wrote:
> On Tue, Jan 20, 2015 at 10:42 AM, Rainer Orth
> <r...@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.

Agreed.

        Jakub

Reply via email to