summaryrefslogtreecommitdiffstats
path: root/lib/raid6/test
diff options
context:
space:
mode:
authorYuanhan Liu2012-11-30 22:10:40 +0100
committerNeilBrown2012-12-13 09:51:04 +0100
commit4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf (patch)
tree6d321f8a55c2cbd8aacb5a24870e6eccc6e37d9f /lib/raid6/test
parentlib/raid6: Add AVX2 optimized gen_syndrome functions (diff)
downloadkernel-qcow2-linux-4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf.tar.gz
kernel-qcow2-linux-4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf.tar.xz
kernel-qcow2-linux-4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf.zip
lib/raid6: build proper files on corresponding arch
sse and avx2 stuff only exist on x86 arch, and we don't need to build altivec on x86. And we can do that at lib/raid6/Makefile. Proposed-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Yuanhan Liu <yuanhan.liu@linux.intel.com> Reviewed-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Jim Kukunas <james.t.kukunas@linux.intel.com> Signed-off-by: NeilBrown <neilb@suse.de>
Diffstat (limited to 'lib/raid6/test')
-rw-r--r--lib/raid6/test/Makefile23
1 files changed, 18 insertions, 5 deletions
diff --git a/lib/raid6/test/Makefile b/lib/raid6/test/Makefile
index 754cbac0f9f8..087332dbf8aa 100644
--- a/lib/raid6/test/Makefile
+++ b/lib/raid6/test/Makefile
@@ -10,16 +10,31 @@ LD = ld
AWK = awk -f
AR = ar
RANLIB = ranlib
+OBJS = int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o
ARCH := $(shell uname -m 2>/dev/null | sed -e /s/i.86/i386/)
ifeq ($(ARCH),i386)
CFLAGS += -DCONFIG_X86_32
+ IS_X86 = yes
endif
ifeq ($(ARCH),x86_64)
CFLAGS += -DCONFIG_X86_64
+ IS_X86 = yes
+endif
+
+ifeq ($(IS_X86),yes)
+ OBJS += mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o
+ CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1" | \
+ gcc -c -x assembler - >&/dev/null && \
+ rm ./-.o && echo -DCONFIG_AS_AVX2=1)
+else
+ HAS_ALTIVEC := $(shell echo -e '\#include <altivec.h>\nvector int a;' |\
+ gcc -c -x c - >&/dev/null && \
+ rm ./-.o && echo yes)
+ ifeq ($(HAS_ALTIVEC),yes)
+ OBJS += altivec1.o altivec2.o altivec4.o altivec8.o
+ endif
endif
-CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1"| gcc -c -x assembler - &&\
- rm ./-.o && echo -DCONFIG_AS_AVX2=1)
.c.o:
$(CC) $(CFLAGS) -c -o $@ $<
@@ -32,9 +47,7 @@ CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1"| gcc -c -x assembler - &&\
all: raid6.a raid6test
-raid6.a: int1.o int2.o int4.o int8.o int16.o int32.o mmx.o sse1.o sse2.o avx2.o \
- altivec1.o altivec2.o altivec4.o altivec8.o recov.o recov_ssse3.o recov_avx2.o algos.o \
- tables.o
+raid6.a: $(OBJS)
rm -f $@
$(AR) cq $@ $^
$(RANLIB) $@