Subject: 24.1.50; paxctl: file temacs does not have a PT_PAX_FLAGS program header

From: Ulrich Mueller <[email-masked]>
Date: Wed, 18 Jul 2012 18:22:42 +0200

This is a fallout from bug #11398:

If the paxctl utility is present, but the system's toolchain doesn't
support the PT_PAX_FLAGS program header, then "paxctl -r temacs" will
fail:

   test "no" = "yes" || \
     test "X/sbin/paxctl" = X || /sbin/paxctl -r temacs
   file temacs does not have a PT_PAX_FLAGS program header, try conversion
   make[1]: *** [temacs] Error 1
   make[1]: Leaving directory
   `/var/build/portage/app-editors/emacs-24.1/work/emacs-24.1/src'
   make: *** [src] Error 2

A patch is included below. I've tested it with binutils-2.22, both
with and without PT_PAX_FLAGS support.

See also downstream bug: <https://bugs.gentoo.org/426394>

--- emacs-orig/ChangeLog
+++ emacs/ChangeLog
@@ -1,3 +1,8 @@
+2012-07-18  Ulrich Müller  <[email-masked]>
+
+	* configure.ac: Disable paxctl if binaries don't have a
+	PT_PAX_FLAGS program header.
+
 2012-07-17  Dmitry Antipov  <[email-masked]>
 
 	Fix toolkit configuration report.
--- emacs-orig/configure.ac
+++ emacs/configure.ac
@@ -736,6 +736,12 @@
 if test $opsys = gnu-linux; then
   AC_PATH_PROG(PAXCTL, paxctl,,
     [$PATH$PATH_SEPARATOR/sbin$PATH_SEPARATOR/usr/sbin])
+  if test "X$PAXCTL" != X; then
+    AC_MSG_CHECKING([whether binaries have a PT_PAX_FLAGS header])
+    AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
+      [if $PAXCTL -v conftest$EXEEXT >/dev/null 2>&1; then AC_MSG_RESULT(yes)
+      else AC_MSG_RESULT(no); PAXCTL=""; fi])
+  fi
 fi
 
 ## Need makeinfo >= 4.7 (?) to build the manuals.