diff options
| author | Yuanhan Liu <[email protected]> | 2012-11-30 13:10:40 -0800 |
|---|---|---|
| committer | NeilBrown <[email protected]> | 2012-12-13 19:51:04 +1100 |
| commit | 4f8c55c5ad491dbc7b52ce08bb702ca39ce944cf (patch) | |
| tree | 6d321f8a55c2cbd8aacb5a24870e6eccc6e37d9f /lib/raid6/test | |
| parent | 2c935842bdb46f5f557426feb4d2bdfdad1aa5f9 (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 <[email protected]>
Signed-off-by: Yuanhan Liu <[email protected]>
Reviewed-by: H. Peter Anvin <[email protected]>
Signed-off-by: Jim Kukunas <[email protected]>
Signed-off-by: NeilBrown <[email protected]>
Diffstat (limited to 'lib/raid6/test')
| -rw-r--r-- | lib/raid6/test/Makefile | 23 |
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) $@ |