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. Thanks, Uros.