From 6e02b39d6c5596b8abcbf0f87cd155bfc0c8e8c9 Mon Sep 17 00:00:00 2001 From: Jiri Vanek Date: Nov 03 2016 08:08:46 +0000 Subject: Sync with rawhide --- diff --git a/8167200.hotspotAarch64.patch b/8167200.hotspotAarch64.patch new file mode 100644 index 0000000..754df89 --- /dev/null +++ b/8167200.hotspotAarch64.patch @@ -0,0 +1,37 @@ + +# HG changeset patch +# User aph +# Date 1475745921 0 +# Node ID 60a8cbf7030e4de40050472705776509fa9cb960 +# Parent d9960bd9fb6d3a5ac0450a47d70f3a3afd7f515d +8167200: AArch64: Broken stack pointer adjustment in interpreter +Summary: Always adjust SP unconditionally +Reviewed-by: dlong, kbarrett + +diff -r d9960bd9fb6d -r 60a8cbf7030e src/cpu/aarch64/vm/templateTable_aarch64.cpp +--- openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Tue May 24 08:47:37 2016 -0700 ++++ openjdk/hotspot/src/cpu/aarch64/vm/templateTable_aarch64.cpp Thu Oct 06 09:25:21 2016 +0000 +@@ -3717,19 +3717,15 @@ + + // allocate one if there's no free slot + { +- Label entry, loop, no_adjust; ++ Label entry, loop; + // 1. compute new pointers // rsp: old expression stack top + __ ldr(c_rarg1, monitor_block_bot); // c_rarg1: old expression stack bottom +- __ sub(esp, esp, entry_size); // move expression stack top ++ __ sub(esp, esp, entry_size); // move expression stack top + __ sub(c_rarg1, c_rarg1, entry_size); // move expression stack bottom + __ mov(c_rarg3, esp); // set start value for copy loop + __ str(c_rarg1, monitor_block_bot); // set new monitor block bottom + +- __ cmp(sp, c_rarg3); // Check if we need to move sp +- __ br(Assembler::LO, no_adjust); // to allow more stack space +- // for our new esp +- __ sub(sp, sp, 2 * wordSize); +- __ bind(no_adjust); ++ __ sub(sp, sp, entry_size); // make room for the monitor + + __ b(entry); + // 2. move expression stack contents + diff --git a/PR3183.patch b/PR3183.patch new file mode 100644 index 0000000..5a619b4 --- /dev/null +++ b/PR3183.patch @@ -0,0 +1,158 @@ + +# HG changeset patch +# User andrew +# Date 1478057514 0 +# Node ID 1c4d5cb2096ae55106111da200b0bcad304f650c +# Parent 3d53f19b48384e5252f4ec8891f7a3a82d77af2a +PR3183: Support Fedora/RHEL system crypto policy + +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/classes/java/security/Security.java +--- openjdk/jdk/src/share/classes/java/security/Security.java Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/classes/java/security/Security.java Wed Nov 02 03:31:54 2016 +0000 +@@ -43,6 +43,9 @@ + * implementation-specific location, which is typically the properties file + * {@code lib/security/java.security} in the Java installation directory. + * ++ *

Additional default values of security properties are read from a ++ * system-specific location, if available.

++ * + * @author Benjamin Renaud + */ + +@@ -52,6 +55,10 @@ + private static final Debug sdebug = + Debug.getInstance("properties"); + ++ /* System property file*/ ++ private static final String SYSTEM_PROPERTIES = ++ "/etc/crypto-policies/back-ends/java.config"; ++ + /* The java.security properties */ + private static Properties props; + +@@ -93,6 +100,7 @@ + if (sdebug != null) { + sdebug.println("reading security properties file: " + + propFile); ++ sdebug.println(props.toString()); + } + } catch (IOException e) { + if (sdebug != null) { +@@ -114,6 +122,31 @@ + } + + if ("true".equalsIgnoreCase(props.getProperty ++ ("security.useSystemPropertiesFile"))) { ++ ++ // now load the system file, if it exists, so its values ++ // will win if they conflict with the earlier values ++ try (BufferedInputStream bis = ++ new BufferedInputStream(new FileInputStream(SYSTEM_PROPERTIES))) { ++ props.load(bis); ++ loadedProps = true; ++ ++ if (sdebug != null) { ++ sdebug.println("reading system security properties file " + ++ SYSTEM_PROPERTIES); ++ sdebug.println(props.toString()); ++ } ++ } catch (IOException e) { ++ if (sdebug != null) { ++ sdebug.println ++ ("unable to load security properties from " + ++ SYSTEM_PROPERTIES); ++ e.printStackTrace(); ++ } ++ } ++ } ++ ++ if ("true".equalsIgnoreCase(props.getProperty + ("security.overridePropertiesFile"))) { + + String extraPropFile = System.getProperty +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-aix +--- openjdk/jdk/src/share/lib/security/java.security-aix Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security-aix Wed Nov 02 03:31:54 2016 +0000 +@@ -276,6 +276,13 @@ + security.overridePropertiesFile=true + + # ++# Determines whether this properties file will be appended to ++# using the system properties file stored at ++# /etc/crypto-policies/back-ends/java.config ++# ++security.useSystemPropertiesFile=false ++ ++# + # Determines the default key and trust manager factory algorithms for + # the javax.net.ssl package. + # +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-linux +--- openjdk/jdk/src/share/lib/security/java.security-linux Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security-linux Wed Nov 02 03:31:54 2016 +0000 +@@ -276,6 +276,13 @@ + security.overridePropertiesFile=true + + # ++# Determines whether this properties file will be appended to ++# using the system properties file stored at ++# /etc/crypto-policies/back-ends/java.config ++# ++security.useSystemPropertiesFile=true ++ ++# + # Determines the default key and trust manager factory algorithms for + # the javax.net.ssl package. + # +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-macosx +--- openjdk/jdk/src/share/lib/security/java.security-macosx Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security-macosx Wed Nov 02 03:31:54 2016 +0000 +@@ -279,6 +279,13 @@ + security.overridePropertiesFile=true + + # ++# Determines whether this properties file will be appended to ++# using the system properties file stored at ++# /etc/crypto-policies/back-ends/java.config ++# ++security.useSystemPropertiesFile=false ++ ++# + # Determines the default key and trust manager factory algorithms for + # the javax.net.ssl package. + # +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-solaris +--- openjdk/jdk/src/share/lib/security/java.security-solaris Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security-solaris Wed Nov 02 03:31:54 2016 +0000 +@@ -278,6 +278,13 @@ + security.overridePropertiesFile=true + + # ++# Determines whether this properties file will be appended to ++# using the system properties file stored at ++# /etc/crypto-policies/back-ends/java.config ++# ++security.useSystemPropertiesFile=false ++ ++# + # Determines the default key and trust manager factory algorithms for + # the javax.net.ssl package. + # +diff -r 3d53f19b4838 -r 1c4d5cb2096a src/share/lib/security/java.security-windows +--- openjdk/jdk/src/share/lib/security/java.security-windows Wed Oct 26 03:51:39 2016 +0100 ++++ openjdk/jdk/src/share/lib/security/java.security-windows Wed Nov 02 03:31:54 2016 +0000 +@@ -279,6 +279,13 @@ + security.overridePropertiesFile=true + + # ++# Determines whether this properties file will be appended to ++# using the system properties file stored at ++# /etc/crypto-policies/back-ends/java.config ++# ++security.useSystemPropertiesFile=false ++ ++# + # Determines the default key and trust manager factory algorithms for + # the javax.net.ssl package. + # + diff --git a/dont-add-unnecessary-debug-links.patch b/dont-add-unnecessary-debug-links.patch new file mode 100644 index 0000000..9c29e6b --- /dev/null +++ b/dont-add-unnecessary-debug-links.patch @@ -0,0 +1,77 @@ +--- openjdk/make/common/NativeCompilation.gmk ++++ openjdk/make/common/NativeCompilation.gmk +@@ -437,29 +437,6 @@ + + ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X + ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows +- ifeq ($(OPENJDK_TARGET_OS), solaris) +- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. +- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from +- # empty section headers until a fixed $(OBJCOPY) is available. +- # An empty section header has sh_addr == 0 and sh_size == 0. +- # This problem has only been seen on Solaris X64, but we call this tool +- # on all Solaris builds just in case. +- # +- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. +- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) \ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) +- $(RM) $$@ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< +- else # not solaris +- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo : $$($1_TARGET) +- $(RM) $$@ +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< +- endif # Touch to not retrigger rule on rebuild +- $(TOUCH) $$@ + endif # !windows + endif # !macosx + +@@ -483,7 +460,6 @@ + $1 += $$($1_OUTPUT_DIR)/$$($1_LIBRARY).map \ + $$($1_OUTPUT_DIR)/$$($1_LIBRARY).pdb + else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files +- $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo + endif + endif + endif +@@ -522,28 +498,8 @@ + ifneq ($(OPENJDK_TARGET_OS), macosx) # OBJCOPY is not used on MacOS X + ifneq ($(OPENJDK_TARGET_OS), windows) # nor on Windows + ifeq ($(OPENJDK_TARGET_OS), solaris) +- # gobjcopy crashes on "empty" section headers with the SHF_ALLOC flag set. +- # Use $(FIX_EMPTY_SEC_HDR_FLAGS) to clear the SHF_ALLOC flag (if set) from +- # empty section headers until a fixed $(OBJCOPY) is available. +- # An empty section header has sh_addr == 0 and sh_size == 0. +- # This problem has only been seen on Solaris X64, but we call this tool +- # on all Solaris builds just in case. +- # +- # $(OBJCOPY) --add-gnu-debuglink=... corrupts SUNW_* sections. +- # Use $(ADD_GNU_DEBUGLINK) until a fixed $(OBJCOPY) is available. +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) \ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(ADD_GNU_DEBUGLINK) +- $(RM) $$@ +- $(FIX_EMPTY_SEC_HDR_FLAGS) $(LOG_INFO) $$< +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(ADD_GNU_DEBUGLINK) $(LOG_INFO) $$(@F) $$< + else # not solaris +- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET) +- $(RM) $$@ +- $(OBJCOPY) --only-keep-debug $$< $$@ +- $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$< + endif +- $(TOUCH) $$@ + endif # !windows + endif # !macosx + +@@ -567,7 +523,6 @@ + $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).map \ + $$($1_OUTPUT_DIR)/$$($1_PROGRAM).pdb + else ifneq ($(OPENJDK_TARGET_OS), macosx) # MacOS X does not use .debuginfo files +- $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo + endif + endif + endif diff --git a/hotspot-assembler-debuginfo.patch b/hotspot-assembler-debuginfo.patch new file mode 100644 index 0000000..61f493d --- /dev/null +++ b/hotspot-assembler-debuginfo.patch @@ -0,0 +1,27 @@ +Make the assembler generate whatever debuginfo it can +--- openjdk/hotspot/make/linux/makefiles/rules.make ++++ openjdk/hotspot/make/linux/makefiles/rules.make +@@ -34,7 +34,7 @@ + CC_COMPILE = $(CC) $(CXXFLAGS) $(CFLAGS) + CXX_COMPILE = $(CXX) $(CXXFLAGS) $(CFLAGS) + +-AS.S = $(AS) $(ASFLAGS) ++AS.S = $(AS) -g $(ASFLAGS) + + COMPILE.CC = $(CC_COMPILE) -c + GENASM.CC = $(CC_COMPILE) -S +@@ -161,12 +161,12 @@ + %.o: %.s + @echo Assembling $< + $(QUIETLY) $(REMOVE_TARGET) +- $(QUIETLY) $(AS.S) $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) ++ $(QUIETLY) $(AS.S) -g $(DEPFLAGS) -o $@ $< $(COMPILE_DONE) + + %.o: %.S + @echo Assembling $< + $(QUIETLY) $(REMOVE_TARGET) +- $(COMPILE.CC) -o $@ $< $(COMPILE_DONE) ++ $(COMPILE.CC) -g -o $@ $< $(COMPILE_DONE) + + %.s: %.cpp + @echo Generating assembly for $< diff --git a/hotspot-remove-debuglink.patch b/hotspot-remove-debuglink.patch new file mode 100644 index 0000000..3b3070d --- /dev/null +++ b/hotspot-remove-debuglink.patch @@ -0,0 +1,73 @@ +Remove unnecessary .gnu_debuglink sections from libjvm + +The .gnu_debuglink section indicates which file contains the debuginfo. This +is not needed if we not stripping the shared object. + +RPM's debuginfo extraction code will add the right file links automatically. As +it is, RPM copies over the .gnu_debuglink link to the debug info file. Without +this patch, the debug info file also ends up containing the .gnu_debuglink +section pointing to a missing (and not needed) file. + +diff --git a/make/linux/makefiles/jsig.make b/make/linux/makefiles/jsig.make +--- openjdk/hotspot/make/linux/makefiles/jsig.make ++++ openjdk/hotspot/make/linux/makefiles/jsig.make +@@ -57,14 +57,15 @@ + $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $< -ldl + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) ++ ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ +- ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) ++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ + $(QUIETLY) $(STRIP) -g $@ ++ endif + # implied else here is no stripping at all +- endif + endif + ifeq ($(ZIP_DEBUGINFO_FILES),1) + $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) +diff --git a/make/linux/makefiles/saproc.make b/make/linux/makefiles/saproc.make +--- openjdk/hotspot/make/linux/makefiles/saproc.make ++++ openjdk/hotspot/make/linux/makefiles/saproc.make +@@ -99,14 +99,15 @@ + -lthread_db + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) ++ ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ +- ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(STRIP) $@ + else + ifeq ($(STRIP_POLICY),min_strip) ++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ + $(QUIETLY) $(STRIP) -g $@ ++ endif + # implied else here is no stripping at all +- endif + endif + ifeq ($(ZIP_DEBUGINFO_FILES),1) + $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) +diff --git a/make/linux/makefiles/vm.make b/make/linux/makefiles/vm.make +--- openjdk/hotspot/make/linux/makefiles/vm.make ++++ openjdk/hotspot/make/linux/makefiles/vm.make +@@ -358,14 +358,15 @@ + + ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) +- $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ + ifeq ($(STRIP_POLICY),all_strip) + $(QUIETLY) $(STRIP) $@ ++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ + else + ifeq ($(STRIP_POLICY),min_strip) + $(QUIETLY) $(STRIP) -g $@ ++ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ ++ endif + # implied else here is no stripping at all +- endif + endif + ifeq ($(ZIP_DEBUGINFO_FILES),1) + $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index a74760b..87d7ba5 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -255,6 +255,7 @@ if [ "$1" -gt 1 ]; then "${sum}" = '321342219bb130d238ff144b9e5dbfc1' -o \\ "${sum}" = '134a37a84983b620f4d8d51a550c0c38' -o \\ "${sum}" = '5ea976e209d0d0b5b6ab148416123e02' -o \\ + "${sum}" = '059d61cfbb47e337b011ecda9350db9b' -o \\ "${sum}" = '5ab4c77cf14fbd7f7ee6f51a7a73d88c' ]; then if [ -f "${javasecurity}.rpmnew" ]; then mv -f "${javasecurity}.rpmnew" "${javasecurity}" @@ -795,7 +796,7 @@ Obsoletes: java-1.7.0-openjdk-accessibility%1 Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever} -Release: 1.%{buildver}%{?dist} +Release: 3.%{buildver}%{?dist} # java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons, # and this change was brought into RHEL-4. java-1.5.0-ibm packages # also included the epoch in their virtual provides. This created a @@ -940,6 +941,11 @@ Patch524: 8158260-pr2991-rh1341258.patch # Patches ineligible for 8u # 8043805: Allow using a system-installed libjpeg Patch201: system-libjpeg.patch +# Pathces 204-206 are serving for better check of debug symbols in native liraries +Patch204: hotspot-remove-debuglink.patch +Patch205: dont-add-unnecessary-debug-links.patch +Patch206: hotspot-assembler-debuginfo.patch +Patch207: PR3183.patch # Local fixes # PR1834, RH1022017: Reduce curves reported by SSL to those in NSS @@ -957,10 +963,12 @@ BuildRequires: alsa-lib-devel BuildRequires: binutils BuildRequires: cups-devel BuildRequires: desktop-file-utils +BuildRequires: elfutils BuildRequires: fontconfig BuildRequires: freetype-devel BuildRequires: giflib-devel BuildRequires: gcc-c++ +BuildRequires: gdb BuildRequires: gtk2-devel BuildRequires: lcms2-devel BuildRequires: libjpeg-devel @@ -1235,6 +1243,10 @@ sh %{SOURCE12} %patch201 %patch202 %patch203 +%patch204 +%patch205 +%patch206 +%patch207 %patch1 %patch3 @@ -1459,18 +1471,61 @@ $JAVA_HOME/bin/javac -d . %{SOURCE14} $JAVA_HOME/bin/java $(echo $(basename %{SOURCE14})|sed "s|\.java||") # Check debug symbols are present and can identify code -SERVER_JVM="$JAVA_HOME/jre/lib/%{archinstall}/server/libjvm.so" -if [ -f "$SERVER_JVM" ] ; then - nm -aCl "$SERVER_JVM" | grep javaCalls.cpp -fi -CLIENT_JVM="$JAVA_HOME/jre/lib/%{archinstall}/client/libjvm.so" -if [ -f "$CLIENT_JVM" ] ; then - nm -aCl "$CLIENT_JVM" | grep javaCalls.cpp -fi -ZERO_JVM="$JAVA_HOME/jre/lib/%{archinstall}/zero/libjvm.so" -if [ -f "$ZERO_JVM" ] ; then - nm -aCl "$ZERO_JVM" | grep javaCalls.cpp -fi +find "$JAVA_HOME" -iname '*.so' -print0 | while read -d $'\0' lib +do + if [ -f "$lib" ] ; then + echo "Testing $lib for debug symbols" + # All these tests rely on RPM failing the build if the exit code of any set + # of piped commands is non-zero. + + # Test for .debug_* sections in the shared object. This is the main test. + # Stripped objects will not contain these. + eu-readelf -S "$lib" | grep "] .debug_" + test $(eu-readelf -S "$lib" | egrep "\]\ .debug_(info|abbrev)" | wc --lines) == 2 + + # Test FILE symbols. These will most likely be removed by anyting that + # manipulates symbol tables because it's generally useless. So a nice test + # that nothing has messed with symbols. + old_IFS="$IFS" + IFS=$'\n' + for line in $(eu-readelf -s "$lib" | grep "00000000 0 FILE LOCAL DEFAULT") + do + # We expect to see .cpp files, except for architectures like aarch64 and + # s390 where we expect .o and .oS files + echo "$line" | egrep "ABS ((.*/)?[-_a-zA-Z0-9]+\.(c|cc|cpp|cxx|o|oS))?$" + done + IFS="$old_IFS" + + # If this is the JVM, look for javaCalls.(cpp|o) in FILEs, for extra sanity checking. + if [ "`basename $lib`" = "libjvm.so" ]; then + eu-readelf -s "$lib" | \ + egrep "00000000 0 FILE LOCAL DEFAULT ABS javaCalls.(cpp|o)$" + fi + + # Test that there are no .gnu_debuglink sections pointing to another + # debuginfo file. There shouldn't be any debuginfo files, so the link makes + # no sense either. + eu-readelf -S "$lib" | grep 'gnu' + if eu-readelf -S "$lib" | grep '] .gnu_debuglink' | grep PROGBITS; then + echo "bad .gnu_debuglink section." + eu-readelf -x .gnu_debuglink "$lib" + false + fi + fi +done + +# Make sure gdb can do a backtrace based on line numbers on libjvm.so +gdb -q "$JAVA_HOME/bin/java" < - 1:1.8.0.111-2.b16 +- added dont-add-unnecessary-debug-links.patch +- added hotspot-assembler-debuginfo.patch +- returned accidentally removed hotspot-remove-debuglink.patch +- eu-readelfs on libraries improved, added gdb call + * Wed Oct 19 2016 jvanek - 1:1.8.0.111-1.b16 - updated to aarch64-jdk8u111-b16 (from aarch64-port/jdk8u) - updated to aarch64-shenandoah-jdk8u111-b16 (from aarch64-port/jdk8u-shenandoah) of hotspot