Message ID | 8D469478-C9B0-446C-A7DA-B5C5707E738F@sandoe-acoustics.co.uk |
---|---|
State | New |
Headers | show |
On 11/29/2011 03:02 PM, Iain Sandoe wrote: > The following fails: > > FAIL: g++.dg/eh/simd-3.C -std=gnu++98 execution test > FAIL: g++.dg/eh/simd-3.C -std=gnu++11 execution test > FAIL: g++.dg/eh/simd-4.C -std=gnu++98 execution test > FAIL: g++.dg/eh/simd-4.C -std=gnu++11 execution test > > are the tip of an "unwinding doesn't work with vectors" iceberg ... > > and is caused by the unwinder having the wrong size for vec registers > - which, is caused by the unwinder being built with altivec disabled > - which is caused by the unwinder being built with > -mmacosx-version-min=10.4 forced on. > > This strategy was (part of a) solution for the situation that system > libraries might be installed on either G4 or G3 hardware. > > A (low priority) TODO is to provide an updated solution to that > desideratum - low priority since it affects a vanishingly small number > of potential Users. > > The fix for the fails (and to make unwinding with vectors work on > Darwin9) is to build the unwinder 'native'. > > (as part of the TODO above - we also need to figure a way to get the > register sizes right for Darwin 8). > > OK for trunk? > Iain > > libgcc: > > * config/rs6000/t-darwin (DARWIN_EXTRA_CRT_BUILD_CFLAGS): Remove > -mmacosx-version-min=10.4. > (HOST_LIBGCC2_CFLAGS): Likewise. > (LIB2ADD): Correct whitespace. > (LIB2ADD_ST): Add comment. > > Looks good. Paolo
Index: libgcc/config/rs6000/t-darwin =================================================================== --- libgcc/config/rs6000/t-darwin (revision 181772) +++ libgcc/config/rs6000/t-darwin (working copy) @@ -1,23 +1,22 @@ -DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall -mmacosx-version-min=10.4 +DARWIN_EXTRA_CRT_BUILD_CFLAGS = -mlongcall crt2.o: $(srcdir)/config/rs6000/darwin-crt2.c $(crt_compile) $(DARWIN_EXTRA_CRT_BUILD_CFLAGS) -c $< LIB2ADD = $(srcdir)/config/rs6000/darwin-tramp.S \ $(srcdir)/config/darwin-64.c \ - $(srcdir)/config/rs6000/darwin-fpsave.S \ - $(srcdir)/config/rs6000/darwin-gpsave.S \ + $(srcdir)/config/rs6000/darwin-fpsave.S \ + $(srcdir)/config/rs6000/darwin-gpsave.S \ $(srcdir)/config/rs6000/darwin-world.S \ $(srcdir)/config/rs6000/ppc64-fp.c +# ??? Is darwin-vecsave.S actually ever used? - not by recent FSF compilers. LIB2ADD_ST = \ $(srcdir)/config/rs6000/darwin-vecsave.S # The .S files above are designed to run on all processors, even though # they use AltiVec instructions. # -Wa is used because -force_cpusubtype_ALL doesn't work with -dynamiclib. -# -mmacosx-version-min=10.4 is used to provide compatibility for code from -# earlier OSX versions. -HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL -mmacosx-version-min=10.4 +HOST_LIBGCC2_CFLAGS += -Wa,-force_cpusubtype_ALL LIB2ADDEH += $(srcdir)/config/rs6000/darwin-fallback.c