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