summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/always-arch.m447
-rw-r--r--lib/libicp/Makefile.am17
-rw-r--r--lib/libspl/Makefile.am14
-rw-r--r--lib/libspl/asm-generic/.gitignore1
-rw-r--r--module/icp/Makefile.in29
-rw-r--r--module/os/linux/zfs/Makefile.in4
-rw-r--r--module/zcommon/Makefile.in4
-rw-r--r--module/zfs/Makefile.in8
8 files changed, 61 insertions, 63 deletions
diff --git a/config/always-arch.m4 b/config/always-arch.m4
index c3e6b4a97..eb8839b97 100644
--- a/config/always-arch.m4
+++ b/config/always-arch.m4
@@ -1,22 +1,41 @@
dnl #
-dnl # Set the target arch for libspl atomic implementation and the icp
+dnl # Set the target cpu architecture. This allows the
+dnl # following syntax to be used in a Makefile.am.
+dnl #
+dnl # ifeq ($(TARGET_CPU),x86_64)
+dnl # ...
+dnl # endif
+dnl #
+dnl # if TARGET_CPU_POWERPC
+dnl # ...
+dnl # else
+dnl # ...
+dnl # endif
dnl #
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_ARCH], [
- AC_MSG_CHECKING(for target asm dir)
- TARGET_ARCH=`echo ${target_cpu} | sed -e s/i.86/i386/`
-
- case $TARGET_ARCH in
- i386|x86_64)
- TARGET_ASM_DIR=asm-${TARGET_ARCH}
+ case $target_cpu in
+ i?86)
+ TARGET_CPU=i386
+ ;;
+ x86_64)
+ TARGET_CPU=x86_64
;;
- *)
- TARGET_ASM_DIR=asm-generic
+ powerpc*)
+ TARGET_CPU=powerpc
+ ;;
+ aarch64*)
+ TARGET_CPU=aarch64
+ ;;
+ sparc64)
+ TARGET_CPU=sparc64
;;
esac
- AC_SUBST([TARGET_ASM_DIR])
- AM_CONDITIONAL([TARGET_ASM_X86_64], test $TARGET_ASM_DIR = asm-x86_64)
- AM_CONDITIONAL([TARGET_ASM_I386], test $TARGET_ASM_DIR = asm-i386)
- AM_CONDITIONAL([TARGET_ASM_GENERIC], test $TARGET_ASM_DIR = asm-generic)
- AC_MSG_RESULT([$TARGET_ASM_DIR])
+ AC_SUBST(TARGET_CPU)
+
+ AM_CONDITIONAL([TARGET_CPU_I386], test $TARGET_CPU = i386)
+ AM_CONDITIONAL([TARGET_CPU_X86_64], test $TARGET_CPU = x86_64)
+ AM_CONDITIONAL([TARGET_CPU_POWERPC], test $TARGET_CPU = powerpc)
+ AM_CONDITIONAL([TARGET_CPU_AARCH64], test $TARGET_CPU = aarch64)
+ AM_CONDITIONAL([TARGET_CPU_SPARC64], test $TARGET_CPU = sparc64)
])
diff --git a/lib/libicp/Makefile.am b/lib/libicp/Makefile.am
index 8b6c41771..02dfce22f 100644
--- a/lib/libicp/Makefile.am
+++ b/lib/libicp/Makefile.am
@@ -9,7 +9,7 @@ AM_CFLAGS += $(FRAME_LARGER_THAN)
noinst_LTLIBRARIES = libicp.la
-if TARGET_ASM_X86_64
+if TARGET_CPU_X86_64
ASM_SOURCES_C = asm-x86_64/aes/aeskey.c
ASM_SOURCES_AS = \
asm-x86_64/aes/aes_amd64.S \
@@ -18,22 +18,11 @@ ASM_SOURCES_AS = \
asm-x86_64/sha1/sha1-x86_64.S \
asm-x86_64/sha2/sha256_impl.S \
asm-x86_64/sha2/sha512_impl.S
-endif
-
-if TARGET_ASM_I386
-ASM_SOURCES_C =
-ASM_SOURCES_AS =
-endif
-
-if TARGET_ASM_GENERIC
+else
ASM_SOURCES_C =
ASM_SOURCES_AS =
endif
-USER_C =
-
-USER_ASM =
-
KERNEL_C = \
spi/kcf_spi.c \
api/kcf_ctxops.c \
@@ -78,8 +67,6 @@ KERNEL_C = \
KERNEL_ASM = $(ASM_SOURCES_AS)
nodist_libicp_la_SOURCES = \
- $(USER_C) \
- $(USER_ASM) \
$(KERNEL_C) \
$(KERNEL_ASM)
diff --git a/lib/libspl/Makefile.am b/lib/libspl/Makefile.am
index 313760175..3101b5fc5 100644
--- a/lib/libspl/Makefile.am
+++ b/lib/libspl/Makefile.am
@@ -1,10 +1,20 @@
include $(top_srcdir)/config/Rules.am
+if TARGET_CPU_I386
+TARGET_CPU_DIR = asm-i386
+else
+if TARGET_CPU_X86_64
+TARGET_CPU_DIR = asm-x86_64
+else
+TARGET_CPU_DIR = asm-generic
+endif
+endif
+
VPATH = \
$(top_srcdir)/lib/libspl \
- $(top_srcdir)/lib/libspl/$(TARGET_ASM_DIR)
+ $(top_srcdir)/lib/libspl/$(TARGET_CPU_DIR)
-SUBDIRS = include $(TARGET_ASM_DIR)
+SUBDIRS = include $(TARGET_CPU_DIR)
DIST_SUBDIRS = include asm-generic asm-i386 asm-x86_64
AM_CFLAGS += $(LIBTIRPC_CFLAGS)
diff --git a/lib/libspl/asm-generic/.gitignore b/lib/libspl/asm-generic/.gitignore
new file mode 100644
index 000000000..2792cf7b4
--- /dev/null
+++ b/lib/libspl/asm-generic/.gitignore
@@ -0,0 +1 @@
+/atomic.S
diff --git a/module/icp/Makefile.in b/module/icp/Makefile.in
index 18e8dc313..9e1f2906d 100644
--- a/module/icp/Makefile.in
+++ b/module/icp/Makefile.in
@@ -3,26 +3,6 @@ obj = @abs_builddir@
MODULE := icp
-TARGET_ASM_DIR = @TARGET_ASM_DIR@
-
-ifeq ($(TARGET_ASM_DIR), asm-x86_64)
-ASM_SOURCES := asm-x86_64/aes/aeskey.o
-ASM_SOURCES += asm-x86_64/aes/aes_amd64.o
-ASM_SOURCES += asm-x86_64/aes/aes_aesni.o
-ASM_SOURCES += asm-x86_64/modes/gcm_pclmulqdq.o
-ASM_SOURCES += asm-x86_64/sha1/sha1-x86_64.o
-ASM_SOURCES += asm-x86_64/sha2/sha256_impl.o
-ASM_SOURCES += asm-x86_64/sha2/sha512_impl.o
-endif
-
-ifeq ($(TARGET_ASM_DIR), asm-i386)
-ASM_SOURCES :=
-endif
-
-ifeq ($(TARGET_ASM_DIR), asm-generic)
-ASM_SOURCES :=
-endif
-
obj-$(CONFIG_ZFS) := $(MODULE).o
asflags-y := -I$(src)/include
@@ -66,7 +46,14 @@ $(MODULE)-objs += algs/sha1/sha1.o
$(MODULE)-objs += algs/skein/skein.o
$(MODULE)-objs += algs/skein/skein_block.o
$(MODULE)-objs += algs/skein/skein_iv.o
-$(MODULE)-objs += $(ASM_SOURCES)
+
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aeskey.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aes_amd64.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/aes/aes_aesni.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/modes/gcm_pclmulqdq.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha1/sha1-x86_64.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha2/sha256_impl.o
+$(MODULE)-$(CONFIG_X86_64) += asm-x86_64/sha2/sha512_impl.o
$(MODULE)-$(CONFIG_X86) += algs/modes/gcm_pclmulqdq.o
$(MODULE)-$(CONFIG_X86) += algs/aes/aes_impl_aesni.o
diff --git a/module/os/linux/zfs/Makefile.in b/module/os/linux/zfs/Makefile.in
index 60d92182f..3c4a4cbb1 100644
--- a/module/os/linux/zfs/Makefile.in
+++ b/module/os/linux/zfs/Makefile.in
@@ -3,9 +3,7 @@
#
# Suppress unused-value warnings in sparc64 architecture headers
-ifeq ($(target_cpu),sparc64)
-ccflags-y += -Wno-unused-value
-endif
+ccflags-$(CONFIG_SPARC64) += -Wno-unused-value
ccflags-y += -I@abs_top_srcdir@/module/os/linux/zfs
diff --git a/module/zcommon/Makefile.in b/module/zcommon/Makefile.in
index 0ac0d43ee..b2e34f2e9 100644
--- a/module/zcommon/Makefile.in
+++ b/module/zcommon/Makefile.in
@@ -9,9 +9,7 @@ obj-$(CONFIG_ZFS) := $(MODULE).o
ccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
# Suppress unused-value warnings in sparc64 architecture headers
-ifeq ($(target_cpu),sparc64)
-ccflags-y += -Wno-unused-value
-endif
+ccflags-$(CONFIG_SPARC64) += -Wno-unused-value
$(MODULE)-objs += zfeature_common.o
$(MODULE)-objs += zfs_comutil.o
diff --git a/module/zfs/Makefile.in b/module/zfs/Makefile.in
index a98ba4fac..ef35ea5dd 100644
--- a/module/zfs/Makefile.in
+++ b/module/zfs/Makefile.in
@@ -8,14 +8,12 @@ obj-$(CONFIG_ZFS) := $(MODULE).o
ccflags-y := $(ZFS_MODULE_CFLAGS) $(ZFS_MODULE_CPPFLAGS)
-# Suppress unused-value warnings in sparc64 architecture headers
-ifeq ($(target_cpu),sparc64)
-ccflags-y += -Wno-unused-value
-endif
-
# Suppress unused but set variable warnings often due to ASSERTs
ccflags-y += $(NO_UNUSED_BUT_SET_VARIABLE)
+# Suppress unused-value warnings in sparc64 architecture headers
+ccflags-$(CONFIG_SPARC64) += -Wno-unused-value
+
$(MODULE)-objs += aggsum.o
$(MODULE)-objs += arc.o
$(MODULE)-objs += blkptr.o