summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/Rules.am6
-rw-r--r--config/always-no-aggressive-loop-optimizations.m420
-rw-r--r--config/kernel.m41
-rw-r--r--config/zfs-build.m41
4 files changed, 26 insertions, 2 deletions
diff --git a/config/Rules.am b/config/Rules.am
index e3fa5b5a4..24f94264b 100644
--- a/config/Rules.am
+++ b/config/Rules.am
@@ -1,8 +1,10 @@
DEFAULT_INCLUDES = -include ${top_builddir}/zfs_config.h
AM_LIBTOOLFLAGS = --silent
-AM_CFLAGS = -Wall -Wstrict-prototypes
-AM_CFLAGS += -fno-strict-aliasing ${NO_UNUSED_BUT_SET_VARIABLE} ${DEBUG_CFLAGS}
+AM_CFLAGS = ${DEBUG_CFLAGS} -Wall -Wstrict-prototypes
+AM_CFLAGS += ${NO_UNUSED_BUT_SET_VARIABLE}
+AM_CFLAGS += ${NO_AGGRESSIVE_LOOP_OPTIMIZATIONS}
+AM_CFLAGS += -fno-strict-aliasing
AM_CPPFLAGS = -D_GNU_SOURCE -D__EXTENSIONS__ -D_REENTRANT
AM_CPPFLAGS += -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64
AM_CPPFLAGS += -D_LARGEFILE64_SOURCE -DTEXT_DOMAIN=\"zfs-linux-user\"
diff --git a/config/always-no-aggressive-loop-optimizations.m4 b/config/always-no-aggressive-loop-optimizations.m4
new file mode 100644
index 000000000..8f2115ae6
--- /dev/null
+++ b/config/always-no-aggressive-loop-optimizations.m4
@@ -0,0 +1,20 @@
+dnl #
+dnl # Check if gcc supports -fno-aggressive-loop-optimizations
+dnl #
+AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_NO_AGGRESSIVE_LOOP_OPTIMIZATIONS], [
+ AC_MSG_CHECKING([for -fno-aggressive-loop-optimizations support])
+
+ saved_flags="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-aggressive-loop-optimizations"
+
+ AC_RUN_IFELSE([AC_LANG_PROGRAM([], [])], [
+ NO_AGGRESSIVE_LOOP_OPTIMIZATIONS=-fno-aggressive-loop-optimizations
+ AC_MSG_RESULT([yes])
+ ], [
+ NO_AGGRESSIVE_LOOP_OPTIMIZATIONS=
+ AC_MSG_RESULT([no])
+ ])
+
+ CFLAGS="$saved_flags"
+ AC_SUBST([NO_AGGRESSIVE_LOOP_OPTIMIZATIONS])
+])
diff --git a/config/kernel.m4 b/config/kernel.m4
index cbf0ca3d6..62a9b4299 100644
--- a/config/kernel.m4
+++ b/config/kernel.m4
@@ -104,6 +104,7 @@ AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [
dnl # -Wall -fno-strict-aliasing -Wstrict-prototypes and other
dnl # compiler options are added by the kernel build system.
KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_UNUSED_BUT_SET_VARIABLE"
+ KERNELCPPFLAGS="$KERNELCPPFLAGS $NO_AGGRESSIVE_LOOP_OPTIMIZATIONS"
KERNELCPPFLAGS="$KERNELCPPFLAGS -DHAVE_SPL -D_KERNEL"
KERNELCPPFLAGS="$KERNELCPPFLAGS -DTEXT_DOMAIN=\\\"zfs-linux-kernel\\\""
diff --git a/config/zfs-build.m4 b/config/zfs-build.m4
index 005185b03..477b91678 100644
--- a/config/zfs-build.m4
+++ b/config/zfs-build.m4
@@ -62,6 +62,7 @@ AC_DEFUN([ZFS_AC_DEBUG_DMU_TX], [
AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
ZFS_AC_CONFIG_ALWAYS_NO_UNUSED_BUT_SET_VARIABLE
+ ZFS_AC_CONFIG_ALWAYS_NO_AGGRESSIVE_LOOP_OPTIMIZATIONS
])
AC_DEFUN([ZFS_AC_CONFIG], [