summaryrefslogtreecommitdiff
path: root/gcc_arm/config/arm/t-semiaof
diff options
context:
space:
mode:
Diffstat (limited to 'gcc_arm/config/arm/t-semiaof')
-rwxr-xr-xgcc_arm/config/arm/t-semiaof64
1 files changed, 64 insertions, 0 deletions
diff --git a/gcc_arm/config/arm/t-semiaof b/gcc_arm/config/arm/t-semiaof
new file mode 100755
index 0000000..1017543
--- /dev/null
+++ b/gcc_arm/config/arm/t-semiaof
@@ -0,0 +1,64 @@
+OLDCC = armcc -w
+# Don't build enquire
+ENQUIRE=
+CROSS_LIBGCC1 = libgcc1-aof.a
+LIBGCC2 = libgcc2-aof.a
+LIBGCC = libgcc-aof.a
+LIBGCC2_CFLAGS = -O2 -fomit-frame-pointer
+LIBGCC1_TEST = #libgcc1-atest
+EXTRA_PARTS = crtbegin.o crtend.o
+STMP_FIXPROTO =
+
+# Rule to build libgcc1.a and libgcc2.a and libgcc.a, since the librarian
+# for the ARM tools is somewhat quirky, and needs a special rule to use it.
+libgcc1-aof.a: libgcc1.c $(CONFIG_H) config.status
+ -rm -rf tmplib libgcc1.a libgcc1-aof.a tmplibgcc1.a
+ mkdir tmplib
+ for name in $(LIB1FUNCS); \
+ do \
+ echo $${name}; \
+ rm -f $${name}$(objext); \
+ $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \
+ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ mv libgcc1$(objext) tmplib/$${name}$(objext); \
+ done
+ (cd tmplib; \
+ armlib -c tmplibgcc1.a *; \
+ mv tmplibgcc1.a ..)
+ mv tmplibgcc1.a libgcc1-aof.a
+ rm -rf tmplib
+
+libgcc2-aof.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \
+ machmode.h longlong.h gbl-ctors.h config.status
+ -rm -f tmplibgcc2.a
+ -rm -rf tmplib
+ mkdir tmplib
+ for name in $(LIB2FUNCS); \
+ do \
+ echo $${name}; \
+ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \
+ $(srcdir)/libgcc2.c -o tmplib/$${name}$(objext); \
+ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \
+ done
+ (cd tmplib; \
+ armlib -c tmplibgcc2.a *; \
+ mv tmplibgcc2.a ..)
+ mv tmplibgcc2.a libgcc2-aof.a
+ rm -rf tmplib
+
+# Combine the various libraries into a single library, libgcc.a.
+libgcc-aof.a: $(CROSS_LIBGCC1) $(LIBGCC2)
+ -rm -rf tmplibgcc.a libgcc.a tmpcopy libgcc-aof.a
+ mkdir tmpcopy
+ (cd tmpcopy; armlib -e ../$(LIBGCC1) \*)
+ -(cd tmpcopy; chmod +w * > /dev/null 2>&1)
+ (cd tmpcopy; armlib -e ../$(LIBGCC2) \*)
+ (cd tmpcopy; armlib -co ../tmplibgcc.a *$(objext))
+ rm -rf tmpcopy
+ mv tmplibgcc.a libgcc.a
+ ln libgcc.a libgcc-aof.a
+
+libgcc1-atest: libgcc1-test.o native $(GCC_PARTS) $(EXTRA_PARTS)
+ @echo "Testing libgcc1. Ignore linker warning messages."
+ $(GCC_FOR_TARGET) $(GCC_CFLAGS) libgcc1-test.o -o libgcc1-test \
+ -v