From 90d77722511ad5e9b748f69f42c5b2a8467fa049 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Sun, 11 Aug 2013 03:27:35 -0400 Subject: [PATCH] allow subarch-specific asm, including asm specific to the default the default subarch is the one whose full name is just the base arch name, with no suffixes. normally, either the asm in the default subarch is suitable for all subarch variants, or separate asm is mandatory for each variant. however, in the case of asm which is purely for optimization purposes, it's possible to have asm that only works (or only performs well) on the default subarch, and not any othe the other variants. thus, I have added a mechanism to give a name to the default variant, for example "armel" for the default, little-endian arm. further such default-subarch names can be added in the future as needed. --- Makefile | 3 +++ configure | 6 ++++++ 2 files changed, 9 insertions(+) diff --git a/Makefile b/Makefile index 00aa7069..7250e1e6 100644 --- a/Makefile +++ b/Makefile @@ -90,6 +90,9 @@ $(OPTIMIZE_SRCS:%.c=%.o) $(OPTIMIZE_SRCS:%.c=%.lo): CFLAGS += -O3 MEMOPS_SRCS = src/string/memcpy.c src/string/memmove.c src/string/memcmp.c src/string/memset.c $(MEMOPS_SRCS:%.c=%.o) $(MEMOPS_SRCS:%.c=%.lo): CFLAGS += $(CFLAGS_MEMOPS) +%.o: $(ARCH)$(ASMSUBARCH)/%.s + $(CC) $(CFLAGS_ALL_STATIC) -c -o $@ $< + %.o: $(ARCH)/%.s $(CC) $(CFLAGS_ALL_STATIC) -c -o $@ $< diff --git a/configure b/configure index 48465f7c..7aae7d4d 100755 --- a/configure +++ b/configure @@ -393,6 +393,11 @@ test "$ARCH" = "microblaze" && trycppif __MICROBLAZEEL__ "$t" \ test "$SUBARCH" \ && printf "configured for %s variant: %s\n" "$ARCH" "$ARCH$SUBARCH" +case "$ARCH$SUBARCH" in +arm) ASMSUBARCH=el ;; +*) ASMSUBARCH=$SUBARCH ;; +esac + # # Some archs (powerpc) have different possible long double formats # that the compiler can be configured for. The logic for whether this @@ -424,6 +429,7 @@ cat << EOF # Any changes made here will be lost if configure is re-run ARCH = $ARCH SUBARCH = $SUBARCH +ASMSUBARCH = $ASMSUBARCH prefix = $prefix exec_prefix = $exec_prefix bindir = $bindir