summaryrefslogtreecommitdiff
path: root/config/ac-macros
diff options
context:
space:
mode:
authoracurtis@xiphis.org <>2006-05-31 00:07:58 -0700
committeracurtis@xiphis.org <>2006-05-31 00:07:58 -0700
commit23e612ae11d8b88e8616871d967d1442c44e188b (patch)
treea62e725116c91213516881c9fbd73b92e0db774f /config/ac-macros
parentb1fe1d3742f60e97b01ba19f143771a2c22805ec (diff)
downloadmariadb-git-23e612ae11d8b88e8616871d967d1442c44e188b.tar.gz
Bug#12096
"Add line for non-executable stack in .s files" Fix so that configure will use "--noexecstack" for assembler if gcc supports option and compiled C doesn't need executable stack.
Diffstat (limited to 'config/ac-macros')
-rw-r--r--config/ac-macros/compiler_flag.m422
1 files changed, 22 insertions, 0 deletions
diff --git a/config/ac-macros/compiler_flag.m4 b/config/ac-macros/compiler_flag.m4
index a236f61a198..9dda6da72fa 100644
--- a/config/ac-macros/compiler_flag.m4
+++ b/config/ac-macros/compiler_flag.m4
@@ -38,3 +38,25 @@ AC_DEFUN([AC_SYS_OS_COMPILER_FLAG],
fi
])
+AC_DEFUN([AC_CHECK_NOEXECSTACK],
+[
+ AC_CACHE_CHECK(whether --noexecstack is desirable for .S files,
+ mysql_cv_as_noexecstack, [dnl
+ cat > conftest.c <<EOF
+void foo (void) { }
+EOF
+ if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS
+ -S -o conftest.s conftest.c 1>&AS_MESSAGE_LOG_FD]) \
+ && grep -q .note.GNU-stack conftest.s \
+ && AC_TRY_COMMAND([${CC-cc} $CCASFLAGS $CPPFLAGS -Wa,--noexecstack
+ -c -o conftest.o conftest.s 1>&AS_MESSAGE_LOG_FD])
+ then
+ mysql_cv_as_noexecstack=yes
+ else
+ mysql_cv_as_noexecstack=no
+ fi
+ rm -f conftest*])
+ if test $mysql_cv_as_noexecstack = yes; then
+ CCASFLAGS="$CCASFLAGS -Wa,--noexecstack"
+ fi
+])