aboutsummaryrefslogtreecommitdiffstats
path: root/config/always-compiler-options.m4
diff options
context:
space:
mode:
authorRichard Elling <[email protected]>2019-04-14 11:04:54 -0700
committerBrian Behlendorf <[email protected]>2019-04-14 11:04:54 -0700
commitd5d2ef2b268096f96d7fdf0743976d2a64cf51a2 (patch)
treee9bc7c28479f4c5a3f83328e12e1b84e52f21254 /config/always-compiler-options.m4
parent7dcd31883299b3ee3801dd701f7a986a0af9b2f9 (diff)
compile with -fno-omit-frame-pointer
By default, depending on the version, gcc can reuse the frame pointer register. This is a micro-optimization that might help on some very old x86 processors. However, it also makes dynamic tracing less useful because the stacks cannot be easily observed. This rule change instructs gcc to use the -fno-omit-frame-pointer option when compiling. Reviewed-by: Olaf Faaland <[email protected]> Reviewed by: Brian Behlendorf <[email protected]> Signed-off-by: Richard Elling <[email protected]> Closes #8617
Diffstat (limited to 'config/always-compiler-options.m4')
-rw-r--r--config/always-compiler-options.m421
1 files changed, 21 insertions, 0 deletions
diff --git a/config/always-compiler-options.m4 b/config/always-compiler-options.m4
index fcbbf5e76..e187f6ff8 100644
--- a/config/always-compiler-options.m4
+++ b/config/always-compiler-options.m4
@@ -139,3 +139,24 @@ AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_UNUSED_BUT_SET_VARIABLE], [
CFLAGS="$saved_flags"
AC_SUBST([NO_UNUSED_BUT_SET_VARIABLE])
])
+
+dnl #
+dnl # Check if gcc supports -fno-omit-frame-pointer option.
+dnl #
+AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_CC_NO_OMIT_FRAME_POINTER], [
+ AC_MSG_CHECKING([whether $CC supports -fno-omit-frame-pointer])
+
+ saved_flags="$CFLAGS"
+ CFLAGS="$CFLAGS -fno-omit-frame-pointer"
+
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], [
+ NO_OMIT_FRAME_POINTER=-fno-omit-frame-pointer
+ AC_MSG_RESULT([yes])
+ ], [
+ NO_OMIT_FRAME_POINTER=
+ AC_MSG_RESULT([no])
+ ])
+
+ CFLAGS="$saved_flags"
+ AC_SUBST([NO_OMIT_FRAME_POINTER])
+])