changeset 2962:86bc30befad5

PR3629: Install symlinks to tapsets in SystemTap directory 2018-09-23 Andrew John Hughes <gnu_andrew@member.fsf.org> PR3629: Install symlinks to tapsets in SystemTap directory * INSTALL: Updated and synced with IcedTea 3.x. * Makefile.am: (install-exec-local): Add symlinks to tapsets in system tapset directory. * NEWS: Updated. * acinclude.m4: (IT_SET_ARCH_SETTINGS): Set SYSTEMTAP_ARCH_DIR appropriately for each architecture. Move aarch64/arm64 before arm* as in IcedTea 3.x. (IT_WITH_TAPSET_DIR): Add option --with-tapset-dir to allow SystemTap tapset directory to be specified (defaults to ${datadir}/systemtap/tapset) * configure.ac: Invoke IT_WITH_TAPSET_DIR.
author Andrew John Hughes <gnu_andrew@member.fsf.org>
date Wed, 05 Dec 2018 07:16:39 +0000
parents c1b0859ec2eb
children b0e507383a9c
files ChangeLog INSTALL Makefile.am NEWS acinclude.m4 configure.ac
diffstat 6 files changed, 95 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Dec 05 02:54:49 2018 +0000
+++ b/ChangeLog	Wed Dec 05 07:16:39 2018 +0000
@@ -1,3 +1,21 @@
+2018-09-23  Andrew John Hughes  <gnu_andrew@member.fsf.org>
+
+	PR3629: Install symlinks to tapsets in SystemTap directory
+	* INSTALL: Updated and synced with IcedTea 3.x.
+	* Makefile.am:
+	(install-exec-local):
+	Add symlinks to tapsets in system tapset directory.
+	* NEWS: Updated.
+	* acinclude.m4:
+	(IT_SET_ARCH_SETTINGS): Set SYSTEMTAP_ARCH_DIR
+	appropriately for each architecture. Move aarch64/arm64
+	before arm* as in IcedTea 3.x.
+	(IT_WITH_TAPSET_DIR): Add option --with-tapset-dir
+	to allow SystemTap tapset directory to be
+	specified (defaults to ${datadir}/systemtap/tapset)
+	* configure.ac:
+	Invoke IT_WITH_TAPSET_DIR.
+
 2017-01-25  Andrew John Hughes  <gnu_andrew@member.fsf.org>
 
 	PR3659: Support RHEL multilib installations which
--- a/INSTALL	Wed Dec 05 02:54:49 2018 +0000
+++ b/INSTALL	Wed Dec 05 07:16:39 2018 +0000
@@ -29,7 +29,7 @@
 libjpeg-devel >= 6b (for --enable-system-jpeg)
 zlib-devel (for --enable-system-zlib)
 lcms2-devel (for --enable-system-lcms)
-fontconfig (for --enable-system-fontconfig)
+fontconfig (for --enable-system-fontconfig & --enable-improved-font-rendering)
 libc6-dev & libattr-devel/libattr1-dev (for --enable-compile-against-syscalls)
 libpcsclite (for --enable-system-pcsc)
 lksctp-tools (for --enable-system-sctp)
@@ -218,9 +218,10 @@
   tarball to be used instead of the standard versions.
 * --with-hg-revision: Specify a hg revision to use (as opposed to tip) with the --enable-hg option.
 * --with-tzdata-dir: Specify the location of Java timezone data, defaulting to /usr/share/javazi.
+* --with-tapset-dir: Specify the location of system SystemTap tapsets, defaulting to ${datarootdir}/systemtap/tapset.
 * --with-llvm-config: Specify the location of the llvm-config binary.
 * --with-version-suffix: Appends the given text to the JDK version output.
-* --with-hotspot-build: The HotSpot to use, defaulting to 'original' i.e. hs14 as bundled with OpenJDK.
+* --with-hotspot-build: The HotSpot to use, as listed in hotspot.map.in.
 * --with-pax: The command used to PaX-mark built binaries.
 * --enable-Werror: Turn gcc & javac warnings into errors.
 * --disable-jar-compression: Don't compress the OpenJDK JAR files.
@@ -285,7 +286,7 @@
 SystemTap
 =========
 
-IcedTea7 includes work to allow the existing DTrace probes included in
+IcedTea includes work to allow the existing DTrace probes included in
 OpenJDK to be used with SystemTap.  This requires version 0.9.5 or later (0.9.9
 or later if you want Java method tracing).  The tapset needs to know
 the final install location of the JDK, so the --prefix option
@@ -293,8 +294,8 @@
 in-tree location of openjdk.build/j2sdk-image and requires
 manual changes to tapset/hotspot.stp to work from elsewhere. For
 example, if you plan to install the resulting build in
-/usr/lib/jvm/java-1.6.0-openjdk, then you should specify
---prefix=/usr/lib/jvm/java-1.6.0-openjdk.
+/usr/lib/jvm/java-1.7.0-openjdk, then you should specify
+--prefix=/usr/lib/jvm/java-1.7.0-openjdk.
 
 The NSS PKCS11 Security Provider and Elliptic Curve Cryptography
 ================================================================
@@ -319,7 +320,7 @@
 CACAO
 =====
 
-IcedTea7 can use CACAO as the virtual machine, as opposed to HotSpot.
+IcedTea can use CACAO as the virtual machine, as opposed to HotSpot.
 One advantage of this is that CACAO has a JIT implementation for
 more platforms than HotSpot, including ppc, arm and mips.
 When --enable-cacao is specified, CACAO will be downloaded and built,
@@ -332,7 +333,7 @@
 JamVM
 =====
 
-IcedTea6 can use JamVM as the virtual machine, as opposed to HotSpot.
+IcedTea can use JamVM as the virtual machine, as opposed to HotSpot.
 When --enable-jamvm is specified, JamVM will be downloaded and built,
 followed by the JDK portion of OpenJDK resulting in a JamVM+OpenJDK
 image in openjdk.build/j2sdk-image.  The --with-jamvm-src-zip option
@@ -341,19 +342,19 @@
 Zero & Shark
 ============
 
-IcedTea7 includes a zero assembler port of HotSpot, which avoids
+IcedTea includes a zero assembler port of HotSpot, which avoids
 architecture-specific code as much as possible, allowing an
 interpreter to be built and run on most platforms (albeit very
-slowly).  As HotSpot only includes JITs for x86, x86_64, AArch64,
-ppc64, ppc64le and SPARC, the zero assembler port is automatically
-enabled on all other architectures.  On HotSpot architectures, it may
+slowly).  As HotSpot only includes JITs for aarch64, ppc64, ppc64le,
+x86, x86_64 and SPARC, the zero assembler port is automatically enabled
+on all other architectures.  On HotSpot-supported architectures, it may
 be built using --enable-zero.
 
 To overcome the performance issues inherent in zero, a LLVM-based JIT
 called Shark has been developed.  This performs Just-In-Time compilation
 on any architecture supported by LLVM.  To enable it, pass the option
---enable-shark to configure.  Please note that Shark is still in
-development and builds are still likely to fail at present.
+--enable-shark to configure.  Please note that work on Shark is now
+abandoned and builds may fail.
 
 On ARM32, there is also a native JIT port built on top of Zero, which
 is built on this platform by default.
--- a/Makefile.am	Wed Dec 05 02:54:49 2018 +0000
+++ b/Makefile.am	Wed Dec 05 07:16:39 2018 +0000
@@ -3261,9 +3261,18 @@
 	for files in $(BUILD_SDK_DIR)/jre/lib/ext/*.jar; do \
 	  $(call install_file,$${files},$(DESTDIR)${prefix}/jre/lib/ext,$(INSTALL_DATA));\
 	done
+if ENABLE_SYSTEMTAP
+if WITH_TAPSET_DIR
+	stapdest="$(DESTDIR)$(TAPSET_DIR)/$(SYSTEMTAP_ARCH_DIR)" ; \
 	for files in $(BUILD_SDK_DIR)/tapset/*.stp; do \
 	  $(call install_file,$${files},$(DESTDIR)${prefix}/tapset,$(INSTALL_DATA));\
+	  ${mkinstalldirs} $${stapdest} ; \
+	  tapname=$$(basename $${files}); \
+	  destname=$${tapname/./-@JAVA_VER@.} ; \
+	  ln -s ${prefix}/tapset/${tapname} $${stapdest}/$${destname} ; \
 	done
+endif
+endif
 	$(abs_top_builddir)/pax-mark-vm $(DESTDIR)${prefix} false
 
 install-data-local:
--- a/NEWS	Wed Dec 05 02:54:49 2018 +0000
+++ b/NEWS	Wed Dec 05 07:16:39 2018 +0000
@@ -2033,6 +2033,8 @@
 
 New in release 2.5.2 (2014-08-29):
 
+* New features
+  - PR3629: Install symlinks to tapsets in SystemTap directory
 * Backports
   - S8049480: Current versions of Java can't verify jars signed and timestamped with Java 9
   - S8051012, LP1360392: Regression in verifier for <init> method call from inside of a branch
--- a/acinclude.m4	Wed Dec 05 02:54:49 2018 +0000
+++ b/acinclude.m4	Wed Dec 05 07:16:39 2018 +0000
@@ -6,6 +6,7 @@
       INSTALL_ARCH_DIR=amd64
       JRE_ARCH_DIR=amd64
       RPM_ARCH=x86_64
+      SYSTEMTAP_ARCH_DIR=x86_64
       ARCHFLAG="-m64"
       ;;
     i?86)
@@ -13,6 +14,7 @@
       INSTALL_ARCH_DIR=i386
       JRE_ARCH_DIR=i386
       RPM_ARCH=i686
+      SYSTEMTAP_ARCH_DIR=i386
       ARCH_PREFIX=${LINUX32}
       ARCHFLAG="-m32"
       ;;
@@ -20,36 +22,42 @@
       BUILD_ARCH_DIR=alpha
       INSTALL_ARCH_DIR=alpha
       JRE_ARCH_DIR=alpha
-      ;;
-    arm*)
-      BUILD_ARCH_DIR=arm
-      INSTALL_ARCH_DIR=arm
-      JRE_ARCH_DIR=arm
-      RPM_ARCH=armv7hl
-      ARCHFLAG="-D_LITTLE_ENDIAN"
+      SYSTEMTAP_ARCH_DIR=alpha
       ;;
     arm64|aarch64)
       BUILD_ARCH_DIR=aarch64
       INSTALL_ARCH_DIR=aarch64
       JRE_ARCH_DIR=aarch64
       RPM_ARCH=aarch64
+      SYSTEMTAP_ARCH_DIR=arm64
+      ARCHFLAG="-D_LITTLE_ENDIAN"
+      ;;
+    arm*)
+      BUILD_ARCH_DIR=arm
+      INSTALL_ARCH_DIR=arm
+      JRE_ARCH_DIR=arm
+      RPM_ARCH=armv7hl
+      SYSTEMTAP_ARCH_DIR=arm
       ARCHFLAG="-D_LITTLE_ENDIAN"
       ;;
     mips)
       BUILD_ARCH_DIR=mips
       INSTALL_ARCH_DIR=mips
       JRE_ARCH_DIR=mips
+      SYSTEMTAP_ARCH_DIR=mips
        ;;
     mipsel)
       BUILD_ARCH_DIR=mipsel
       INSTALL_ARCH_DIR=mipsel
       JRE_ARCH_DIR=mipsel
+      SYSTEMTAP_ARCH_DIR=mips
        ;;
     powerpc)
       BUILD_ARCH_DIR=ppc
       INSTALL_ARCH_DIR=ppc
       JRE_ARCH_DIR=ppc
       RPM_ARCH=ppc
+      SYSTEMTAP_ARCH_DIR=powerpc
       ARCH_PREFIX=${LINUX32}
       ARCHFLAG="-m32"
       ;;
@@ -58,6 +66,7 @@
       INSTALL_ARCH_DIR=ppc64
       JRE_ARCH_DIR=ppc64
       RPM_ARCH=ppc64
+      SYSTEMTAP_ARCH_DIR=powerpc
       ARCHFLAG="-m64"
        ;;
     powerpc64le)
@@ -65,12 +74,14 @@
       INSTALL_ARCH_DIR=ppc64le
       JRE_ARCH_DIR=ppc64le
       RPM_ARCH=ppc64le
+      SYSTEMTAP_ARCH_DIR=powerpc
       ARCHFLAG="-m64"
        ;;
     sparc)
       BUILD_ARCH_DIR=sparc
       INSTALL_ARCH_DIR=sparc
       JRE_ARCH_DIR=sparc
+      SYSTEMTAP_ARCH_DIR=sparc
       ARCH_PREFIX=${LINUX32}
       ARCHFLAG="-m32"
        ;;
@@ -78,6 +89,7 @@
       BUILD_ARCH_DIR=sparcv9
       INSTALL_ARCH_DIR=sparcv9
       JRE_ARCH_DIR=sparc64
+      SYSTEMTAP_ARCH_DIR=sparc
       ARCHFLAG="-m64"
        ;;
     s390)
@@ -85,6 +97,7 @@
       INSTALL_ARCH_DIR=s390
       JRE_ARCH_DIR=s390
       RPM_ARCH=s390
+      SYSTEMTAP_ARCH_DIR=s390
       ARCH_PREFIX=${LINUX32}
       ARCHFLAG="-m31"
        ;;
@@ -93,22 +106,26 @@
       INSTALL_ARCH_DIR=s390x
       JRE_ARCH_DIR=s390x
       RPM_ARCH=s390x
+      SYSTEMTAP_ARCH_DIR=s390
       ARCHFLAG="-m64"
       ;;
     sh*)
       BUILD_ARCH_DIR=sh
       INSTALL_ARCH_DIR=sh
       JRE_ARCH_DIR=sh
+      SYSTEMTAP_ARCH_DIR=sh
       ;;
     *)
       BUILD_ARCH_DIR=`uname -m`
       INSTALL_ARCH_DIR=$BUILD_ARCH_DIR
       JRE_ARCH_DIR=$INSTALL_ARCH_DIR
+      SYSTEMTAP_ARCH_DIR=$INSTALL_ARCH_DIR
       ;;
   esac
   AC_SUBST(BUILD_ARCH_DIR)
   AC_SUBST(INSTALL_ARCH_DIR)
   AC_SUBST(JRE_ARCH_DIR)
+  AC_SUBST(SYSTEMTAP_ARCH_DIR)
   AC_SUBST(ARCH_PREFIX)
   AC_SUBST(ARCHFLAG)
 ])
@@ -2886,6 +2903,33 @@
   fi
 ])
 
+AC_DEFUN([IT_WITH_TAPSET_DIR],
+[
+  TAPSET_DEFAULT="${datadir}/systemtap/tapset"
+  AC_MSG_CHECKING([which SystemTap tapset directory to use])
+  AC_ARG_WITH([tapset-dir],
+	      [AS_HELP_STRING(--with-tapset-dir,set the SystemTap tapset directory [[default=DATAROOTDIR/systemtap/tapset]])],
+  [
+    if test "x${withval}" = x || test "x${withval}" = xyes; then
+      TAPSET_DIR="${TAPSET_DEFAULT}"
+    else
+      TAPSET_DIR="${withval}"
+    fi
+  ],
+  [
+    TAPSET_DIR="${TAPSET_DEFAULT}"
+  ])
+  if test "x${TAPSET_DIR}" = "xno"; then
+    TAPSET_DIR=none
+    TAPSET_DIR_SET=no
+  else
+    TAPSET_DIR_SET=yes
+  fi
+  AC_MSG_RESULT([${TAPSET_DIR}])
+  AC_SUBST([TAPSET_DIR])
+  AM_CONDITIONAL(WITH_TAPSET_DIR, test "x${TAPSET_DIR_SET}" = "xyes")
+])
+
 AC_DEFUN_ONCE([IT_HAS_NATIVE_HOTSPOT_PORT],
 [
   AC_MSG_CHECKING([if a native HotSpot port is available for this architecture])
--- a/configure.ac	Wed Dec 05 02:54:49 2018 +0000
+++ b/configure.ac	Wed Dec 05 07:16:39 2018 +0000
@@ -199,6 +199,7 @@
 IT_WITH_VERSION_SUFFIX
 IT_ENABLE_HG
 IT_WITH_TZDATA_DIR
+IT_WITH_TAPSET_DIR
 IT_WITH_CACERTS_FILE
 
 IT_WITH_PAX