aboutsummaryrefslogtreecommitdiffstats
path: root/lib/raid6/test
diff options
context:
space:
mode:
authorYuanhan Liu <yuanhan.liu@linux.intel.com>2012-11-30 16:10:40 -0500
committerNeilBrown <neilb@suse.de>2012-12-13 03:51:04 -0500
commit4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf (patch)
tree6d321f8a55c2cbd8aacb5a24870e6eccc6e37d9f /lib/raid6/test
parent2c935842bdb46f5f557426feb4d2bdfdad1aa5f9 (diff)
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
10AWK = awk -f 10AWK = awk -f
11AR = ar 11AR = ar
12RANLIB = ranlib 12RANLIB = ranlib
13OBJS = int1.o int2.o int4.o int8.o int16.o int32.o recov.o algos.o tables.o
13 14
14ARCH := $(shell uname -m 2>/dev/null | sed -e /s/i.86/i386/) 15ARCH := $(shell uname -m 2>/dev/null | sed -e /s/i.86/i386/)
15ifeq ($(ARCH),i386) 16ifeq ($(ARCH),i386)
16 CFLAGS += -DCONFIG_X86_32 17 CFLAGS += -DCONFIG_X86_32
18 IS_X86 = yes
17endif 19endif
18ifeq ($(ARCH),x86_64) 20ifeq ($(ARCH),x86_64)
19 CFLAGS += -DCONFIG_X86_64 21 CFLAGS += -DCONFIG_X86_64
22 IS_X86 = yes
23endif
24
25ifeq ($(IS_X86),yes)
26 OBJS += mmx.o sse1.o sse2.o avx2.o recov_ssse3.o recov_avx2.o
27 CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1" | \
28 gcc -c -x assembler - >&/dev/null && \
29 rm ./-.o && echo -DCONFIG_AS_AVX2=1)
30else
31 HAS_ALTIVEC := $(shell echo -e '\#include <altivec.h>\nvector int a;' |\
32 gcc -c -x c - >&/dev/null && \
33 rm ./-.o && echo yes)
34 ifeq ($(HAS_ALTIVEC),yes)
35 OBJS += altivec1.o altivec2.o altivec4.o altivec8.o
36 endif
20endif 37endif
21CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1"| gcc -c -x assembler - &&\
22 rm ./-.o && echo -DCONFIG_AS_AVX2=1)
23 38
24.c.o: 39.c.o:
25 $(CC) $(CFLAGS) -c -o $@ $< 40 $(CC) $(CFLAGS) -c -o $@ $<
@@ -32,9 +47,7 @@ CFLAGS += $(shell echo "vpbroadcastb %xmm0, %ymm1"| gcc -c -x assembler - &&\
32 47
33all: raid6.a raid6test 48all: raid6.a raid6test
34 49
35raid6.a: int1.o int2.o int4.o int8.o int16.o int32.o mmx.o sse1.o sse2.o avx2.o \ 50raid6.a: $(OBJS)
36 altivec1.o altivec2.o altivec4.o altivec8.o recov.o recov_ssse3.o recov_avx2.o algos.o \
37 tables.o
38 rm -f $@ 51 rm -f $@
39 $(AR) cq $@ $^ 52 $(AR) cq $@ $^
40 $(RANLIB) $@ 53 $(RANLIB) $@