Index: gcc/gcc/config/spu/t-spu-elf |
diff --git a/gcc/gcc/config/spu/t-spu-elf b/gcc/gcc/config/spu/t-spu-elf |
index a2e40fb7e146cb7751072e410e4ed14cc14a35eb..a54ede9fa253ba38701e3ace3e81e303a6ced941 100644 |
--- a/gcc/gcc/config/spu/t-spu-elf |
+++ b/gcc/gcc/config/spu/t-spu-elf |
@@ -1,4 +1,4 @@ |
-# Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. |
+# Copyright (C) 2006, 2007, 2008, 2009 Free Software Foundation, Inc. |
# |
# This file is free software; you can redistribute it and/or modify it under |
# the terms of the GNU General Public License as published by the Free |
@@ -66,14 +66,39 @@ fp-bit.c: $(srcdir)/config/fp-bit.c $(srcdir)/config/spu/t-spu-elf |
# Don't let CTOR_LIST end up in sdata section. |
CRTSTUFF_T_CFLAGS = |
-#MULTILIB_OPTIONS=mlarge-mem/mtest-abi |
-#MULTILIB_DIRNAMES=large-mem test-abi |
-#MULTILIB_MATCHES= |
+# Multi-lib support. |
+MULTILIB_OPTIONS=mea64 |
# 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. |
-EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o |
+EXTRA_MULTILIB_PARTS = crtbegin.o crtend.o libgcc_cachemgr.a libgcc_cachemgr_nonatomic.a \ |
+ libgcc_cache8k.a libgcc_cache16k.a libgcc_cache32k.a libgcc_cache64k.a libgcc_cache128k.a |
+ |
+$(T)cachemgr.o: $(srcdir)/config/spu/cachemgr.c |
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(MULTILIB_CFLAGS) -c $< -o $@ |
+ |
+# Specialised rule to add a -D flag. |
+$(T)cachemgr_nonatomic.o: $(srcdir)/config/spu/cachemgr.c |
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(MULTILIB_CFLAGS) -DNONATOMIC -c $< -o $@ |
+ |
+$(T)libgcc_%.a: $(T)%.o |
+ $(AR_FOR_TARGET) -rcs $@ $< |
+ |
+$(T)cache8k.o: $(srcdir)/config/spu/cache.S |
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -D__CACHE_SIZE__=8 -o $@ -c $< |
+ |
+$(T)cache16k.o: $(srcdir)/config/spu/cache.S |
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -D__CACHE_SIZE__=16 -o $@ -c $< |
+ |
+$(T)cache32k.o: $(srcdir)/config/spu/cache.S |
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -D__CACHE_SIZE__=32 -o $@ -c $< |
+ |
+$(T)cache64k.o: $(srcdir)/config/spu/cache.S |
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -D__CACHE_SIZE__=64 -o $@ -c $< |
+ |
+$(T)cache128k.o: $(srcdir)/config/spu/cache.S |
+ $(GCC_FOR_TARGET) $(MULTILIB_CFLAGS) -D__CACHE_SIZE__=128 -o $@ -c $< |
LIBGCC = stmp-multilib |
INSTALL_LIBGCC = install-multilib |
@@ -90,6 +115,6 @@ spu.o: $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \ |
spu-c.o: $(srcdir)/config/spu/spu-c.c \ |
$(srcdir)/config/spu/spu-protos.h \ |
$(CONFIG_H) $(SYSTEM_H) $(TREE_H) $(CPPLIB_H) \ |
- $(TM_P_H) c-pragma.h errors.h coretypes.h $(TM_H) insn-codes.h |
- $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(srcdir)/config/spu/spu-c.c |
- |
+ $(TM_P_H) c-pragma.h coretypes.h $(TM_H) insn-codes.h |
+ $(COMPILER) -c $(ALL_COMPILERFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ |
+ $(srcdir)/config/spu/spu-c.c |