From 6f1eda0629c06c80487ddc6e476c8613bdfd2ddc Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Tue, 29 Jun 2010 16:26:58 -0700 Subject: [PATCH] Add configure check for -Wframe-larger-than= It turns out the gcc option -Wframe-larger-than= which I recently added to the build system is not supported in older versions of gcc. Since this is just a flag to ensure I keep stack usage under control I've added a configure check to detect if gcc supports it. If it's available we use it in the proper places, if it's not we don't. --- cmd/ztest/Makefile.am | 2 +- config/user-frame-larger-than.m4 | 22 ++++++++++++++++++++++ config/user.m4 | 1 + lib/libzpool/Makefile.am | 2 +- 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 config/user-frame-larger-than.m4 diff --git a/cmd/ztest/Makefile.am b/cmd/ztest/Makefile.am index 0573566e9e..0aa6c2e468 100644 --- a/cmd/ztest/Makefile.am +++ b/cmd/ztest/Makefile.am @@ -1,6 +1,6 @@ include $(top_srcdir)/config/Rules.am -AM_CFLAGS += -Wframe-larger-than=1024 +AM_CFLAGS += $(FRAME_LARGER_THAN) DEFAULT_INCLUDES += \ -I${top_srcdir}/lib/libspl/include \ diff --git a/config/user-frame-larger-than.m4 b/config/user-frame-larger-than.m4 new file mode 100644 index 0000000000..3384f50e4a --- /dev/null +++ b/config/user-frame-larger-than.m4 @@ -0,0 +1,22 @@ +dnl # +dnl # Check if gcc supports -Wframe-larger-than= option. +dnl # +AC_DEFUN([ZFS_AC_CONFIG_USER_FRAME_LARGER_THAN], [ + AC_MSG_CHECKING([for -Wframe-larger-than= support]) + + saved_flags="$CFLAGS" + CFLAGS="$CFLAGS -Wframe-larger-than=1024" + + AC_RUN_IFELSE(AC_LANG_PROGRAM( [], []), + [ + FRAME_LARGER_THAN=-Wframe-larger-than=1024 + AC_MSG_RESULT([yes]) + ], + [ + FRAME_LARGER_THAN= + AC_MSG_RESULT([no]) + ]) + + CFLAGS="$saved_flags" + AC_SUBST([FRAME_LARGER_THAN]) +]) diff --git a/config/user.m4 b/config/user.m4 index be59e7b4fb..2f9825ce0d 100644 --- a/config/user.m4 +++ b/config/user.m4 @@ -8,4 +8,5 @@ AC_DEFUN([ZFS_AC_CONFIG_USER], [ ZFS_AC_CONFIG_USER_ZLIB ZFS_AC_CONFIG_USER_LIBUUID ZFS_AC_CONFIG_USER_LIBBLKID + ZFS_AC_CONFIG_USER_FRAME_LARGER_THAN ]) diff --git a/lib/libzpool/Makefile.am b/lib/libzpool/Makefile.am index 7857820518..5e9d97b05d 100644 --- a/lib/libzpool/Makefile.am +++ b/lib/libzpool/Makefile.am @@ -1,6 +1,6 @@ include $(top_srcdir)/config/Rules.am -AM_CFLAGS += -Wframe-larger-than=1024 +AM_CFLAGS += $(FRAME_LARGER_THAN) SUBDIRS = include DEFAULT_INCLUDES += \