# Don't let CTOR_LIST end up in sdata section. # FIXME: This is the default. CRTSTUFF_T_CFLAGS = # We exclude those because the libgcc2.c default versions do not support # the SPU single-precision format (round towards zero). We provide our # own versions below and/or via direct expansion. LIB2FUNCS_EXCLUDE = _floatdisf _floatundisf _floattisf _floatunstisf LIB2ADD_ST = $(srcdir)/config/spu/float_unssidf.c \ $(srcdir)/config/spu/float_unsdidf.c \ $(srcdir)/config/spu/float_unsdisf.c \ $(srcdir)/config/spu/float_disf.c \ $(srcdir)/config/spu/mfc_tag_table.c \ $(srcdir)/config/spu/mfc_tag_reserve.c \ $(srcdir)/config/spu/mfc_tag_release.c \ $(srcdir)/config/spu/mfc_multi_tag_reserve.c \ $(srcdir)/config/spu/mfc_multi_tag_release.c \ $(srcdir)/config/spu/multi3.c \ $(srcdir)/config/spu/divmodti4.c \ $(srcdir)/config/spu/divv2df3.c # Build TImode conversion routines to support Fortran 128-bit # integer data types. LIB2_SIDITI_CONV_FUNCS = yes HOST_LIBGCC2_CFLAGS += -mwarn-reloc -D__IN_LIBGCC2 # Neither gcc or newlib seem to have a standard way to generate multiple # crt*.o files. So we don't use the standard crt0.o name anymore. cachemgr.o: $(srcdir)/config/spu/cachemgr.c $(gcc_compile) -c $< # Specialised rule to add a -D flag. cachemgr_nonatomic.o: $(srcdir)/config/spu/cachemgr.c $(gcc_compile) -DNONATOMIC -c $< libgcc_%.a: %.o $(AR_FOR_TARGET) -rcs $@ $< cache8k.o: $(srcdir)/config/spu/cache.S $(gcc_compile) -D__CACHE_SIZE__=8 -c $< cache16k.o: $(srcdir)/config/spu/cache.S $(gcc_compile) -D__CACHE_SIZE__=16 -c $< cache32k.o: $(srcdir)/config/spu/cache.S $(gcc_compile) -D__CACHE_SIZE__=32 -c $< cache64k.o: $(srcdir)/config/spu/cache.S $(gcc_compile) -D__CACHE_SIZE__=64 -c $< cache128k.o: $(srcdir)/config/spu/cache.S $(gcc_compile) -D__CACHE_SIZE__=128 -c $< # We provide our own version of __divdf3 that performs better and has # better support for non-default rounding modes. DPBIT_FUNCS := $(filter-out _div_df, $(DPBIT_FUNCS))