changeset 2944:2bb62ac6d345

G422525: Apply pax markings before using a freshly built JVM. 2012-06-24 Ralph Sennhauser <sera@gentoo.org> * Makefile.am: (ICEDTEA_PATCHES): Replace HAS_PAX with WITH_PAX. Add RMIC patch. (icedtea): Invoke pax-mark-vm on built image. (icedtea-ecj): Likewise. * acinclude.m4: (IT_WITH_PAX): New macro to specify pax utility. * configure.ac: Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX. * patches/pax-mark-rmic-java.patch: New patch to PaX mark VM before running just-built rmic.
author Andrew John Hughes <gnu.andrew@redhat.com>
date Fri, 25 Jan 2013 19:48:41 +0000
parents 5c657c998832
children 6af17f5442ff
files ChangeLog Makefile.am acinclude.m4 configure.ac patches/pax-mark-rmic-java.patch
diffstat 5 files changed, 81 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Fri Jan 25 19:30:32 2013 +0000
+++ b/ChangeLog	Fri Jan 25 19:48:41 2013 +0000
@@ -1,3 +1,18 @@
+2012-06-24  Ralph Sennhauser  <sera@gentoo.org>
+
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Replace HAS_PAX with
+	WITH_PAX.  Add RMIC patch.
+	(icedtea): Invoke pax-mark-vm on built image.
+	(icedtea-ecj): Likewise.
+	* acinclude.m4:
+	(IT_WITH_PAX): New macro to specify pax utility.
+	* configure.ac:
+	Call IT_WITH_PAX instead of IT_CHECK_FOR_PAX.
+	* patches/pax-mark-rmic-java.patch:
+	New patch to PaX mark VM before running just-built
+	rmic.
+
 2013-01-25  Andrew John Hughes  <gnu.andrew@redhat.com>
 
 	* configure.ac: Set to 1.12.0.
--- a/Makefile.am	Fri Jan 25 19:30:32 2013 +0000
+++ b/Makefile.am	Fri Jan 25 19:48:41 2013 +0000
@@ -511,8 +511,10 @@
 NSS_PATCHES = patches/nss-not-enabled-config.patch
 endif
 
-if HAS_PAX
-ICEDTEA_PATCHES += patches/no-test_gamma.patch
+if WITH_PAX
+ICEDTEA_PATCHES += \
+	patches/no-test_gamma.patch \
+	patches/pax-mark-rmic-java.patch
 endif
 
 ICEDTEA_PATCHES += $(DISTRIBUTION_PATCHES)
@@ -547,7 +549,7 @@
 endif
 endif
 
-if !HAS_PAX
+if !WITH_PAX
 ICEDTEA_ECJ_PATCHES += patches/ecj/no-test_gamma.patch
 endif
 
@@ -1505,6 +1507,7 @@
 	  $(ICEDTEA_ENV) \
 	  -C openjdk \
 	  $(ICEDTEA_BUILD_TARGET)
+	$(abs_top_builddir)/pax-mark-vm $(BUILD_OUTPUT_DIR)/j2sdk-image
 	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR)
 	mkdir -p $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR)
 	mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext
@@ -1861,6 +1864,7 @@
 	  $(ICEDTEA_ENV_ECJ) \
 	  -C openjdk-ecj/ \
 	  $(ICEDTEA_BUILD_TARGET)
+	$(abs_top_builddir)/pax-mark-vm $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image
 	@echo "ecj-poured IcedTea is served:" \
 	  $(ECJ_BUILD_OUTPUT_DIR)
 	mkdir -p stamps
--- a/acinclude.m4	Fri Jan 25 19:30:32 2013 +0000
+++ b/acinclude.m4	Fri Jan 25 19:48:41 2013 +0000
@@ -1994,3 +1994,49 @@
 AM_CONDITIONAL([LACKS_$1], test x"${it_cv_$1}" = "xyes")
 AC_PROVIDE([$0])dnl
 ])
+
+AC_DEFUN_ONCE([IT_WITH_PAX],
+[
+  AC_MSG_CHECKING([for pax utility to use])
+  AC_ARG_WITH([pax],
+              [AS_HELP_STRING(--with-pax=COMMAND,the command used for pax marking)],
+  [
+    PAX_COMMAND=${withval}
+    if test "x${PAX_COMMAND}" = "xno"; then
+      PAX_COMMAND="not specified"
+    fi
+  ],
+  [ 
+    PAX_COMMAND="not specified"
+  ])
+  case "x${PAX_COMMAND}" in
+    xchpax)
+      case "${host_cpu}" in
+        i?86)
+          PAX_COMMAND_ARGS="-msp"
+          ;;
+        *)
+          PAX_COMMAND_ARGS="-m"
+          ;;
+      esac
+      ;;
+    xpaxctl)
+      case "${host_cpu}" in
+        i?86)
+          PAX_COMMAND_ARGS="-msp"
+          ;;
+        *)
+          PAX_COMMAND_ARGS="-m"
+          ;;
+      esac
+      ;;
+    *)
+      PAX_COMMAND="not specified"
+      PAX_COMMAND_ARGS="not specified"
+      ;;
+  esac
+  AM_CONDITIONAL(WITH_PAX, test "x${PAX_COMMAND}" != "xnot specified")
+  AC_MSG_RESULT(${PAX_COMMAND})
+  AC_SUBST(PAX_COMMAND)
+  AC_SUBST(PAX_COMMAND_ARGS)
+])
--- a/configure.ac	Fri Jan 25 19:30:32 2013 +0000
+++ b/configure.ac	Fri Jan 25 19:48:41 2013 +0000
@@ -50,7 +50,6 @@
 IT_CHECK_NUMBER_OF_PARALLEL_JOBS
 IT_CP_SUPPORTS_REFLINK
 IT_CAN_HARDLINK_TO_SOURCE_TREE
-IT_CHECK_FOR_PAX
 IT_LOCATE_NSS
 IT_DISABLE_TESTS
 IT_DISABLE_HOTSPOT_TESTS
@@ -244,6 +243,9 @@
 IT_GETDTDTYPE_CHECK
 IT_JAVAH
 
+IT_WITH_PAX
+AC_CONFIG_FILES([pax-mark-vm], [chmod +x pax-mark-vm])
+
 dnl pkgconfig cannot be used to find these headers and libraries.
 AC_CHECK_HEADERS([cups/cups.h cups/ppd.h],[]
 	,[AC_MSG_ERROR("CUPS headers were not found -
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/pax-mark-rmic-java.patch	Fri Jan 25 19:48:41 2013 +0000
@@ -0,0 +1,10 @@
+--- openjdk/jdk/make/com/sun/jmx/Makefile
++++ openjdk/jdk/make/com/sun/jmx/Makefile
+@@ -119,6 +119,7 @@
+ 
+ $(CLASSDESTDIR)/%_Stub.class: $(CLASSDESTDIR)/%.class
+ 	$(prep-target)
++	"$(TOPDIR)"/../../pax-mark-vm "$(OUTPUTDIR)"
+ 	$(RMIC) -classpath "$(CLASSDESTDIR)"    \
+                 -d $(CLASSDESTDIR)              \
+                 -v1.2                           \