dnl Checks whether the stack can be marked nonexecutable by passing an option dnl to the C-compiler when acting on .s files. Appends that option to ASFLAGS. dnl This macro is adapted from one found in GLIBC-2.3.5. AC_DEFUN([CL_AS_NOEXECSTACK],[ AC_REQUIRE([AC_PROG_CC]) AC_CACHE_CHECK([whether --noexecstack is desirable for .s files], cl_cv_as_noexecstack, [dnl cat > conftest.c </dev/null]) \ && grep -q .note.GNU-stack conftest.s \ && AC_TRY_COMMAND([${CC} $CFLAGS $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 "$cl_cv_as_noexecstack" = yes; then ASMFLAGS="$ASMFLAGS -Wa,--noexecstack" fi AC_SUBST(ASMFLAGS) ]) dnl Checks whether the compiler supports __attribute__((flatten)). AC_DEFUN([CL_ATTRIBUTE_FLATTEN],[ AC_REQUIRE([AC_PROG_CXX]) AC_CACHE_CHECK([whether the compiler supports __attribute__((flatten))], cl_cv_have_attr_flatten, [dnl cat > conftest.cc </dev/null 2>conftest.stderr) then if grep -i "warning" conftest.stderr > /dev/null; then cl_cv_have_attr_flatten=no else cl_cv_have_attr_flatten=yes fi else cl_cv_have_attr_flatten=no fi rm -f conftest* ]) if test $cl_cv_have_attr_flatten = yes; then AC_DEFINE(CL_HAVE_ATTRIBUTE_FLATTEN) fi ])