about summary refs log tree commit diff
path: root/sysdeps/powerpc/powerpc64/configure.in
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps/powerpc/powerpc64/configure.in')
-rw-r--r--sysdeps/powerpc/powerpc64/configure.in19
1 files changed, 19 insertions, 0 deletions
diff --git a/sysdeps/powerpc/powerpc64/configure.in b/sysdeps/powerpc/powerpc64/configure.in
index 67aac663d8..9c236adbc4 100644
--- a/sysdeps/powerpc/powerpc64/configure.in
+++ b/sysdeps/powerpc/powerpc64/configure.in
@@ -40,3 +40,22 @@ rm -f conftest.c conftest.s
 if test x$libc_cv_overlapping_opd = xyes; then
   AC_DEFINE(USE_PPC64_OVERLAPPING_OPD)
 fi
+
+# Some compilers have been configured to emit PT_GNU_STACK on PowerPC64 even
+# though this isn't necessary.  If it is present then which check-execstack is
+# tested should be changed.
+AC_CACHE_CHECK(if PT_GNU_STACK ELF program header is emitted by the compiler on PowerPC64, libc_cv_ppc64_pt_gnu_stack, [dnl
+echo 'int main (void) { return 0; }' > conftest.c
+libc_cv_ppc64_pt_gnu_stack=no
+  if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -o conftest
+		     conftest.c 1>&AS_MESSAGE_LOG_FD])
+  then
+    if readelf -l conftest | fgrep GNU_STACK > /dev/null; then
+      libc_cv_ppc64_pt_gnu_stack=yes
+    fi
+  fi
+  rm -f conftest*])
+#AC_SUBST(libc_cv_ppc64_pt_gnu_stack)
+if test $libc_cv_ppc64_pt_gnu_stack = yes; then
+  AC_DEFINE(HAVE_PPC64_PT_GNU_STACK)
+fi