mirror of
git://git.gnupg.org/gnupg.git
synced 2024-11-10 21:38:50 +01:00
56 lines
2.1 KiB
Plaintext
56 lines
2.1 KiB
Plaintext
|
# noexecstack.m4
|
||
|
dnl Copyright (C) 1995-2006 Free Software Foundation, Inc.
|
||
|
dnl
|
||
|
dnl This library is free software; you can redistribute it and/or
|
||
|
dnl modify it under the terms of the GNU Lesser General Public
|
||
|
dnl License as published by the Free Software Foundation; either
|
||
|
dnl version 2.1 of the License, or (at your option) any later version.
|
||
|
dnl
|
||
|
dnl This library is distributed in the hope that it will be useful,
|
||
|
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
|
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||
|
dnl Lesser General Public License for more details.
|
||
|
dnl
|
||
|
dnl You should have received a copy of the GNU Lesser General Public
|
||
|
dnl License along with this library; if not, write to the Free Software
|
||
|
dnl Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||
|
|
||
|
dnl Checks whether the stack can be marked nonexecutable by passing an
|
||
|
dnl option to the C-compiler when acting on .s files. Returns that
|
||
|
dnl option in NOEXECSTACK_FLAGS.
|
||
|
dnl This macro is adapted from one found in GLIBC-2.3.5.
|
||
|
AC_DEFUN([CL_AS_NOEXECSTACK],[
|
||
|
AC_REQUIRE([AC_PROG_CC])
|
||
|
AC_REQUIRE([AM_PROG_AS])
|
||
|
|
||
|
AC_MSG_CHECKING([whether non excutable stack support is requested])
|
||
|
AC_ARG_ENABLE(noexecstack,
|
||
|
AC_HELP_STRING([--enable-noexecstack],
|
||
|
[enable non executable stack support (gcc only)]),
|
||
|
noexecstack_support=$enableval, noexecstack_support=no)
|
||
|
AC_MSG_RESULT($noexecstack_support)
|
||
|
|
||
|
AC_CACHE_CHECK([whether assembler supports --noexecstack option],
|
||
|
cl_cv_as_noexecstack, [dnl
|
||
|
cat > conftest.c <<EOF
|
||
|
void foo() {}
|
||
|
EOF
|
||
|
if AC_TRY_COMMAND([${CC} $CFLAGS $CPPFLAGS
|
||
|
-S -o conftest.s conftest.c >/dev/null]) \
|
||
|
&& grep -q .note.GNU-stack conftest.s \
|
||
|
&& AC_TRY_COMMAND([${CCAS} $CCASFLAGS $CPPFLAGS -Wa,--noexecstack
|
||
|
-c -o conftest.o conftest.s >/dev/null])
|
||
|
then
|
||
|
cl_cv_as_noexecstack=yes
|
||
|
else
|
||
|
cl_cv_as_noexecstack=no
|
||
|
fi
|
||
|
rm -f conftest*])
|
||
|
if test "$noexecstack_support" = yes -a "$cl_cv_as_noexecstack" = yes; then
|
||
|
NOEXECSTACK_FLAGS="-Wa,--noexecstack"
|
||
|
else
|
||
|
NOEXECSTACK_FLAGS=
|
||
|
fi
|
||
|
AC_SUBST(NOEXECSTACK_FLAGS)
|
||
|
])
|