diff options
Diffstat (limited to 'config')
-rw-r--r-- | config/Rules.am | 6 | ||||
-rw-r--r-- | config/always-no-aggressive-loop-optimizations.m4 | 20 | ||||
-rw-r--r-- | config/kernel.m4 | 1 | ||||
-rw-r--r-- | config/zfs-build.m4 | 1 |
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], [ |