The package rpms/java-1.8.0-openjdk.git has added or updated architecture specific content
in its
spec file (ExclusiveArch/ExcludeArch or %ifarch/%ifnarch) in commit(s):
https://src.fedoraproject.org/cgit/rpms/java-1.8.0-openjdk.git/commit/?id....
Change:
+%ifnarch %{jit_arches}
Thanks.
Full change:
============
commit 35adfaf452cc4345f1e79da1e5c5b24b41f7a9e9
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 25 11:03:30 2018 +0200
PAtches renamed according to f28+
diff --git a/8031668-pr2842-01.patch b/8031668-pr2842-01.patch
new file mode 100644
index 0000000..faaa309
--- /dev/null
+++ b/8031668-pr2842-01.patch
@@ -0,0 +1,22 @@
+# HG changeset patch
+# User mduigou
+# Date 1389723922 28800
+# Tue Jan 14 10:25:22 2014 -0800
+# Node ID 842cc183c9f6d29270ff002238248978c08f0a66
+# Parent f0635543beb309c4da1bb88c906a76ee4b75e16d
+8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
+Reviewed-by: erikj, ihse
+
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -230,8 +230,8 @@
+ $1="$PROPER_COMPILER_$1"
+ else
+ AC_MSG_RESULT([no, keeping $1])
+- $1="$TEST_COMPILER"
+ fi
++
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
+ ])
+
diff --git a/8036003-add-with-native-debug-symbols-configure-flag.patch
b/8036003-add-with-native-debug-symbols-configure-flag.patch
new file mode 100644
index 0000000..b7b8a05
--- /dev/null
+++ b/8036003-add-with-native-debug-symbols-configure-flag.patch
@@ -0,0 +1,249 @@
+
+# HG changeset patch
+# User sgehwolf
+# Date 1531824954 -7200
+# Node ID 19e8754f5415cdda79904b9f21a4b8981505cb78
+# Parent 1380ce862bbd0b65c619bfcea454d612b240e332
+8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
+Reviewed-by: erikj
+
+diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/jdk-options.m4
+--- openjdk/common/autoconf/jdk-options.m4 Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/common/autoconf/jdk-options.m4 Tue Jul 17 12:55:54 2018 +0200
+@@ -1,5 +1,5 @@
+ #
+-# Copyright (c) 2011, 2013, Oracle and/or its affiliates. All rights reserved.
++# Copyright (c) 2011, 2018, Oracle and/or its affiliates. All rights reserved.
+ # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ #
+ # This code is free software; you can redistribute it and/or modify it
+@@ -606,11 +606,88 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
+
+ if test "x${enable_zip_debug_info}" = "xno"; then
+ ZIP_DEBUGINFO_FILES=false
++ elif test "x${enable_zip_debug_info}" = "xyes"; then
++ ZIP_DEBUGINFO_FILES=true
++ fi
++
++ #
++ # NATIVE_DEBUG_SYMBOLS
++ # This must be done after the toolchain is setup, since we're looking at objcopy.
++ # In addition, this must be done after ENABLE_DEBUG_SYMBOLS and ZIP_DEBUGINFO_FILES
++ # checking in order to preserve backwards compatibility post JDK-8207234.
++ #
++ AC_MSG_CHECKING([what type of native debug symbols to use (this will override previous
settings)])
++ AC_ARG_WITH([native-debug-symbols],
++ [AS_HELP_STRING([--with-native-debug-symbols],
++ [set the native debug symbol configuration (none, internal, external, zipped)
@<:@varying@:>@])],
++ [
++ if test "x$OPENJDK_TARGET_OS" = xaix; then
++ if test "x$with_native_debug_symbols" = xexternal || test
"x$with_native_debug_symbols" = xzipped; then
++ AC_MSG_ERROR([AIX only supports the parameters 'none' and
'internal' for --with-native-debug-symbols])
++ fi
++ fi
++ ],
++ [
++ # Default to unset for backwards compatibility
++ with_native_debug_symbols=""
++ ])
++ NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols
++ if test "x$NATIVE_DEBUG_SYMBOLS" = x; then
++ AC_MSG_RESULT([not specified])
+ else
++ AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS])
++ fi
++ # Default is empty
++ DEBUG_BINARIES=
++ # Default is min_strip. Possible values are min_strip, all_strip, no_strip
++ STRIP_POLICY=min_strip
++
++ if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then
++
++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
++ if test "x$OBJCOPY" = x; then
++ # enabling of enable-debug-symbols and can't find objcopy
++ # this is an error
++ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
++ fi
++ fi
++
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=min_strip
+ ZIP_DEBUGINFO_FILES=true
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
++ ENABLE_DEBUG_SYMBOLS=false
++ STRIP_POLICY=min_strip
++ ZIP_DEBUGINFO_FILES=false
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=no_strip
++ ZIP_DEBUGINFO_FILES=false
++ POST_STRIP_CMD=
++ DEBUG_BINARIES=true
++ elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
++
++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test
"x$OPENJDK_TARGET_OS" = xlinux; then
++ if test "x$OBJCOPY" = x; then
++ # enabling of enable-debug-symbols and can't find objcopy
++ # this is an error
++ AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
++ fi
++ fi
++
++ ENABLE_DEBUG_SYMBOLS=true
++ STRIP_POLICY=min_strip
++ ZIP_DEBUGINFO_FILES=false
++ elif test "x$NATIVE_DEBUG_SYMBOLS" != x; then
++ AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
++ else
++ AC_MSG_NOTICE([--with-native-debug-symbols not specified. Using values from
--disable-debug-symbols and --disable-zip-debug-info])
+ fi
+
+ AC_SUBST(ENABLE_DEBUG_SYMBOLS)
++ AC_SUBST(STRIP_POLICY)
++ AC_SUBST(POST_STRIP_CMD)
++ AC_SUBST(DEBUG_BINARIES)
+ AC_SUBST(ZIP_DEBUGINFO_FILES)
+ AC_SUBST(CFLAGS_DEBUG_SYMBOLS)
+ AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS)
+diff -r 1380ce862bbd -r 19e8754f5415 common/autoconf/spec.gmk.in
+--- openjdk/common/autoconf/spec.gmk.in Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/common/autoconf/spec.gmk.in Tue Jul 17 12:55:54 2018 +0200
+@@ -416,6 +416,8 @@
+ CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
+ CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
+ ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
++STRIP_POLICY:=@STRIP_POLICY@
++DEBUG_BINARIES:=@DEBUG_BINARIES@
+
+ #
+ # Compress (or not) jars
+diff -r 1380ce862bbd -r 19e8754f5415 make/common/NativeCompilation.gmk
+--- openjdk/make/common/NativeCompilation.gmk Mon Jul 16 15:37:08 2018 +0100
++++ openjdk/make/common/NativeCompilation.gmk Tue Jul 17 12:55:54 2018 +0200
+@@ -260,6 +260,10 @@
+ $1_CC:=$(CC)
+ endif
+
++ ifeq ($$($1_STRIP_POLICY),)
++ $1_STRIP_POLICY:=$$(STRIP_POLICY)
++ endif
++
+ # Make sure the dirs exist.
+ $$(eval $$(call MakeDir,$$($1_OBJECT_DIR) $$($1_OUTPUT_DIR)))
+ $$(foreach d,$$($1_SRC), $$(if $$(wildcard $$d),,$$(error SRC specified to
SetupNativeCompilation $1 contains missing directory $$d)))
+@@ -455,28 +459,34 @@
+ 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) \
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ # 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) $$<
++ endif
+ else # not solaris
+- $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $$($1_OBJECT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo :
$$($1_TARGET)
+ $(RM) $$@
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
++ endif
+ endif # Touch to not retrigger rule on rebuild
++ ifneq ($$($1_STRIP_POLICY), no_strip)
+ $(TOUCH) $$@
++ endif
+ endif # !windows
+ endif # !macosx
+
+@@ -500,7 +510,9 @@
+ $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
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $1 += $$($1_OUTPUT_DIR)/$$(LIBRARY_PREFIX)$$($1_LIBRARY).debuginfo
++ endif
+ endif
+ endif
+ endif
+@@ -539,28 +551,34 @@
+ 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) \
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ # 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) $$<
++ endif
+ else # not solaris
+- $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $$($1_OBJECT_DIR)/$$($1_PROGRAM).debuginfo : $$($1_TARGET)
+ $(RM) $$@
+ $(OBJCOPY) --only-keep-debug $$< $$@
+ $(CD) $$(@D) && $(OBJCOPY) --add-gnu-debuglink=$$(@F) $$<
++ endif
+ endif
++ ifneq ($$($1_STRIP_POLICY), no_strip)
+ $(TOUCH) $$@
++ endif
+ endif # !windows
+ endif # !macosx
+
+@@ -584,7 +602,9 @@
+ $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
++ ifneq ($$($1_STRIP_POLICY), no_strip)
++ $1 += $$($1_OUTPUT_DIR)/$$($1_PROGRAM).debuginfo
++ endif
+ endif
+ endif
+ endif
+
diff --git a/8044235-include-all-srcs.patch b/8044235-include-all-srcs.patch
new file mode 100644
index 0000000..1beda6d
--- /dev/null
+++ b/8044235-include-all-srcs.patch
@@ -0,0 +1,109 @@
+# HG changeset patch
+# User omajid
+# Date 1401638044 14400
+# Sun Jun 01 11:54:04 2014 -0400
+# Node ID fd78f7e83f3f1ce7d363b681b97583138218afcb
+# Parent 8d0af21b5b9789f97b05edacc221a63f851d13b8
+8044235: src.zip should include all sources
+Reviewed-by: andrew, dholmes
+
+diff --git a/make/CreateJars.gmk b/make/CreateJars.gmk
+--- openjdk/jdk/make/CreateJars.gmk
++++ openjdk/jdk/make/CreateJars.gmk
+@@ -584,40 +584,53 @@
+
+
##########################################################################################
+
+-SRC_ZIP_INCLUDES = \
+- com/sun/corba \
+- com/sun/image/codec/jpeg \
+- com/sun/imageio \
+- com/sun/java_cup \
+- com/sun/javadoc \
+- com/sun/java/swing \
+- com/sun/jmx \
+- com/sun/naming \
+- com/sun/org/apache \
+- com/sun/security/auth \
+- com/sun/security/jgss \
+- com/sun/source \
+- java \
+- javax/accessibility \
+- javax/annotation \
+- javax/imageio \
+- javax/lang \
+- javax/management \
+- javax/naming \
+- javax/print \
+- javax/rmi \
+- javax/script \
+- javax/security \
+- javax/sound \
+- javax/sql \
+- javax/swing \
+- javax/tools \
+- javax/xml \
+- org/ietf \
+- org/omg \
+- org/w3c/dom \
+- org/xml/sax \
+- #
++ifdef OPENJDK
++ SRC_ZIP_INCLUDES = \
++ com \
++ java \
++ javax \
++ jdk \
++ org \
++ sun \
++ #
++ SRC_ZIP_EXCLUDES =
++else
++ SRC_ZIP_INCLUDES = \
++ com/sun/corba \
++ com/sun/image/codec/jpeg \
++ com/sun/imageio \
++ com/sun/java_cup \
++ com/sun/javadoc \
++ com/sun/java/swing \
++ com/sun/jmx \
++ com/sun/naming \
++ com/sun/org/apache \
++ com/sun/security/auth \
++ com/sun/security/jgss \
++ com/sun/source \
++ java \
++ javax/accessibility \
++ javax/annotation \
++ javax/imageio \
++ javax/lang \
++ javax/management \
++ javax/naming \
++ javax/print \
++ javax/rmi \
++ javax/script \
++ javax/security \
++ javax/sound \
++ javax/sql \
++ javax/swing \
++ javax/tools \
++ javax/xml \
++ org/ietf \
++ org/omg \
++ org/w3c/dom \
++ org/xml/sax \
++ #
++ SRC_ZIP_EXCLUDES = javax/swing/beaninfo
++endif
+
+ SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
+ SRC_ZIP_SRCS += $(JDK_OUTPUTDIR)/gensrc
+@@ -648,7 +661,7 @@
+ $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
+ SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
+ INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
+- EXCLUDES := javax/swing/beaninfo, \
++ EXCLUDES := $(SRC_ZIP_EXCLUDES), \
+ SUFFIXES := .java .c .h, \
+ ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
+ EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git a/8073139-rh1191652-hotspot-aarch64.patch
b/8073139-rh1191652-hotspot-aarch64.patch
new file mode 100644
index 0000000..a5afea0
--- /dev/null
+++ b/8073139-rh1191652-hotspot-aarch64.patch
@@ -0,0 +1,130 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1537885415 -7200
+# Tue Sep 25 16:23:35 2018 +0200
+# Node ID 5044428520866481f438bfd1375da75adbc89243
+# Parent a3df1579a8647b06559f41d345da7bea162b26e9
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
+
+diff --git a/make/defs.make b/make/defs.make
+--- openjdk/hotspot/make/defs.make
++++ openjdk/hotspot/make/defs.make
+@@ -285,7 +285,7 @@ ifneq ($(OSNAME),windows)
+
+ # Use uname output for SRCARCH, but deal with platform differences. If ARCH
+ # is not explicitly listed below, it is treated as x86.
+- SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 zero
aarch64,$(ARCH)))
++ SRCARCH ?= $(ARCH/$(filter sparc sparc64 ia64 amd64 x86_64 ppc ppc64 ppc64le zero
aarch64,$(ARCH)))
+ ARCH/ = x86
+ ARCH/sparc = sparc
+ ARCH/sparc64= sparc
+@@ -293,6 +293,7 @@ ifneq ($(OSNAME),windows)
+ ARCH/amd64 = x86
+ ARCH/x86_64 = x86
+ ARCH/ppc64 = ppc
++ ARCH/ppc64le= ppc
+ ARCH/ppc = ppc
+ ARCH/zero = zero
+ ARCH/aarch64 = aarch64
+@@ -316,7 +317,12 @@
+ endif
+ endif
+
+- # LIBARCH is 1:1 mapping from BUILDARCH
++ # LIBARCH is 1:1 mapping from BUILDARCH, except for ARCH=ppc64le
++ ifeq ($(ARCH),ppc64le)
++ LIBARCH ?= ppc64le
++ else
++ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
++ endif
+ LIBARCH ?= $(LIBARCH/$(BUILDARCH))
+ LIBARCH/i486 = i386
+ LIBARCH/amd64 = amd64
+diff --git a/src/os/linux/vm/os_linux.cpp b/src/os/linux/vm/os_linux.cpp
+--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp
++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
+@@ -1956,7 +1956,7 @@
+ {EM_SPARCV9, EM_SPARCV9, ELFCLASS64, ELFDATA2MSB, (char*)"Sparc v9
64"},
+ {EM_PPC, EM_PPC, ELFCLASS32, ELFDATA2MSB, (char*)"Power PC
32"},
+ #if defined(VM_LITTLE_ENDIAN)
+- {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC
64"},
++ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2LSB, (char*)"Power PC 64
LE"},
+ #else
+ {EM_PPC64, EM_PPC64, ELFCLASS64, ELFDATA2MSB, (char*)"Power PC
64"},
+ #endif
+diff --git a/src/share/tools/hsdis/Makefile b/src/share/tools/hsdis/Makefile
+--- openjdk/hotspot/src/share/tools/hsdis/Makefile
++++ openjdk/hotspot/src/share/tools/hsdis/Makefile
+@@ -97,6 +97,7 @@
+ CFLAGS/sparcv9 += -m64
+ CFLAGS/amd64 += -m64
+ CFLAGS/ppc64 += -m64
++CFLAGS/ppc64le += -m64 -DABI_ELFv2
+ else
+ ARCH=$(ARCH1:amd64=i386)
+ CFLAGS/i386 += -m32
+diff --git a/src/share/tools/hsdis/hsdis-demo.c b/src/share/tools/hsdis/hsdis-demo.c
+--- openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
++++ openjdk/hotspot/src/share/tools/hsdis/hsdis-demo.c
+@@ -88,7 +88,7 @@
+ printf("...And now for something completely different:\n");
+ void *start = (void*) &main;
+ void *end = (void*) &end_of_file;
+-#if defined(__ia64) || defined(__powerpc__)
++#if defined(__ia64) || (defined(__powerpc__) && !defined(ABI_ELFv2))
+ /* On IA64 and PPC function pointers are pointers to function descriptors */
+ start = *((void**)start);
+ end = *((void**)end);
+diff --git a/src/share/tools/hsdis/hsdis.c b/src/share/tools/hsdis/hsdis.c
+--- openjdk/hotspot/src/share/tools/hsdis/hsdis.c
++++ openjdk/hotspot/src/share/tools/hsdis/hsdis.c
+@@ -461,7 +461,7 @@ static const char* native_arch_name() {
+ #ifdef LIBARCH_sparcv9
+ res = "sparc:v9b";
+ #endif
+-#ifdef LIBARCH_ppc64
++#if defined(LIBARCH_ppc64) || defined(LIBARCH_ppc64le)
+ res = "powerpc:common64";
+ #endif
+ #else
+diff --git a/src/share/vm/runtime/vm_version.cpp b/src/share/vm/runtime/vm_version.cpp
+--- openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp
+@@ -187,11 +187,16 @@ const char* Abstract_VM_Version::jre_release_version() {
+ #ifndef CPU
+ #ifdef ZERO
+ #define CPU ZERO_LIBARCH
++#elif defined(PPC64)
++#if defined(VM_LITTLE_ENDIAN)
++#define CPU "ppc64le"
++#else
++#define CPU "ppc64"
++#endif
+ #else
+ #define CPU IA32_ONLY("x86") \
+ IA64_ONLY("ia64") \
+ AMD64_ONLY("amd64") \
+- PPC64_ONLY("ppc64") \
+ AARCH64_ONLY("aarch64") \
+ SPARC_ONLY("sparc")
+ #endif // ZERO
+diff --git a/test/test_env.sh b/test/test_env.sh
+--- openjdk/hotspot/test/test_env.sh
++++ openjdk/hotspot/test/test_env.sh
+@@ -185,6 +185,15 @@
+ if [ $? = 0 ]
+ then
+ VM_CPU="ppc"
++ if [ $VM_BITS = "64" ]
++ then
++ VM_CPU="ppc64"
++ grep "ppc64le" vm_version.out > ${NULL}
++ if [ $? = 0 ]
++ then
++ VM_CPU="ppc64le"
++ fi
++ fi
+ fi
+ grep "ia64" vm_version.out > ${NULL}
+ if [ $? = 0 ]
diff --git a/8073139-rh1191652-jdk.patch b/8073139-rh1191652-jdk.patch
new file mode 100644
index 0000000..7495c36
--- /dev/null
+++ b/8073139-rh1191652-jdk.patch
@@ -0,0 +1,98 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1537884792 -7200
+# Tue Sep 25 16:13:12 2018 +0200
+# Node ID fd140d7550992267e3f0f08a20b461b2ce9fa740
+# Parent 21056af0d1eabbd04d7a223c01a28320c7010bfe
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
+
+diff --git a/make/lib/SoundLibraries.gmk b/make/lib/SoundLibraries.gmk
+--- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
++++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
+@@ -140,6 +140,10 @@
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
+ endif
+
++ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
++ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
++ endif
++
+ ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+ LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
+ endif
+diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
+--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12 2016
+0000
++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016
+0000
+@@ -44,6 +44,8 @@
+ #define X_ARM 7
+ #define X_PPC 8
+ #define X_AARCH64 9
++#define X_PPC64 10
++#define X_PPC64LE 11
+
+ // **********************************
+ // Make sure you set X_PLATFORM and X_ARCH defines correctly.
+diff --git a/src/solaris/bin/ppc64le/jvm.cfg b/src/solaris/bin/ppc64le/jvm.cfg
+new file mode 100644
+--- /dev/null
++++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg
+@@ -0,0 +1,34 @@
++# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
++# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
++#
++# This code is free software; you can redistribute it and/or modify it
++# under the terms of the GNU General Public License version 2 only, as
++# published by the Free Software Foundation. Oracle designates this
++# particular file as subject to the "Classpath" exception as provided
++# by Oracle in the LICENSE file that accompanied this code.
++#
++# This code is distributed in the hope that it will be useful, but WITHOUT
++# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
++# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
++# version 2 for more details (a copy is included in the LICENSE file that
++# accompanied this code).
++#
++# You should have received a copy of the GNU General Public License version
++# 2 along with this work; if not, write to the Free Software Foundation,
++# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
++#
++# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
++# or visit
www.oracle.com if you need additional information or have any
++# questions.
++#
++# List of JVMs that can be used as an option to java, javac, etc.
++# Order is important -- first in this list is the default JVM.
++# NOTE that this both this file and its format are UNSUPPORTED and
++# WILL GO AWAY in a future release.
++#
++# You may also select a JVM in an arbitrary location with the
++# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
++# and may not be available in a future release.
++#
++-server KNOWN
++-client IGNORE
+diff --git a/test/sun/security/pkcs11/PKCS11Test.java
b/test/sun/security/pkcs11/PKCS11Test.java
+--- openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
++++ openjdk/jdk/test/sun/security/pkcs11/PKCS11Test.java
+@@ -505,6 +505,8 @@
+ osMap.put("Linux-amd64-64", new String[]{
+ "/usr/lib/x86_64-linux-gnu/",
"/usr/lib/x86_64-linux-gnu/nss/",
+ "/usr/lib64/"});
++ osMap.put("Linux-ppc64-64", new String[]{"/usr/lib64/"});
++ osMap.put("Linux-ppc64le-64", new String[]{"/usr/lib64/"});
+ osMap.put("Windows-x86-32", new String[]{
+ PKCS11_BASE + "/nss/lib/windows-i586/".replace('/',
SEP)});
+ osMap.put("Windows-amd64-64", new String[]{
+diff --git a/test/tools/launcher/Settings.java b/test/tools/launcher/Settings.java
+--- openjdk/jdk/test/tools/launcher/Settings.java
++++ openjdk/jdk/test/tools/launcher/Settings.java
+@@ -74,7 +74,7 @@
+
+ static void runTestOptionDefault() throws IOException {
+ String stackSize = "256"; // in kb
+- if (getArch().equals("ppc64")) {
++ if (getArch().equals("ppc64") ||
getArch().equals("ppc64le")) {
+ stackSize = "800";
+ }
+ TestResult tr = null;
diff --git a/8073139-rh1191652-root.patch b/8073139-rh1191652-root.patch
new file mode 100644
index 0000000..746529a
--- /dev/null
+++ b/8073139-rh1191652-root.patch
@@ -0,0 +1,46 @@
+# HG changeset patch
+# User sgehwolf
+# Date 1537883922 -7200
+# Tue Sep 25 15:58:42 2018 +0200
+# Node ID 2fabe07c0bd8bf21400313f3bb9b8e80fcb31724
+# Parent 91867683f73de3882ef88981a79995beeeb1e980
+8073139: PPC64: User-visible arch directory and os.arch value on ppc64le cause issues
with Java tooling
+Reviewed-by: erikj, goetz, dholmes
+
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk/common/autoconf/toolchain.m4
++++ openjdk/common/autoconf/toolchain.m4
+@@ -1125,6 +1125,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
+ else
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
+ fi
++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
++ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
++ fi
+ if test "x$OPENJDK_TARGET_OS" = xlinux; then
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
+ fi
+diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
+--- openjdk/common/autoconf/jdk-options.m4
++++ openjdk/common/autoconf/jdk-options.m4
+@@ -158,7 +158,7 @@
+ if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
+ INCLUDE_SA=false
+ fi
+- if test "x$VAR_CPU" = xppc64 ; then
++ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
+ INCLUDE_SA=false
+ fi
+ if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
+diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
+--- openjdk/common/autoconf/platform.m4
++++ openjdk/common/autoconf/platform.m4
+@@ -67,7 +67,7 @@
+ VAR_CPU_ENDIAN=big
+ ;;
+ powerpc64le)
+- VAR_CPU=ppc64
++ VAR_CPU=ppc64le
+ VAR_CPU_ARCH=ppc
+ VAR_CPU_BITS=64
+ VAR_CPU_ENDIAN=little
diff --git a/8148351-pr2842-02.patch b/8148351-pr2842-02.patch
new file mode 100644
index 0000000..1812e19
--- /dev/null
+++ b/8148351-pr2842-02.patch
@@ -0,0 +1,65 @@
+# HG changeset patch
+# User ihse
+# Date 1454642639 0
+# Fri Feb 05 03:23:59 2016 +0000
+# Node ID 61798573efe5a9efa67e268a52cf61263abb4396
+# Parent 842cc183c9f6d29270ff002238248978c08f0a66
+8148351, PR2842: Only display resolved symlink for compiler, do not change path
+Reviewed-by: erikj
+
+diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
+--- openjdk///common/autoconf/toolchain.m4
++++ openjdk///common/autoconf/toolchain.m4
+@@ -198,38 +198,22 @@
+ fi
+ BASIC_FIXUP_EXECUTABLE($1)
+ TEST_COMPILER="[$]$1"
+- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r'
may all be links
+- # to 'xlc' but it is crucial that we invoke the compiler with the right name!
+- if test "x$OPENJDK_BUILD_OS" != xaix; then
+- AC_MSG_CHECKING([resolved symbolic links for $1])
+- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER)
+- AC_MSG_RESULT([$TEST_COMPILER])
+- fi
+- AC_MSG_CHECKING([if $1 is disguised ccache])
+
+- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"`
+- if test "x$COMPILER_BASENAME" = "xccache"; then
+- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler])
+- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache.
+- # We want to control ccache invocation ourselves, so ignore this cc and try
+- # searching again.
++ AC_MSG_CHECKING([resolved symbolic links for $1])
++ SYMLINK_ORIGINAL="$TEST_COMPILER"
++ BASIC_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
++ if test "x$TEST_COMPILER" = "x$SYMLINK_ORIGINAL"; then
++ AC_MSG_RESULT([no symlink])
++ else
++ AC_MSG_RESULT([$SYMLINK_ORIGINAL])
+
+- # Remove the path to the fake ccache cc from the PATH
+- RETRY_COMPILER_SAVED_PATH="$PATH"
+- COMPILER_DIRNAME=`$DIRNAME [$]$1`
+- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e
"s,::,:,g" -e "s,^:,,g"`"
+-
+- # Try again looking for our compiler
+- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3)
+- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1)
+- PATH="$RETRY_COMPILER_SAVED_PATH"
+-
+- AC_MSG_CHECKING([for resolved symbolic links for $1])
+- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1)
+- AC_MSG_RESULT([$PROPER_COMPILER_$1])
+- $1="$PROPER_COMPILER_$1"
+- else
+- AC_MSG_RESULT([no, keeping $1])
++ # We can't handle ccache by gcc wrappers, since we need to know if we're
++ # using ccache. Instead ccache usage must be controlled by a configure option.
++ COMPILER_BASENAME=`$BASENAME "$SYMLINK_ORIGINAL"`
++ if test "x$COMPILER_BASENAME" = "xccache"; then
++ AC_MSG_NOTICE([Please use --enable-ccache instead of providing a wrapped
compiler.])
++ AC_MSG_ERROR([$TEST_COMPILER is a symbolic link to ccache. This is not
supported.])
++ fi
+ fi
+
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
diff --git a/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
b/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
new file mode 100644
index 0000000..8b62ae6
--- /dev/null
+++ b/8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
@@ -0,0 +1,160 @@
+
+# HG changeset patch
+# User neugens
+# Date 1532089120 -7200
+# Node ID 7b30bb9b05bd2e8045bc693ea5be353ce6326396
+# Parent 3d8011a1e02179e5658110981e30274c605ceac8
+8150954: Taking screenshots on x11 composite desktop produce wrong result
+Summary: The AWT Robot X11 code that takes screenshots uses the default root window,
which may not contain the final composited desktop.
+Reviewed-by: alexsch, ssadetsky, prr, dbuck
+
+diff -r 3d8011a1e021 -r 7b30bb9b05bd make/mapfiles/libawt_xawt/mapfile-vers
+--- openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Thu Jul 19 03:31:37 2018 +0100
++++ openjdk/jdk/make/mapfiles/libawt_xawt/mapfile-vers Fri Jul 20 14:18:40 2018 +0200
+@@ -158,6 +158,7 @@
+ Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
+ Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
+ Java_sun_awt_X11_XRobotPeer_setup;
++ Java_sun_awt_X11_XRobotPeer_loadNativeLibraries;
+ Java_sun_awt_X11_XToolkit_getNumberOfButtonsImpl;
+ Java_java_awt_Component_initIDs;
+ Java_java_awt_Container_initIDs;
+diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/classes/sun/awt/X11/XRobotPeer.java
+--- openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Thu Jul 19 03:31:37 2018
+0100
++++ openjdk/jdk/src/solaris/classes/sun/awt/X11/XRobotPeer.java Fri Jul 20 14:18:40 2018
+0200
+@@ -34,6 +34,10 @@
+
+ class XRobotPeer implements RobotPeer {
+
++ static {
++ loadNativeLibraries();
++ }
++
+ private X11GraphicsConfig xgc = null;
+ /*
+ * native implementation uses some static shared data (pipes, processes)
+@@ -98,4 +102,5 @@
+ private static native synchronized void keyReleaseImpl(int keycode);
+
+ private static native synchronized void getRGBPixelsImpl(X11GraphicsConfig xgc, int
x, int y, int width, int height, int pixelArray[]);
++ private static native void loadNativeLibraries();
+ }
+diff -r 3d8011a1e021 -r 7b30bb9b05bd src/solaris/native/sun/awt/awt_Robot.c
+--- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Thu Jul 19 03:31:37 2018 +0100
++++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c Fri Jul 20 14:18:40 2018 +0200
+@@ -27,6 +27,9 @@
+ #error This file should not be included in headless library
+ #endif
+
++#include "jvm_md.h"
++#include <dlfcn.h>
++
+ #include "awt_p.h"
+ #include "awt_GraphicsEnv.h"
+ #define XK_MISCELLANY
+@@ -49,11 +52,46 @@
+ #include <sys/socket.h>
+ #endif
+
++static Bool (*compositeQueryExtension) (Display*, int*, int*);
++static Status (*compositeQueryVersion) (Display*, int*, int*);
++static Window (*compositeGetOverlayWindow) (Display *, Window);
++
+ extern struct X11GraphicsConfigIDs x11GraphicsConfigIDs;
+
+ static jint * masks;
+ static jint num_buttons;
+
++static void *xCompositeHandle;
++
++static const char* XCOMPOSITE = JNI_LIB_NAME("Xcomposite");
++static const char* XCOMPOSITE_VERSIONED = VERSIONED_JNI_LIB_NAME("Xcomposite",
"1");
++
++static Bool checkXCompositeFunctions(void) {
++ return (compositeQueryExtension != NULL &&
++ compositeQueryVersion != NULL &&
++ compositeGetOverlayWindow != NULL);
++}
++
++static void initXCompositeFunctions(void) {
++
++ if (xCompositeHandle == NULL) {
++ xCompositeHandle = dlopen(XCOMPOSITE, RTLD_LAZY | RTLD_GLOBAL);
++ if (xCompositeHandle == NULL) {
++ xCompositeHandle = dlopen(XCOMPOSITE_VERSIONED, RTLD_LAZY | RTLD_GLOBAL);
++ }
++ }
++ //*(void **)(&asyncGetCallTraceFunction)
++ if (xCompositeHandle != NULL) {
++ *(void **)(&compositeQueryExtension) = dlsym(xCompositeHandle,
"XCompositeQueryExtension");
++ *(void **)(&compositeQueryVersion) = dlsym(xCompositeHandle,
"XCompositeQueryVersion");
++ *(void **)(&compositeGetOverlayWindow) = dlsym(xCompositeHandle,
"XCompositeGetOverlayWindow");
++ }
++
++ if (xCompositeHandle && !checkXCompositeFunctions()) {
++ dlclose(xCompositeHandle);
++ }
++}
++
+ static int32_t isXTestAvailable() {
+ int32_t major_opcode, first_event, first_error;
+ int32_t event_basep, error_basep, majorp, minorp;
+@@ -88,6 +126,35 @@
+ return isXTestAvailable;
+ }
+
++static Bool hasXCompositeOverlayExtension(Display *display) {
++
++ int xoverlay = False;
++ int eventBase, errorBase;
++ if (checkXCompositeFunctions() &&
++ compositeQueryExtension(display, &eventBase, &errorBase))
++ {
++ int major = 0;
++ int minor = 0;
++
++ compositeQueryVersion(display, &major, &minor);
++ if (major > 0 || minor >= 3) {
++ xoverlay = True;
++ }
++ }
++
++ return xoverlay;
++}
++
++static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
++
++ char NET_WM_CM_Sn[25];
++ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
++
++ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
++ Window owner = XGetSelectionOwner(display, managerSelection);
++
++ return owner != 0;
++}
+
+ static XImage *getWindowImage(Display * display, Window window,
+ int32_t x, int32_t y,
+@@ -232,6 +299,12 @@
+ DASSERT(adata != NULL);
+
+ rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
++ if (hasXCompositeOverlayExtension(awt_display) &&
++ isXCompositeDisplay(awt_display, adata->awt_visInfo.screen))
++ {
++ rootWindow = compositeGetOverlayWindow(awt_display, rootWindow);
++ }
++
+ image = getWindowImage(awt_display, rootWindow, x, y, width, height);
+
+ /* Array to use to crunch around the pixel values */
+@@ -412,3 +485,8 @@
+
+ AWT_UNLOCK();
+ }
++
++JNIEXPORT void JNICALL
++Java_sun_awt_X11_XRobotPeer_loadNativeLibraries (JNIEnv *env, jclass cls) {
++ initXCompositeFunctions();
++}
+
diff --git a/8165852-pr3468.patch b/8165852-pr3468.patch
new file mode 100644
index 0000000..6be87a7
--- /dev/null
+++ b/8165852-pr3468.patch
@@ -0,0 +1,87 @@
+
+# HG changeset patch
+# User bpb
+# Date 1515783982 28800
+# Node ID b8843bca95b5e0eed5bbb4dc195c89c727c7aede
+# Parent 61d7ce442d95f5f30c84037a50cf6361bf7c37e1
+8165852: (fs) Mount point not found for a file which is present in overlayfs
+Summary: Check /proc/mounts when the device ID boundary is reached
+Reviewed-by: alanb
+
+diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileStore.java
+--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Tue Jul 24 05:10:45
2018 -0400
++++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileStore.java Fri Jan 12 11:06:22
2018 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -66,6 +66,8 @@
+ }
+
+ // step 2: find mount point
++ List<UnixMountEntry> procMountsEntries =
++ fs.getMountEntries("/proc/mounts");
+ UnixPath parent = path.getParent();
+ while (parent != null) {
+ UnixFileAttributes attrs = null;
+@@ -74,16 +76,23 @@
+ } catch (UnixException x) {
+ x.rethrowAsIOException(parent);
+ }
+- if (attrs.dev() != dev())
+- break;
++ if (attrs.dev() != dev()) {
++ // step 3: lookup mounted file systems (use /proc/mounts to
++ // ensure we find the file system even when not in /etc/mtab)
++ byte[] dir = path.asByteArray();
++ for (UnixMountEntry entry : procMountsEntries) {
++ if (Arrays.equals(dir, entry.dir()))
++ return entry;
++ }
++ }
+ path = parent;
+ parent = parent.getParent();
+ }
+
+- // step 3: lookup mounted file systems (use /proc/mounts to ensure we
+- // find the file system even when not in /etc/mtab)
++ // step 3: lookup mounted file systems (use /proc/mounts to
++ // ensure we find the file system even when not in /etc/mtab)
+ byte[] dir = path.asByteArray();
+- for (UnixMountEntry entry: fs.getMountEntries("/proc/mounts")) {
++ for (UnixMountEntry entry : procMountsEntries) {
+ if (Arrays.equals(dir, entry.dir()))
+ return entry;
+ }
+diff -r 61d7ce442d95 -r b8843bca95b5 src/solaris/classes/sun/nio/fs/LinuxFileSystem.java
+--- openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Tue Jul 24 05:10:45
2018 -0400
++++ openjdk/jdk/src/solaris/classes/sun/nio/fs/LinuxFileSystem.java Fri Jan 12 11:06:22
2018 -0800
+@@ -1,5 +1,5 @@
+ /*
+- * Copyright (c) 2008, 2013, Oracle and/or its affiliates. All rights reserved.
++ * Copyright (c) 2008, 2018, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+@@ -75,7 +75,7 @@
+ /**
+ * Returns object to iterate over the mount entries in the given fstab file.
+ */
+- Iterable<UnixMountEntry> getMountEntries(String fstab) {
++ List<UnixMountEntry> getMountEntries(String fstab) {
+ ArrayList<UnixMountEntry> entries = new ArrayList<>();
+ try {
+ long fp = setmntent(Util.toBytes(fstab), Util.toBytes("r"));
+@@ -101,7 +101,7 @@
+ * Returns object to iterate over the mount entries in /etc/mtab
+ */
+ @Override
+- Iterable<UnixMountEntry> getMountEntries() {
++ List<UnixMountEntry> getMountEntries() {
+ return getMountEntries("/etc/mtab");
+ }
+
+
diff --git a/8201495-s390-java-opts.patch b/8201495-s390-java-opts.patch
new file mode 100644
index 0000000..d42d05b
--- /dev/null
+++ b/8201495-s390-java-opts.patch
@@ -0,0 +1,21 @@
+
+# HG changeset patch
+# User sgehwolf
+# Date 1525428026 -3600
+# Node ID 7129b977c4af021b1c9bbd7bbd334677213940d4
+# Parent 888144400d978e40a004dd8b908025a31135c092
+8201495: [Zero] Reduce limits of max heap size for boot JDK on s390
+Reviewed-by: andrew
+
+diff -r 888144400d97 -r 7129b977c4af common/autoconf/boot-jdk.m4
+--- openjdk.orig/common/autoconf/boot-jdk.m4 Thu Apr 19 03:58:58 2018 -0700
++++ openjdk/common/autoconf/boot-jdk.m4 Fri May 04 11:00:26 2018 +0100
+@@ -334,7 +334,7 @@
+ # Maximum amount of heap memory.
+ # Maximum stack size.
+ if test "x$BOOT_JDK_BITS" = x32; then
+- JVM_MAX_HEAP=1100M
++ JVM_MAX_HEAP=768M
+ STACK_SIZE=768
+ else
+ # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git a/8203030-size_t-fixes.patch b/8203030-size_t-fixes.patch
new file mode 100644
index 0000000..6e0d762
--- /dev/null
+++ b/8203030-size_t-fixes.patch
@@ -0,0 +1,321 @@
+diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+---
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
+@@ -2659,7 +2659,7 @@
+ if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
+ size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
+ n_blks += CMSOldPLABReactivityFactor*multiple*n_blks;
+- n_blks = MIN2(n_blks, CMSOldPLABMax);
++ n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
+ }
+ assert(n_blks > 0, "Error");
+ _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
+diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+---
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
+@@ -957,7 +957,7 @@
+ if (free_percentage < desired_free_percentage) {
+ size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
+ assert(desired_capacity >= capacity(), "invalid expansion size");
+- size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
++ size_t expand_bytes = MAX2(desired_capacity - capacity(),
(size_t)MinHeapDeltaBytes);
+ if (PrintGCDetails && Verbose) {
+ size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
+ gclog_or_tty->print_cr("\nFrom compute_new_size: ");
+@@ -6577,7 +6577,7 @@
+ HeapWord* curAddr = _markBitMap.startWord();
+ while (curAddr < _markBitMap.endWord()) {
+ size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr);
+- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
++ MemRegion chunk(curAddr, MIN2((size_t)CMSBitMapYieldQuantum, remaining));
+ _markBitMap.clear_large_range(chunk);
+ if (ConcurrentMarkSweepThread::should_yield() &&
+ !foregroundGCIsActive() &&
+@@ -6875,7 +6875,7 @@
+ return;
+ }
+ // Double capacity if possible
+- size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
++ size_t new_capacity = MIN2(_capacity*2, (size_t)MarkStackSizeMax);
+ // Do not give up existing stack until we have managed to
+ // get the double capacity that we desired.
+ ReservedSpace rs(ReservedSpace::allocation_align_size_up(
+diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
+@@ -3903,7 +3903,7 @@
+ // of things to do) or totally (at the very end).
+ size_t target_size;
+ if (partially) {
+- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
++ target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)
GCDrainStackTargetSize);
+ } else {
+ target_size = 0;
+ }
+@@ -4707,7 +4707,7 @@
+ // The > 0 check is to deal with the prev and next live bytes which
+ // could be 0.
+ if (*hum_bytes > 0) {
+- bytes = MIN2(HeapRegion::GrainBytes, *hum_bytes);
++ bytes = MIN2(HeapRegion::GrainBytes, (size_t)*hum_bytes);
+ *hum_bytes -= bytes;
+ }
+ return bytes;
+diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
+@@ -1726,7 +1726,7 @@
+
+ verify_region_sets_optional();
+
+- size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes);
++ size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes);
+ ergo_verbose1(ErgoHeapSizing,
+ "attempt heap expansion",
+ ergo_format_reason("allocation request failed")
+diff --git a/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
b/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
+@@ -117,7 +117,7 @@
+ return reserved_size() - committed_size();
+ }
+
+-size_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const {
++uintptr_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const {
+ return (addr - _low_boundary) / _page_size;
+ }
+
+diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
b/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
+@@ -38,7 +38,7 @@
+ _cancel(false),
+ _empty(true),
+ _dropped(0) {
+- _nqueues = MAX2(ParallelGCThreads, (size_t)1);
++ _nqueues = MAX2(ParallelGCThreads, (uintx)1);
+ _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC);
+ for (size_t i = 0; i < _nqueues; i++) {
+ new (_queues + i)
G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(),
_max_cache_size, _max_size);
+diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
b/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
+@@ -120,7 +120,7 @@
+ };
+
+ G1StringDedupEntryCache::G1StringDedupEntryCache(size_t max_size) :
+- _nlists(MAX2(ParallelGCThreads, (size_t)1)),
++ _nlists(MAX2(ParallelGCThreads, (uintx)1)),
+ _max_list_length(0),
+ _cached(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)),
+ _overflowed(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)) {
+diff --git a/src/share/vm/gc_implementation/g1/heapRegion.cpp
b/src/share/vm/gc_implementation/g1/heapRegion.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
+@@ -109,7 +109,7 @@
+ if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
+ size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
+ region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(),
+- (uintx) HeapRegionBounds::min_size());
++ HeapRegionBounds::min_size());
+ }
+
+ int region_size_log = log2_long((jlong) region_size);
+diff --git a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+--- openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
+@@ -194,7 +194,7 @@
+ const size_t num_overflow_elems = of_stack->size();
+ const size_t space_available = queue->max_elems() - queue->size();
+ const size_t num_take_elems = MIN3(space_available / 4,
+- ParGCDesiredObjsFromOverflowList,
++ (size_t)ParGCDesiredObjsFromOverflowList,
+ num_overflow_elems);
+ // Transfer the most recent num_take_elems from the overflow
+ // stack to our work queue.
+diff --git a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+---
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
++++
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
+@@ -910,8 +910,8 @@
+ void PSParallelCompact::initialize_dead_wood_limiter()
+ {
+ const size_t max = 100;
+- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
+- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
++ _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0;
++ _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
+ _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
+ DEBUG_ONLY(_dwl_initialized = true;)
+ _dwl_adjustment = normal_distribution(1.0);
+diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/collectorPolicy.cpp
+--- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
+@@ -385,7 +385,7 @@
+ uintx calculated_size = NewSize + OldSize;
+ double shrink_factor = (double) MaxHeapSize / calculated_size;
+ uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor),
_gen_alignment);
+- FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
smaller_new_size));
++ FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
(size_t)smaller_new_size));
+ _initial_gen0_size = NewSize;
+
+ // OldSize is already aligned because above we aligned MaxHeapSize to
+@@ -433,7 +433,7 @@
+ // yield a size that is too small) and bound it by MaxNewSize above.
+ // Ergonomics plays here by previously calculating the desired
+ // NewSize and MaxNewSize.
+- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
++ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
+ }
+ assert(max_new_size > 0, "All paths should set max_new_size");
+
+@@ -455,24 +455,23 @@
+ // lower limit.
+ _min_gen0_size = NewSize;
+ desired_new_size = NewSize;
+- max_new_size = MAX2(max_new_size, NewSize);
++ max_new_size = MAX2(max_new_size, (size_t)NewSize);
+ } else if (FLAG_IS_ERGO(NewSize)) {
+ // If NewSize is set ergonomically, we should use it as a lower
+ // limit, but use NewRatio to calculate the initial size.
+ _min_gen0_size = NewSize;
+ desired_new_size =
+- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
+- max_new_size = MAX2(max_new_size, NewSize);
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);
++ max_new_size = MAX2(max_new_size, (size_t)NewSize);
+ } else {
+ // For the case where NewSize is the default, use NewRatio
+ // to size the minimum and initial generation sizes.
+ // Use the default NewSize as the floor for these values. If
+ // NewRatio is overly large, the resulting sizes can be too
+ // small.
+- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize);
++ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
(size_t)NewSize);
+ desired_new_size =
+- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
+- }
++ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); }
+
+ assert(_min_gen0_size > 0, "Sanity check");
+ _initial_gen0_size = desired_new_size;
+@@ -573,7 +572,7 @@
+ } else {
+ // It's been explicitly set on the command line. Use the
+ // OldSize and then determine the consequences.
+- _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size);
++ _min_gen1_size = MIN2((size_t)OldSize, _min_heap_byte_size - _min_gen0_size);
+ _initial_gen1_size = OldSize;
+
+ // If the user has explicitly set an OldSize that is inconsistent
+diff --git a/src/share/vm/memory/metaspace.cpp b/src/share/vm/memory/metaspace.cpp
+--- openjdk/hotspot/src/share/vm/memory/metaspace.cpp
++++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp
+@@ -1455,7 +1455,7 @@
+
+ void MetaspaceGC::post_initialize() {
+ // Reset the high-water mark once the VM initialization is done.
+- _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), MetaspaceSize);
++ _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), (size_t)MetaspaceSize);
+ }
+
+ bool MetaspaceGC::can_expand(size_t word_size, bool is_class) {
+@@ -1515,7 +1515,7 @@
+ (size_t)MIN2(min_tmp, double(max_uintx));
+ // Don't shrink less than the initial generation size
+ minimum_desired_capacity = MAX2(minimum_desired_capacity,
+- MetaspaceSize);
++ (size_t)MetaspaceSize);
+
+ if (PrintGCDetails && Verbose) {
+ gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: ");
+@@ -1573,7 +1573,7 @@
+ const double max_tmp = used_after_gc / minimum_used_percentage;
+ size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx));
+ maximum_desired_capacity = MAX2(maximum_desired_capacity,
+- MetaspaceSize);
++ (size_t)MetaspaceSize);
+ if (PrintGCDetails && Verbose) {
+ gclog_or_tty->print_cr(" "
+ " maximum_free_percentage: %6.2f"
+@@ -3285,7 +3285,7 @@
+ // on the medium chunk list. The next chunk will be small and progress
+ // from there. This size calculated by -version.
+ _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6,
+- (CompressedClassSpaceSize/BytesPerWord)*2);
++
(size_t)(CompressedClassSpaceSize/BytesPerWord)*2);
+ _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size);
+ // Arbitrarily set the initial virtual space to a multiple
+ // of the boot class loader size.
+diff --git a/src/share/vm/memory/threadLocalAllocBuffer.cpp
b/src/share/vm/memory/threadLocalAllocBuffer.cpp
+--- openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
++++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
+@@ -238,13 +238,13 @@
+ size_t init_sz = 0;
+
+ if (TLABSize > 0) {
+- init_sz = TLABSize / HeapWordSize;
++ init_sz = (size_t)(TLABSize / HeapWordSize);
+ } else if (global_stats() != NULL) {
+ // Initial size is a function of the average number of allocating threads.
+ unsigned nof_threads = global_stats()->allocating_threads_avg();
+
+- init_sz = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
+- (nof_threads * target_refills());
++ init_sz = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize)
/
++ (nof_threads * target_refills()));
+ init_sz = align_object_size(init_sz);
+ }
+ init_sz = MIN2(MAX2(init_sz, min_size()), max_size());
+diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objArrayKlass.inline.hpp
+--- openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
++++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
+@@ -48,7 +48,7 @@
+ const size_t beg_index = size_t(index);
+ assert(beg_index < len || len == 0, "index too large");
+
+- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+ const size_t end_index = beg_index + stride;
+ T* const base = (T*)a->base();
+ T* const beg = base + beg_index;
+@@ -82,7 +82,7 @@
+ const size_t beg_index = size_t(index);
+ assert(beg_index < len || len == 0, "index too large");
+
+- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
++ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
+ const size_t end_index = beg_index + stride;
+ T* const base = (T*)a->base();
+ T* const beg = base + beg_index;
+diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
+--- openjdk/hotspot/src/share/vm/runtime/arguments.cpp
++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
+@@ -1283,7 +1283,7 @@
+ // NewSize was set on the command line and it is larger than
+ // preferred_max_new_size.
+ if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line
+- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
++ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t)NewSize, preferred_max_new_size));
+ } else {
+ FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
+ }
+@@ -1308,8 +1308,8 @@
+ // Unless explicitly requested otherwise, make young gen
+ // at least min_new, and at most preferred_max_new_size.
+ if (FLAG_IS_DEFAULT(NewSize)) {
+- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
+- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
++ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t)NewSize, min_new));
++ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+ tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
+@@ -1319,7 +1319,7 @@
+ // so it's NewRatio x of NewSize.
+ if (FLAG_IS_DEFAULT(OldSize)) {
+ if (max_heap > NewSize) {
+- FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize));
++ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap -
NewSize));
+ if (PrintGCDetails && Verbose) {
+ // Too early to use gclog_or_tty
+ tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
diff --git a/8205104-pr3539-rh1548475.patch b/8205104-pr3539-rh1548475.patch
new file mode 100644
index 0000000..9b40a7f
--- /dev/null
+++ b/8205104-pr3539-rh1548475.patch
@@ -0,0 +1,116 @@
+# HG changeset patch
+# User andrew
+# Date 1526065930 -3600
+# Fri May 11 20:12:10 2018 +0100
+# Node ID b8fc1e640c4c7f38ca94131279cb67c4d3de6961
+# Parent afb31413c73cbc06420fdb447aa90a7a38258904
+PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/jsig.make
openjdk/hotspot/make/aix/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/aix/makefiles/jsig.make
++++ openjdk/hotspot/make/aix/makefiles/jsig.make
+@@ -45,7 +45,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ LFLAGS_JSIG += $(BIN_UTILS)
+
+diff --git openjdk.orig/hotspot/make/aix/makefiles/saproc.make
openjdk/hotspot/make/aix/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/aix/makefiles/saproc.make
++++ openjdk/hotspot/make/aix/makefiles/saproc.make
+@@ -66,7 +66,7 @@
+ endif
+
+
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
+ $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
+diff --git openjdk.orig/hotspot/make/aix/makefiles/vm.make
openjdk/hotspot/make/aix/makefiles/vm.make
+--- openjdk.orig/hotspot/make/aix/makefiles/vm.make
++++ openjdk/hotspot/make/aix/makefiles/vm.make
+@@ -117,7 +117,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
openjdk/hotspot/make/bsd/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
++++ openjdk/hotspot/make/bsd/makefiles/jsig.make
+@@ -52,7 +52,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE)
++LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ # DEBUG_BINARIES overrides everything, use full -g debug information
+ ifeq ($(DEBUG_BINARIES), true)
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
openjdk/hotspot/make/bsd/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
++++ openjdk/hotspot/make/bsd/makefiles/saproc.make
+@@ -114,7 +114,7 @@
+ # bring in minimum version argument or we'll fail on OSX 10.10
+ SA_LFLAGS = $(LFLAGS)
+ endif
+-SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS += $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
+ -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]"
"[:lower:]")
+diff --git openjdk.orig/hotspot/make/bsd/makefiles/vm.make
openjdk/hotspot/make/bsd/makefiles/vm.make
+--- openjdk.orig/hotspot/make/bsd/makefiles/vm.make
++++ openjdk/hotspot/make/bsd/makefiles/vm.make
+@@ -119,7 +119,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
+diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -44,7 +44,7 @@
+ # cause problems with interposing. See CR: 6466665
+ # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
+
+-LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
$(LDFLAGS_NO_EXEC_STACK)
++LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(LDFLAGS_NO_EXEC_STACK)
$(EXTRA_LDFLAGS)
+
+ # DEBUG_BINARIES overrides everything, use full -g debug information
+ ifeq ($(DEBUG_BINARIES), true)
+diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -73,7 +73,7 @@
+ else
+ ALT_SAINCDIR=
+ endif
+-SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
++SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
+
+ SAARCH ?= $(BUILDARCH)
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
+--- openjdk.orig/hotspot/make/linux/makefiles/vm.make
++++ openjdk/hotspot/make/linux/makefiles/vm.make
+@@ -122,7 +122,7 @@
+
+ # Extra flags from gnumake's invocation or environment
+ CFLAGS += $(EXTRA_CFLAGS)
+-LFLAGS += $(EXTRA_CFLAGS)
++LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
+
+ # Don't set excutable bit on stack segment
+ # the same could be done by separate execstack command
diff --git a/8207057-pr3613-assembler-debuginfo-hotspot.patch
b/8207057-pr3613-assembler-debuginfo-hotspot.patch
new file mode 100644
index 0000000..c61d972
--- /dev/null
+++ b/8207057-pr3613-assembler-debuginfo-hotspot.patch
@@ -0,0 +1,13 @@
+--- openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.933127667 +0200
++++ openjdk/hotspot/make/linux/makefiles/gcc.make 2018-09-17 15:40:56.831127850 +0200
+@@ -184,6 +184,10 @@
+ LFLAGS += $(ARCHFLAG)
+ ASFLAGS += $(ARCHFLAG)
+
++ifeq ($(DEBUG_BINARIES), true)
++ ASFLAGS += $(ASFLAGS_DEBUG_SYMBOLS)
++endif
++
+ # Use C++ Interpreter
+ ifdef CC_INTERP
+ CFLAGS += -DCC_INTERP
diff --git a/8207057-pr3613-assembler-debuginfo-root.patch
b/8207057-pr3613-assembler-debuginfo-root.patch
new file mode 100644
index 0000000..7f57c0a
--- /dev/null
+++ b/8207057-pr3613-assembler-debuginfo-root.patch
@@ -0,0 +1,39 @@
+--- openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.783695320 +0200
++++ openjdk/common/autoconf/toolchain.m4 2018-09-17 15:35:40.608695635 +0200
+@@ -814,6 +814,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+
+ C_FLAG_DEPS="-MMD -MF"
+ CXX_FLAG_DEPS="-MMD -MF"
++ # By default don't set any specific assembler debug
++ # info flags for toolchains unless we know they work.
++ # See JDK-8207057.
++ ASFLAGS_DEBUG_SYMBOLS=""
+
+ case $COMPILER_TYPE in
+ CC )
+@@ -842,6 +846,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+ CFLAGS_DEBUG_SYMBOLS="-g1"
+ CXXFLAGS_DEBUG_SYMBOLS="-g1"
+ fi
++ ASFLAGS_DEBUG_SYMBOLS="-g"
+ ;;
+ ossc )
+ #
+@@ -969,6 +974,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_OPTIMIZATION],
+ AC_SUBST(CXX_O_FLAG_NONE)
+ AC_SUBST(C_FLAG_DEPS)
+ AC_SUBST(CXX_FLAG_DEPS)
++ AC_SUBST(ASFLAGS_DEBUG_SYMBOLS)
+ ])
+
+ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_COMPILER_FLAGS_FOR_JDK],
+--- openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.324690758 +0200
++++ openjdk/common/autoconf/spec.gmk.in 2018-09-17 15:35:43.169691036 +0200
+@@ -414,6 +414,7 @@
+ # Options for generating debug symbols
+ ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@
+ CFLAGS_DEBUG_SYMBOLS:=@CFLAGS_DEBUG_SYMBOLS@
++ASFLAGS_DEBUG_SYMBOLS:=@ASFLAGS_DEBUG_SYMBOLS@
+ CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@
+ ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@
+ STRIP_POLICY:=@STRIP_POLICY@
diff --git a/8207057-pr3613-hotspot-assembler-debuginfo.patch
b/8207057-pr3613-hotspot-assembler-debuginfo.patch
deleted file mode 100644
index 61f493d..0000000
--- a/8207057-pr3613-hotspot-assembler-debuginfo.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-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/8207234-dont-add-unnecessary-debug-links.patch
b/8207234-dont-add-unnecessary-debug-links.patch
deleted file mode 100644
index 9c29e6b..0000000
--- a/8207234-dont-add-unnecessary-debug-links.patch
+++ /dev/null
@@ -1,77 +0,0 @@
---- 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/8210416-rh1630426-strict-math-opt.patch
b/8210416-rh1630426-strict-math-opt.patch
new file mode 100644
index 0000000..98bbad0
--- /dev/null
+++ b/8210416-rh1630426-strict-math-opt.patch
@@ -0,0 +1,57 @@
+diff --git openjdk.orig/jdk/make/lib/CoreLibraries.gmk
openjdk/jdk/make/lib/CoreLibraries.gmk
+--- openjdk.orig/jdk/make/lib/CoreLibraries.gmk
++++ openjdk/jdk/make/lib/CoreLibraries.gmk
+@@ -37,21 +37,32 @@ ifeq ($(OPENJDK_TARGET_OS), solaris)
+ endif
+
+ ifeq ($(OPENJDK_TARGET_OS), linux)
+- ifeq ($(OPENJDK_TARGET_CPU), ppc64)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- else ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- else ifeq ($(OPENJDK_TARGET_CPU), aarch64)
+- BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
+- endif
+-endif
+-
+-ifneq ($(OPENJDK_TARGET_OS), macosx)
++ BUILD_LIBFDLIBM_OPTIMIZATION := HIGH
++ LIBFDLIBM_CFLAGS_LINUX := -ffp-contract=off
+ # Unfortunately, '-ffp-contract' is only available since gcc 4.6. For ppc64le
+ # that's no problem since ppc64le support only appeared in gcc 4.8.3. But on
+ # ppc64 (big endian) we traditionally compiled with gcc 4.3 which only knows
+ # '-mno-fused-madd'. However, that's still not enough to get the float
+ # computations right - we additionally have to supply '-fno-strict-aliasing'.
++ #
++ #
++ ifeq ($(TOOLCHAIN_TYPE), gcc)
++ CC_VER_MAJOR := $(shell $(CC) -dumpversion | cut -d'.' -f1)
++ CC_VER_MINOR := $(shell $(CC) -dumpversion | cut -d'.' -f2)
++ endif
++ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
++ # For other versions we need to explicitly set arch specific machine
++ # flags or keep optimization off.
++ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "0"
++ ifeq ($(OPENJDK_TARGET_CPU), ppc64)
++ LIBFDLIBM_CFLAGS_LINUX := -mno-fused-madd -fno-strict-aliasing
++ else
++ BUILD_LIBFDLIBM_OPTIMIZATION := NONE
++ endif
++ endif
++endif
++
++ifneq ($(OPENJDK_TARGET_OS), macosx)
+ $(eval $(call SetupNativeCompilation,BUILD_LIBFDLIBM, \
+ STATIC_LIBRARY := fdlibm, \
+ OUTPUT_DIR := $(JDK_OUTPUTDIR)/objs, \
+@@ -62,9 +73,7 @@ ifneq ($(OPENJDK_TARGET_OS), macosx)
+ -I$(JDK_TOPDIR)/src/share/native/java/lang/fdlibm/include, \
+ CFLAGS_windows_debug := -DLOGGING, \
+ CFLAGS_aix := -qfloat=nomaf, \
+- CFLAGS_linux_ppc64 := -mno-fused-madd -fno-strict-aliasing, \
+- CFLAGS_linux_ppc64le := -ffp-contract=off, \
+- CFLAGS_linux_aarch64 := -ffp-contract=off, \
++ CFLAGS_linux := $(LIBFDLIBM_CFLAGS_LINUX), \
+ ARFLAGS := $(ARFLAGS), \
+ OBJECT_DIR := $(JDK_OUTPUTDIR)/objs/libfdlibm, \
+ DEBUG_SYMBOLS := $(DEBUG_ALL_BINARIES)))
diff --git a/8210425-01-rh1630426-hotspot-opt-fix.patch
b/8210425-01-rh1630426-hotspot-opt-fix.patch
new file mode 100644
index 0000000..0b05ba6
--- /dev/null
+++ b/8210425-01-rh1630426-hotspot-opt-fix.patch
@@ -0,0 +1,83 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/amd64.make
openjdk/hotspot/make/linux/makefiles/amd64.make
+--- openjdk.orig/hotspot/make/linux/makefiles/amd64.make
++++ openjdk/hotspot/make/linux/makefiles/amd64.make
+@@ -22,10 +22,13 @@
+ #
+ #
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/gcc.make
openjdk/hotspot/make/linux/makefiles/gcc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/gcc.make
++++ openjdk/hotspot/make/linux/makefiles/gcc.make
+@@ -225,6 +225,16 @@
+ OPT_CFLAGS/SIZE=-Os
+ OPT_CFLAGS/SPEED=-O3
+
++ifeq ($(USE_CLANG),)
++ # Only GCC 4.6 and better have machine independent -ffp-contract=off.
++ # For other versions we need to explicitly set arch specific machine
++ # flags or keep optimization off for them.
++ ifeq "$(shell expr \( $(CC_VER_MAJOR) \> 4 \) \| \( \( $(CC_VER_MAJOR) = 4 \)
\& \( $(CC_VER_MINOR) \>= 6 \) \))" "1"
++ OPT_CFLAGS_NO_FMA = -ffp-contract=off
++ endif
++endif
++
++
+ # Hotspot uses very unstrict aliasing turn this optimization off
+ # This option is added to CFLAGS rather than OPT_CFLAGS
+ # so that OPT_CFLAGS overrides get this option too.
+diff --git openjdk.orig/hotspot/make/linux/makefiles/i486.make
openjdk/hotspot/make/linux/makefiles/i486.make
+--- openjdk.orig/hotspot/make/linux/makefiles/i486.make
++++ openjdk/hotspot/make/linux/makefiles/i486.make
+@@ -24,10 +24,13 @@
+
+ # TLS helper, assembled from .s file
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
+diff --git openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
openjdk/hotspot/make/linux/makefiles/ppc64.make
+--- openjdk.orig/hotspot/make/linux/makefiles/ppc64.make
++++ openjdk/hotspot/make/linux/makefiles/ppc64.make
+@@ -49,3 +49,17 @@
+ # Use Power8, this is the first CPU to support PPC64 LE with ELFv2 ABI.
+ CFLAGS += -mcpu=power7 -mtune=power8 -minsert-sched-nops=regroup_exact -mno-multiple
-mno-string
+ endif
++
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN),big)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) -mno-fused-madd
-fno-strict-aliasing
++ else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ endif
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
++
diff --git a/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
b/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
new file mode 100644
index 0000000..cf1b40b
--- /dev/null
+++ b/8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
@@ -0,0 +1,22 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
openjdk/hotspot/make/linux/makefiles/aarch64.make
+index 3d17326..7cdb498 100644
+--- openjdk.orig/hotspot/make/linux/makefiles/aarch64.make
++++ openjdk/hotspot/make/linux/makefiles/aarch64.make
+@@ -22,10 +22,13 @@
+ #
+ #
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+ # Must also specify if CPU is little endian
+ CFLAGS += -DVM_LITTLE_ENDIAN
+
diff --git a/8210647-rh1630426-saproc-opt-fix.patch
b/8210647-rh1630426-saproc-opt-fix.patch
new file mode 100644
index 0000000..0ab09e4
--- /dev/null
+++ b/8210647-rh1630426-saproc-opt-fix.patch
@@ -0,0 +1,23 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
+--- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
++++ openjdk/hotspot/make/linux/makefiles/saproc.make
+@@ -59,6 +59,11 @@
+ SA_DEBUG_CFLAGS = -g
+ endif
+
++# Optimize saproc lib at level -O3 unless it's a slowdebug build
++ifneq ($(DEBUG_LEVEL), slowdebug)
++ SA_OPT_FLAGS = $(OPT_CFLAGS)
++endif
++
+ # if $(AGENT_DIR) does not exist, we don't build SA
+ # also, we don't build SA on Itanium or zero.
+
+@@ -95,6 +100,7 @@
+ $(SASRCFILES) \
+ $(SA_LFLAGS) \
+ $(SA_DEBUG_CFLAGS) \
++ $(SA_OPT_FLAGS) \
+ $(EXTRA_CFLAGS) \
+ -o $@ \
+ -lthread_db
diff --git a/8210761-rh1630426-jsig-opt-fix.patch b/8210761-rh1630426-jsig-opt-fix.patch
new file mode 100644
index 0000000..5f30e59
--- /dev/null
+++ b/8210761-rh1630426-jsig-opt-fix.patch
@@ -0,0 +1,20 @@
+diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
+--- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
++++ openjdk/hotspot/make/linux/makefiles/jsig.make
+@@ -51,10 +51,15 @@ ifeq ($(DEBUG_BINARIES), true)
+ JSIG_DEBUG_CFLAGS = -g
+ endif
+
++# Optimize jsig lib at level -O3 unless it's a slowdebug build
++ifneq ($(DEBUG_LEVEL), slowdebug)
++ JSIG_OPT_FLAGS = $(OPT_CFLAGS)
++endif
++
+ $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE)
+ @echo Making signal interposition lib...
+ $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \
+- $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $<
-ldl
++ $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(JSIG_OPT_FLAGS)
$(EXTRA_CFLAGS) -o $@ $< -ldl
+ ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1)
+ $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO)
+ ifeq ($(STRIP_POLICY),all_strip)
diff --git a/include-all-srcs.patch b/include-all-srcs.patch
deleted file mode 100644
index 41b1ea2..0000000
--- a/include-all-srcs.patch
+++ /dev/null
@@ -1,54 +0,0 @@
---- jdk8/jdk/make/CreateJars.gmk
-+++ jdk8/jdk/make/CreateJars.gmk
-@@ -569,38 +569,12 @@
-
##########################################################################################
-
- SRC_ZIP_INCLUDES = \
-- com/sun/corba \
-- com/sun/image/codec/jpeg \
-- com/sun/imageio \
-- com/sun/java_cup \
-- com/sun/javadoc \
-- com/sun/java/swing \
-- com/sun/jmx \
-- com/sun/naming \
-- com/sun/org/apache \
-- com/sun/security/auth \
-- com/sun/security/jgss \
-- com/sun/source \
-+ com \
- java \
-- javax/accessibility \
-- javax/annotation \
-- javax/imageio \
-- javax/lang \
-- javax/management \
-- javax/naming \
-- javax/print \
-- javax/rmi \
-- javax/script \
-- javax/security \
-- javax/sound \
-- javax/sql \
-- javax/swing \
-- javax/tools \
-- javax/xml \
-- org/ietf \
-- org/omg \
-- org/w3c/dom \
-- org/xml/sax \
-+ javax \
-+ jdk \
-+ org \
-+ sun \
- #
-
- SRC_ZIP_SRCS = $(JDK_TOPDIR)/src/share/classes
$(JDK_TOPDIR)/src/$(OPENJDK_TARGET_OS_API_DIR)/classes
-@@ -632,7 +606,6 @@
- $(eval $(call SetupZipArchive,BUILD_SRC_ZIP, \
- SRC := $(SRC_ZIP_SRCS) $(IMAGES_OUTPUTDIR)/src, \
- INCLUDES := $(SRC_ZIP_INCLUDES) launcher, \
-- EXCLUDES := javax/swing/beaninfo, \
- SUFFIXES := .java .c .h, \
- ZIP := $(IMAGES_OUTPUTDIR)/src.zip, \
- EXTRA_DEPS := $(LAUNCHER_ZIP_SRC)))
diff --git a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
b/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
deleted file mode 100644
index 865ecb3..0000000
--- a/java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1424102734 0
-# Mon Feb 16 16:05:34 2015 +0000
-# Node ID 4fdaf786d977aa77afdb68b8829579d31069e39c
-# Parent 01a0011cc101f3308c5876db8282c0fc5e3ba2e6
-PR2236: ppc64le should report its os.arch as ppc64le so tools can detect it
-Summary: Use ppc64le as the arch directory on that platform and report it in os.arch
-
---- openjdk/hotspot/make/defs.make.orig 2015-03-03 17:05:51.000000000 -0500
-+++ openjdk/hotspot/make/defs.make 2015-03-03 19:18:20.000000000 -0500
-@@ -319,6 +319,13 @@
- LIBARCH/ppc64 = ppc64
- LIBARCH/zero = $(ZERO_LIBARCH)
-
-+ # Override LIBARCH for ppc64le
-+ ifeq ($(ARCH), ppc64)
-+ ifeq ($(OPENJDK_TARGET_CPU_ENDIAN), little)
-+ LIBARCH = ppc64le
-+ endif
-+ endif
-+
- LP64_ARCH += sparcv9 amd64 ia64 ppc64 aarch64 zero
- endif
-
diff --git a/java-1.8.0-openjdk-rh1191652-jdk.patch
b/java-1.8.0-openjdk-rh1191652-jdk.patch
deleted file mode 100644
index 5157f40..0000000
--- a/java-1.8.0-openjdk-rh1191652-jdk.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-diff -r 1fe56343ecc8 make/lib/SoundLibraries.gmk
---- openjdk/jdk/make/lib/SoundLibraries.gmk Tue Jan 12 21:01:12 2016 +0000
-+++ openjdk/jdk/make/lib/SoundLibraries.gmk Wed Jan 13 00:18:02 2016 +0000
-@@ -140,6 +140,10 @@
- LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64
- endif
-
-+ ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
-+ LIBJSOUND_CFLAGS += -DX_ARCH=X_PPC64LE
-+ endif
-+
- ifeq ($(OPENJDK_TARGET_CPU), aarch64)
- LIBJSOUND_CFLAGS += -DX_ARCH=X_AARCH64
- endif
-diff -r 1fe56343ecc8 src/share/native/com/sun/media/sound/SoundDefs.h
---- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Tue Jan 12 21:01:12 2016
+0000
-+++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h Wed Jan 13 00:18:02 2016
+0000
-@@ -44,6 +44,8 @@
- #define X_ARM 7
- #define X_PPC 8
- #define X_AARCH64 9
-+#define X_PPC64 10
-+#define X_PPC64LE 11
-
- // **********************************
- // Make sure you set X_PLATFORM and X_ARCH defines correctly.
-diff -r 1fe56343ecc8 src/solaris/bin/ppc64le/jvm.cfg
---- /dev/null Thu Jan 01 00:00:00 1970 +0000
-+++ openjdk/jdk/src/solaris/bin/ppc64le/jvm.cfg Wed Jan 13 00:18:02 2016 +0000
-@@ -0,0 +1,33 @@
-+# Copyright (c) 2011, Oracle and/or its affiliates. All rights reserved.
-+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+#
-+# This code is free software; you can redistribute it and/or modify it
-+# under the terms of the GNU General Public License version 2 only, as
-+# published by the Free Software Foundation. Oracle designates this
-+# particular file as subject to the "Classpath" exception as provided
-+# by Oracle in the LICENSE file that accompanied this code.
-+#
-+# This code is distributed in the hope that it will be useful, but WITHOUT
-+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+# version 2 for more details (a copy is included in the LICENSE file that
-+# accompanied this code).
-+#
-+# You should have received a copy of the GNU General Public License version
-+# 2 along with this work; if not, write to the Free Software Foundation,
-+# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+#
-+# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+# or visit
www.oracle.com if you need additional information or have any
-+# questions.
-+#
-+# List of JVMs that can be used as an option to java, javac, etc.
-+# Order is important -- first in this list is the default JVM.
-+# NOTE that this both this file and its format are UNSUPPORTED and
-+# WILL GO AWAY in a future release.
-+#
-+# You may also select a JVM in an arbitrary location with the
-+# "-XXaltjvm=<jvm_dir>" option, but that too is unsupported
-+# and may not be available in a future release.
-+#
-+-server KNOWN
diff --git a/java-1.8.0-openjdk-rh1191652-root.patch
b/java-1.8.0-openjdk-rh1191652-root.patch
deleted file mode 100644
index 46a9c6f..0000000
--- a/java-1.8.0-openjdk-rh1191652-root.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
---- openjdk///common/autoconf/hotspot-spec.gmk.in
-+++ openjdk///common/autoconf/hotspot-spec.gmk.in
-@@ -71,6 +71,10 @@
- LIBARCH=$(OPENJDK_TARGET_CPU_LEGACY_LIB)
- # Set the cpu architecture
- ARCH=$(OPENJDK_TARGET_CPU_ARCH)
-+# ppc64le uses the HotSpot ppc64 build
-+ifeq ($(OPENJDK_TARGET_CPU), ppc64le)
-+ ARCH=ppc64
-+endif
- # Legacy setting for building for a 64 bit machine.
- # If yes then this expands to _LP64:=1
- @LP64@
-diff --git a/common/autoconf/jdk-options.m4 b/common/autoconf/jdk-options.m4
---- openjdk///common/autoconf/jdk-options.m4
-+++ openjdk///common/autoconf/jdk-options.m4
-@@ -158,7 +158,7 @@
- if test "x$JVM_VARIANT_ZEROSHARK" = xtrue ; then
- INCLUDE_SA=false
- fi
-- if test "x$VAR_CPU" = xppc64 ; then
-+ if test "x$VAR_CPU" = xppc64 -o "x$VAR_CPU" = xppc64le ; then
- INCLUDE_SA=false
- fi
- if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
-diff --git a/common/autoconf/platform.m4 b/common/autoconf/platform.m4
---- openjdk///common/autoconf/platform.m4
-+++ openjdk///common/autoconf/platform.m4
-@@ -67,7 +67,7 @@
- VAR_CPU_ENDIAN=big
- ;;
- powerpc64le)
-- VAR_CPU=ppc64
-+ VAR_CPU=ppc64le
- VAR_CPU_ARCH=ppc
- VAR_CPU_BITS=64
- VAR_CPU_ENDIAN=little
-diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -1123,6 +1123,9 @@
- else
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
- fi
-+ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then
-+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DABI_ELFv2"
-+ fi
- if test "x$OPENJDK_TARGET_OS" = xlinux; then
- COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
- fi
diff --git a/java-1.8.0-openjdk-s390-java-opts.patch
b/java-1.8.0-openjdk-s390-java-opts.patch
deleted file mode 100644
index e2a4313..0000000
--- a/java-1.8.0-openjdk-s390-java-opts.patch
+++ /dev/null
@@ -1,46 +0,0 @@
---- openjdk.orig/common/autoconf/boot-jdk.m4 2016-01-21 18:33:47.586288044 +0000
-+++ openjdk/common/autoconf/boot-jdk.m4 2016-02-05 15:56:09.012242707 +0000
-@@ -1,5 +1,6 @@
- #
- # Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
-+# Copyright 2014 Red Hat, Inc.
- # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- #
- # This code is free software; you can redistribute it and/or modify it
-@@ -303,6 +323,9 @@
-
- AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
- [
-+ # Ensure OPENJDK_TARGET_CPU_ARCH has been setup
-+ AC_REQUIRE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET])
-+
- ##############################################################################
- #
- # Specify options for anything that is run with the Boot JDK.
-@@ -325,16 +348,23 @@
- JAVA_FLAGS=$boot_jdk_jvmargs
- AC_SUBST(JAVA_FLAGS)
-
--
- AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
-
- # Starting amount of heap memory.
-- ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
-+ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
-+ ADD_JVM_ARG_IF_OK([-Xms256M],boot_jdk_jvmargs_big,[$JAVA])
-+ else
-+ ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
-+ fi
-
- # Maximum amount of heap memory.
- # Maximum stack size.
- if test "x$BOOT_JDK_BITS" = x32; then
-- JVM_MAX_HEAP=1100M
-+ if test "x$OPENJDK_BUILD_CPU_ARCH" = "xs390"; then
-+ JVM_MAX_HEAP=768M
-+ else
-+ JVM_MAX_HEAP=1100M
-+ fi
- STACK_SIZE=768
- else
- # Running Javac on a JVM on a 64-bit machine, takes more space since 64-bit
diff --git a/java-1.8.0-openjdk-size_t.patch b/java-1.8.0-openjdk-size_t.patch
deleted file mode 100644
index 6e0d762..0000000
--- a/java-1.8.0-openjdk-size_t.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
----
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
-@@ -2659,7 +2659,7 @@
- if (ResizeOldPLAB && CMSOldPLABResizeQuicker) {
- size_t multiple =
_num_blocks[word_sz]/(CMSOldPLABToleranceFactor*CMSOldPLABNumRefills*n_blks);
- n_blks += CMSOldPLABReactivityFactor*multiple*n_blks;
-- n_blks = MIN2(n_blks, CMSOldPLABMax);
-+ n_blks = MIN2(n_blks, (size_t)CMSOldPLABMax);
- }
- assert(n_blks > 0, "Error");
- _cfls->par_get_chunk_of_blocks(word_sz, n_blks, fl);
-diff --git
a/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
b/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
----
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/concurrentMarkSweep/concurrentMarkSweepGeneration.cpp
-@@ -957,7 +957,7 @@
- if (free_percentage < desired_free_percentage) {
- size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
- assert(desired_capacity >= capacity(), "invalid expansion size");
-- size_t expand_bytes = MAX2(desired_capacity - capacity(), MinHeapDeltaBytes);
-+ size_t expand_bytes = MAX2(desired_capacity - capacity(),
(size_t)MinHeapDeltaBytes);
- if (PrintGCDetails && Verbose) {
- size_t desired_capacity = (size_t)(used() / ((double) 1 -
desired_free_percentage));
- gclog_or_tty->print_cr("\nFrom compute_new_size: ");
-@@ -6577,7 +6577,7 @@
- HeapWord* curAddr = _markBitMap.startWord();
- while (curAddr < _markBitMap.endWord()) {
- size_t remaining = pointer_delta(_markBitMap.endWord(), curAddr);
-- MemRegion chunk(curAddr, MIN2(CMSBitMapYieldQuantum, remaining));
-+ MemRegion chunk(curAddr, MIN2((size_t)CMSBitMapYieldQuantum, remaining));
- _markBitMap.clear_large_range(chunk);
- if (ConcurrentMarkSweepThread::should_yield() &&
- !foregroundGCIsActive() &&
-@@ -6875,7 +6875,7 @@
- return;
- }
- // Double capacity if possible
-- size_t new_capacity = MIN2(_capacity*2, MarkStackSizeMax);
-+ size_t new_capacity = MIN2(_capacity*2, (size_t)MarkStackSizeMax);
- // Do not give up existing stack until we have managed to
- // get the double capacity that we desired.
- ReservedSpace rs(ReservedSpace::allocation_align_size_up(
-diff --git a/src/share/vm/gc_implementation/g1/concurrentMark.cpp
b/src/share/vm/gc_implementation/g1/concurrentMark.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/concurrentMark.cpp
-@@ -3903,7 +3903,7 @@
- // of things to do) or totally (at the very end).
- size_t target_size;
- if (partially) {
-- target_size = MIN2((size_t)_task_queue->max_elems()/3, GCDrainStackTargetSize);
-+ target_size = MIN2((size_t)(_task_queue->max_elems()/3), (size_t)
GCDrainStackTargetSize);
- } else {
- target_size = 0;
- }
-@@ -4707,7 +4707,7 @@
- // The > 0 check is to deal with the prev and next live bytes which
- // could be 0.
- if (*hum_bytes > 0) {
-- bytes = MIN2(HeapRegion::GrainBytes, *hum_bytes);
-+ bytes = MIN2(HeapRegion::GrainBytes, (size_t)*hum_bytes);
- *hum_bytes -= bytes;
- }
- return bytes;
-diff --git a/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
b/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1CollectedHeap.cpp
-@@ -1726,7 +1726,7 @@
-
- verify_region_sets_optional();
-
-- size_t expand_bytes = MAX2(word_size * HeapWordSize, MinHeapDeltaBytes);
-+ size_t expand_bytes = MAX2(word_size * HeapWordSize, (size_t)MinHeapDeltaBytes);
- ergo_verbose1(ErgoHeapSizing,
- "attempt heap expansion",
- ergo_format_reason("allocation request failed")
-diff --git a/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
b/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1PageBasedVirtualSpace.cpp
-@@ -117,7 +117,7 @@
- return reserved_size() - committed_size();
- }
-
--size_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const {
-+uintptr_t G1PageBasedVirtualSpace::addr_to_page_index(char* addr) const {
- return (addr - _low_boundary) / _page_size;
- }
-
-diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
b/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupQueue.cpp
-@@ -38,7 +38,7 @@
- _cancel(false),
- _empty(true),
- _dropped(0) {
-- _nqueues = MAX2(ParallelGCThreads, (size_t)1);
-+ _nqueues = MAX2(ParallelGCThreads, (uintx)1);
- _queues = NEW_C_HEAP_ARRAY(G1StringDedupWorkerQueue, _nqueues, mtGC);
- for (size_t i = 0; i < _nqueues; i++) {
- new (_queues + i)
G1StringDedupWorkerQueue(G1StringDedupWorkerQueue::default_segment_size(),
_max_cache_size, _max_size);
-diff --git a/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
b/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp
-@@ -120,7 +120,7 @@
- };
-
- G1StringDedupEntryCache::G1StringDedupEntryCache(size_t max_size) :
-- _nlists(MAX2(ParallelGCThreads, (size_t)1)),
-+ _nlists(MAX2(ParallelGCThreads, (uintx)1)),
- _max_list_length(0),
- _cached(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)),
- _overflowed(PaddedArray<G1StringDedupEntryList,
mtGC>::create_unfreeable((uint)_nlists)) {
-diff --git a/src/share/vm/gc_implementation/g1/heapRegion.cpp
b/src/share/vm/gc_implementation/g1/heapRegion.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/heapRegion.cpp
-@@ -109,7 +109,7 @@
- if (FLAG_IS_DEFAULT(G1HeapRegionSize)) {
- size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
- region_size = MAX2(average_heap_size / HeapRegionBounds::target_number(),
-- (uintx) HeapRegionBounds::min_size());
-+ HeapRegionBounds::min_size());
- }
-
- int region_size_log = log2_long((jlong) region_size);
-diff --git a/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
b/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
---- openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/parNew/parNewGeneration.cpp
-@@ -194,7 +194,7 @@
- const size_t num_overflow_elems = of_stack->size();
- const size_t space_available = queue->max_elems() - queue->size();
- const size_t num_take_elems = MIN3(space_available / 4,
-- ParGCDesiredObjsFromOverflowList,
-+ (size_t)ParGCDesiredObjsFromOverflowList,
- num_overflow_elems);
- // Transfer the most recent num_take_elems from the overflow
- // stack to our work queue.
-diff --git a/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
b/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
----
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psParallelCompact.cpp
-@@ -910,8 +910,8 @@
- void PSParallelCompact::initialize_dead_wood_limiter()
- {
- const size_t max = 100;
-- _dwl_mean = double(MIN2(ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-- _dwl_std_dev = double(MIN2(ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
-+ _dwl_mean = double(MIN2((size_t)ParallelOldDeadWoodLimiterMean, max)) / 100.0;
-+ _dwl_std_dev = double(MIN2((size_t)ParallelOldDeadWoodLimiterStdDev, max)) / 100.0;
- _dwl_first_term = 1.0 / (sqrt(2.0 * M_PI) * _dwl_std_dev);
- DEBUG_ONLY(_dwl_initialized = true;)
- _dwl_adjustment = normal_distribution(1.0);
-diff --git a/src/share/vm/memory/collectorPolicy.cpp
b/src/share/vm/memory/collectorPolicy.cpp
---- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
-+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp
-@@ -385,7 +385,7 @@
- uintx calculated_size = NewSize + OldSize;
- double shrink_factor = (double) MaxHeapSize / calculated_size;
- uintx smaller_new_size = align_size_down((uintx)(NewSize * shrink_factor),
_gen_alignment);
-- FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
smaller_new_size));
-+ FLAG_SET_ERGO(uintx, NewSize, MAX2(young_gen_size_lower_bound(),
(size_t)smaller_new_size));
- _initial_gen0_size = NewSize;
-
- // OldSize is already aligned because above we aligned MaxHeapSize to
-@@ -433,7 +433,7 @@
- // yield a size that is too small) and bound it by MaxNewSize above.
- // Ergonomics plays here by previously calculating the desired
- // NewSize and MaxNewSize.
-- max_new_size = MIN2(MAX2(max_new_size, NewSize), MaxNewSize);
-+ max_new_size = MIN2(MAX2(max_new_size, (size_t)NewSize), (size_t)MaxNewSize);
- }
- assert(max_new_size > 0, "All paths should set max_new_size");
-
-@@ -455,24 +455,23 @@
- // lower limit.
- _min_gen0_size = NewSize;
- desired_new_size = NewSize;
-- max_new_size = MAX2(max_new_size, NewSize);
-+ max_new_size = MAX2(max_new_size, (size_t)NewSize);
- } else if (FLAG_IS_ERGO(NewSize)) {
- // If NewSize is set ergonomically, we should use it as a lower
- // limit, but use NewRatio to calculate the initial size.
- _min_gen0_size = NewSize;
- desired_new_size =
-- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
-- max_new_size = MAX2(max_new_size, NewSize);
-+ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize);
-+ max_new_size = MAX2(max_new_size, (size_t)NewSize);
- } else {
- // For the case where NewSize is the default, use NewRatio
- // to size the minimum and initial generation sizes.
- // Use the default NewSize as the floor for these values. If
- // NewRatio is overly large, the resulting sizes can be too
- // small.
-- _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size), NewSize);
-+ _min_gen0_size = MAX2(scale_by_NewRatio_aligned(_min_heap_byte_size),
(size_t)NewSize);
- desired_new_size =
-- MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), NewSize);
-- }
-+ MAX2(scale_by_NewRatio_aligned(_initial_heap_byte_size), (size_t)NewSize); }
-
- assert(_min_gen0_size > 0, "Sanity check");
- _initial_gen0_size = desired_new_size;
-@@ -573,7 +572,7 @@
- } else {
- // It's been explicitly set on the command line. Use the
- // OldSize and then determine the consequences.
-- _min_gen1_size = MIN2(OldSize, _min_heap_byte_size - _min_gen0_size);
-+ _min_gen1_size = MIN2((size_t)OldSize, _min_heap_byte_size - _min_gen0_size);
- _initial_gen1_size = OldSize;
-
- // If the user has explicitly set an OldSize that is inconsistent
-diff --git a/src/share/vm/memory/metaspace.cpp b/src/share/vm/memory/metaspace.cpp
---- openjdk/hotspot/src/share/vm/memory/metaspace.cpp
-+++ openjdk/hotspot/src/share/vm/memory/metaspace.cpp
-@@ -1455,7 +1455,7 @@
-
- void MetaspaceGC::post_initialize() {
- // Reset the high-water mark once the VM initialization is done.
-- _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), MetaspaceSize);
-+ _capacity_until_GC = MAX2(MetaspaceAux::committed_bytes(), (size_t)MetaspaceSize);
- }
-
- bool MetaspaceGC::can_expand(size_t word_size, bool is_class) {
-@@ -1515,7 +1515,7 @@
- (size_t)MIN2(min_tmp, double(max_uintx));
- // Don't shrink less than the initial generation size
- minimum_desired_capacity = MAX2(minimum_desired_capacity,
-- MetaspaceSize);
-+ (size_t)MetaspaceSize);
-
- if (PrintGCDetails && Verbose) {
- gclog_or_tty->print_cr("\nMetaspaceGC::compute_new_size: ");
-@@ -1573,7 +1573,7 @@
- const double max_tmp = used_after_gc / minimum_used_percentage;
- size_t maximum_desired_capacity = (size_t)MIN2(max_tmp, double(max_uintx));
- maximum_desired_capacity = MAX2(maximum_desired_capacity,
-- MetaspaceSize);
-+ (size_t)MetaspaceSize);
- if (PrintGCDetails && Verbose) {
- gclog_or_tty->print_cr(" "
- " maximum_free_percentage: %6.2f"
-@@ -3285,7 +3285,7 @@
- // on the medium chunk list. The next chunk will be small and progress
- // from there. This size calculated by -version.
- _first_class_chunk_word_size = MIN2((size_t)MediumChunk*6,
-- (CompressedClassSpaceSize/BytesPerWord)*2);
-+
(size_t)(CompressedClassSpaceSize/BytesPerWord)*2);
- _first_class_chunk_word_size = align_word_size_up(_first_class_chunk_word_size);
- // Arbitrarily set the initial virtual space to a multiple
- // of the boot class loader size.
-diff --git a/src/share/vm/memory/threadLocalAllocBuffer.cpp
b/src/share/vm/memory/threadLocalAllocBuffer.cpp
---- openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
-+++ openjdk/hotspot/src/share/vm/memory/threadLocalAllocBuffer.cpp
-@@ -238,13 +238,13 @@
- size_t init_sz = 0;
-
- if (TLABSize > 0) {
-- init_sz = TLABSize / HeapWordSize;
-+ init_sz = (size_t)(TLABSize / HeapWordSize);
- } else if (global_stats() != NULL) {
- // Initial size is a function of the average number of allocating threads.
- unsigned nof_threads = global_stats()->allocating_threads_avg();
-
-- init_sz = (Universe::heap()->tlab_capacity(myThread()) / HeapWordSize) /
-- (nof_threads * target_refills());
-+ init_sz = (size_t)((Universe::heap()->tlab_capacity(myThread()) / HeapWordSize)
/
-+ (nof_threads * target_refills()));
- init_sz = align_object_size(init_sz);
- }
- init_sz = MIN2(MAX2(init_sz, min_size()), max_size());
-diff --git a/src/share/vm/oops/objArrayKlass.inline.hpp
b/src/share/vm/oops/objArrayKlass.inline.hpp
---- openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
-+++ openjdk/hotspot/src/share/vm/oops/objArrayKlass.inline.hpp
-@@ -48,7 +48,7 @@
- const size_t beg_index = size_t(index);
- assert(beg_index < len || len == 0, "index too large");
-
-- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
- const size_t end_index = beg_index + stride;
- T* const base = (T*)a->base();
- T* const beg = base + beg_index;
-@@ -82,7 +82,7 @@
- const size_t beg_index = size_t(index);
- assert(beg_index < len || len == 0, "index too large");
-
-- const size_t stride = MIN2(len - beg_index, ObjArrayMarkingStride);
-+ const size_t stride = MIN2(len - beg_index, (size_t)ObjArrayMarkingStride);
- const size_t end_index = beg_index + stride;
- T* const base = (T*)a->base();
- T* const beg = base + beg_index;
-diff --git a/src/share/vm/runtime/arguments.cpp b/src/share/vm/runtime/arguments.cpp
---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1283,7 +1283,7 @@
- // NewSize was set on the command line and it is larger than
- // preferred_max_new_size.
- if (!FLAG_IS_DEFAULT(NewSize)) { // NewSize explicitly set at command-line
-- FLAG_SET_ERGO(uintx, MaxNewSize, MAX2(NewSize, preferred_max_new_size));
-+ FLAG_SET_ERGO(uintx, MaxNewSize, MAX2((size_t)NewSize, preferred_max_new_size));
- } else {
- FLAG_SET_ERGO(uintx, MaxNewSize, preferred_max_new_size);
- }
-@@ -1308,8 +1308,8 @@
- // Unless explicitly requested otherwise, make young gen
- // at least min_new, and at most preferred_max_new_size.
- if (FLAG_IS_DEFAULT(NewSize)) {
-- FLAG_SET_ERGO(uintx, NewSize, MAX2(NewSize, min_new));
-- FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, NewSize));
-+ FLAG_SET_ERGO(uintx, NewSize, MAX2((size_t)NewSize, min_new));
-+ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize));
- if (PrintGCDetails && Verbose) {
- // Too early to use gclog_or_tty
- tty->print_cr("CMS ergo set NewSize: " SIZE_FORMAT, NewSize);
-@@ -1319,7 +1319,7 @@
- // so it's NewRatio x of NewSize.
- if (FLAG_IS_DEFAULT(OldSize)) {
- if (max_heap > NewSize) {
-- FLAG_SET_ERGO(uintx, OldSize, MIN2(NewRatio*NewSize, max_heap - NewSize));
-+ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap -
NewSize));
- if (PrintGCDetails && Verbose) {
- // Too early to use gclog_or_tty
- tty->print_cr("CMS ergo set OldSize: " SIZE_FORMAT, OldSize);
diff --git a/pr2842-01.patch b/pr2842-01.patch
deleted file mode 100644
index faaa309..0000000
--- a/pr2842-01.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-# HG changeset patch
-# User mduigou
-# Date 1389723922 28800
-# Tue Jan 14 10:25:22 2014 -0800
-# Node ID 842cc183c9f6d29270ff002238248978c08f0a66
-# Parent f0635543beb309c4da1bb88c906a76ee4b75e16d
-8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Reviewed-by: erikj, ihse
-
-diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -230,8 +230,8 @@
- $1="$PROPER_COMPILER_$1"
- else
- AC_MSG_RESULT([no, keeping $1])
-- $1="$TEST_COMPILER"
- fi
-+
- TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
- ])
-
diff --git a/pr2842-02.patch b/pr2842-02.patch
deleted file mode 100644
index 1812e19..0000000
--- a/pr2842-02.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-# HG changeset patch
-# User ihse
-# Date 1454642639 0
-# Fri Feb 05 03:23:59 2016 +0000
-# Node ID 61798573efe5a9efa67e268a52cf61263abb4396
-# Parent 842cc183c9f6d29270ff002238248978c08f0a66
-8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Reviewed-by: erikj
-
-diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
---- openjdk///common/autoconf/toolchain.m4
-+++ openjdk///common/autoconf/toolchain.m4
-@@ -198,38 +198,22 @@
- fi
- BASIC_FIXUP_EXECUTABLE($1)
- TEST_COMPILER="[$]$1"
-- # Don't remove symbolic links on AIX because 'xlc_r' and 'xlC_r'
may all be links
-- # to 'xlc' but it is crucial that we invoke the compiler with the right name!
-- if test "x$OPENJDK_BUILD_OS" != xaix; then
-- AC_MSG_CHECKING([resolved symbolic links for $1])
-- BASIC_REMOVE_SYMBOLIC_LINKS(TEST_COMPILER)
-- AC_MSG_RESULT([$TEST_COMPILER])
-- fi
-- AC_MSG_CHECKING([if $1 is disguised ccache])
-
-- COMPILER_BASENAME=`$BASENAME "$TEST_COMPILER"`
-- if test "x$COMPILER_BASENAME" = "xccache"; then
-- AC_MSG_RESULT([yes, trying to find proper $COMPILER_NAME compiler])
-- # We /usr/lib/ccache in the path, so cc is a symlink to /usr/bin/ccache.
-- # We want to control ccache invocation ourselves, so ignore this cc and try
-- # searching again.
-+ AC_MSG_CHECKING([resolved symbolic links for $1])
-+ SYMLINK_ORIGINAL="$TEST_COMPILER"
-+ BASIC_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
-+ if test "x$TEST_COMPILER" = "x$SYMLINK_ORIGINAL"; then
-+ AC_MSG_RESULT([no symlink])
-+ else
-+ AC_MSG_RESULT([$SYMLINK_ORIGINAL])
-
-- # Remove the path to the fake ccache cc from the PATH
-- RETRY_COMPILER_SAVED_PATH="$PATH"
-- COMPILER_DIRNAME=`$DIRNAME [$]$1`
-- PATH="`$ECHO $PATH | $SED -e "s,$COMPILER_DIRNAME,,g" -e
"s,::,:,g" -e "s,^:,,g"`"
--
-- # Try again looking for our compiler
-- AC_CHECK_TOOLS(PROPER_COMPILER_$1, $3)
-- BASIC_FIXUP_EXECUTABLE(PROPER_COMPILER_$1)
-- PATH="$RETRY_COMPILER_SAVED_PATH"
--
-- AC_MSG_CHECKING([for resolved symbolic links for $1])
-- BASIC_REMOVE_SYMBOLIC_LINKS(PROPER_COMPILER_$1)
-- AC_MSG_RESULT([$PROPER_COMPILER_$1])
-- $1="$PROPER_COMPILER_$1"
-- else
-- AC_MSG_RESULT([no, keeping $1])
-+ # We can't handle ccache by gcc wrappers, since we need to know if we're
-+ # using ccache. Instead ccache usage must be controlled by a configure option.
-+ COMPILER_BASENAME=`$BASENAME "$SYMLINK_ORIGINAL"`
-+ if test "x$COMPILER_BASENAME" = "xccache"; then
-+ AC_MSG_NOTICE([Please use --enable-ccache instead of providing a wrapped
compiler.])
-+ AC_MSG_ERROR([$TEST_COMPILER is a symbolic link to ccache. This is not
supported.])
-+ fi
- fi
-
- TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
diff --git a/pr3183-rh1340845-system-crypto-policy.patch
b/pr3183-rh1340845-system-crypto-policy.patch
new file mode 100644
index 0000000..5a619b4
--- /dev/null
+++ b/pr3183-rh1340845-system-crypto-policy.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.
+ *
++ * <p>Additional default values of security properties are read from a
++ * system-specific location, if available.</p>
++ *
+ * @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/pr3183.patch b/pr3183.patch
deleted file mode 100644
index 5a619b4..0000000
--- a/pr3183.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-
-# 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.
- *
-+ * <p>Additional default values of security properties are read from a
-+ * system-specific location, if available.</p>
-+ *
- * @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/pr3539-rh1548475.patch b/pr3539-rh1548475.patch
deleted file mode 100644
index 9b40a7f..0000000
--- a/pr3539-rh1548475.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1526065930 -3600
-# Fri May 11 20:12:10 2018 +0100
-# Node ID b8fc1e640c4c7f38ca94131279cb67c4d3de6961
-# Parent afb31413c73cbc06420fdb447aa90a7a38258904
-PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-
-diff --git openjdk.orig/hotspot/make/aix/makefiles/jsig.make
openjdk/hotspot/make/aix/makefiles/jsig.make
---- openjdk.orig/hotspot/make/aix/makefiles/jsig.make
-+++ openjdk/hotspot/make/aix/makefiles/jsig.make
-@@ -45,7 +45,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- LFLAGS_JSIG += $(BIN_UTILS)
-
-diff --git openjdk.orig/hotspot/make/aix/makefiles/saproc.make
openjdk/hotspot/make/aix/makefiles/saproc.make
---- openjdk.orig/hotspot/make/aix/makefiles/saproc.make
-+++ openjdk/hotspot/make/aix/makefiles/saproc.make
-@@ -66,7 +66,7 @@
- endif
-
-
--SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- $(LIBSAPROC): $(SASRCFILES) $(SAMAPFILE)
- $(QUIETLY) if [ "$(BOOT_JAVA_HOME)" = "" ]; then \
-diff --git openjdk.orig/hotspot/make/aix/makefiles/vm.make
openjdk/hotspot/make/aix/makefiles/vm.make
---- openjdk.orig/hotspot/make/aix/makefiles/vm.make
-+++ openjdk/hotspot/make/aix/makefiles/vm.make
-@@ -117,7 +117,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
openjdk/hotspot/make/bsd/makefiles/jsig.make
---- openjdk.orig/hotspot/make/bsd/makefiles/jsig.make
-+++ openjdk/hotspot/make/bsd/makefiles/jsig.make
-@@ -52,7 +52,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE)
-+LFLAGS_JSIG += -D_GNU_SOURCE -pthread $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- # DEBUG_BINARIES overrides everything, use full -g debug information
- ifeq ($(DEBUG_BINARIES), true)
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
openjdk/hotspot/make/bsd/makefiles/saproc.make
---- openjdk.orig/hotspot/make/bsd/makefiles/saproc.make
-+++ openjdk/hotspot/make/bsd/makefiles/saproc.make
-@@ -114,7 +114,7 @@
- # bring in minimum version argument or we'll fail on OSX 10.10
- SA_LFLAGS = $(LFLAGS)
- endif
--SA_LFLAGS += $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS += $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- BOOT_JAVA_INCLUDES = -I$(BOOT_JAVA_HOME)/include \
- -I$(BOOT_JAVA_HOME)/include/$(shell uname -s | tr "[:upper:]"
"[:lower:]")
-diff --git openjdk.orig/hotspot/make/bsd/makefiles/vm.make
openjdk/hotspot/make/bsd/makefiles/vm.make
---- openjdk.orig/hotspot/make/bsd/makefiles/vm.make
-+++ openjdk/hotspot/make/bsd/makefiles/vm.make
-@@ -119,7 +119,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
-diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make
openjdk/hotspot/make/linux/makefiles/jsig.make
---- openjdk.orig/hotspot/make/linux/makefiles/jsig.make
-+++ openjdk/hotspot/make/linux/makefiles/jsig.make
-@@ -44,7 +44,7 @@
- # cause problems with interposing. See CR: 6466665
- # LFLAGS_JSIG += $(MAPFLAG:FILENAME=$(LIBJSIG_MAPFILE))
-
--LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE)
$(LDFLAGS_NO_EXEC_STACK)
-+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(LDFLAGS_NO_EXEC_STACK)
$(EXTRA_LDFLAGS)
-
- # DEBUG_BINARIES overrides everything, use full -g debug information
- ifeq ($(DEBUG_BINARIES), true)
-diff --git openjdk.orig/hotspot/make/linux/makefiles/saproc.make
openjdk/hotspot/make/linux/makefiles/saproc.make
---- openjdk.orig/hotspot/make/linux/makefiles/saproc.make
-+++ openjdk/hotspot/make/linux/makefiles/saproc.make
-@@ -73,7 +73,7 @@
- else
- ALT_SAINCDIR=
- endif
--SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE)
-+SA_LFLAGS = $(MAPFLAG:FILENAME=$(SAMAPFILE)) $(LDFLAGS_HASH_STYLE) $(EXTRA_LDFLAGS)
-
- SAARCH ?= $(BUILDARCH)
-
-diff --git openjdk.orig/hotspot/make/linux/makefiles/vm.make
openjdk/hotspot/make/linux/makefiles/vm.make
---- openjdk.orig/hotspot/make/linux/makefiles/vm.make
-+++ openjdk/hotspot/make/linux/makefiles/vm.make
-@@ -122,7 +122,7 @@
-
- # Extra flags from gnumake's invocation or environment
- CFLAGS += $(EXTRA_CFLAGS)
--LFLAGS += $(EXTRA_CFLAGS)
-+LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
-
- # Don't set excutable bit on stack segment
- # the same could be done by separate execstack command
diff --git a/rh1176206-jdk.patch b/rh1176206-jdk.patch
deleted file mode 100644
index 23b8e52..0000000
--- a/rh1176206-jdk.patch
+++ /dev/null
@@ -1,67 +0,0 @@
---- openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.497484904 +0100
-+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk 2016-02-29 17:11:00.402486574 +0100
-@@ -618,7 +618,7 @@
- XRSurfaceData.c \
- XRBackendNative.c
-
-- LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender $(LIBDL) -lXtst
-lXi -ljava -ljvm -lc
-+ LIBAWT_XAWT_LDFLAGS_SUFFIX := $(LIBM) -lawt -lXext -lX11 -lXrender -lXcomposite
$(LIBDL) -lXtst -lXi -ljava -ljvm -lc
-
- ifeq ($(OPENJDK_TARGET_OS), linux)
- # To match old build, add this to LDFLAGS instead of suffix.
---- openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.777479982
+0100
-+++ openjdk/jdk/src/solaris/native/sun/awt/awt_Robot.c 2016-02-29 17:11:00.677481740
+0100
-@@ -38,6 +38,7 @@
- #include <X11/extensions/XTest.h>
- #include <X11/extensions/XInput.h>
- #include <X11/extensions/XI.h>
-+#include <X11/extensions/Xcomposite.h>
- #include <jni.h>
- #include <sizecalc.h>
- #include "robot_common.h"
-@@ -88,6 +89,32 @@
- return isXTestAvailable;
- }
-
-+static Bool hasXCompositeOverlayExtension(Display *display) {
-+
-+ int xoverlay = False;
-+ int eventBase, errorBase;
-+ if (XCompositeQueryExtension(display, &eventBase, &errorBase)) {
-+ int major = 0;
-+ int minor = 0;
-+
-+ XCompositeQueryVersion(display, &major, &minor);
-+ if (major > 0 || minor >= 3)
-+ xoverlay = True;
-+ }
-+
-+ return xoverlay;
-+}
-+
-+static jboolean isXCompositeDisplay(Display *display, int screenNumber) {
-+
-+ char NET_WM_CM_Sn[25];
-+ snprintf(NET_WM_CM_Sn, sizeof(NET_WM_CM_Sn), "_NET_WM_CM_S%d\0",
screenNumber);
-+
-+ Atom managerSelection = XInternAtom(display, NET_WM_CM_Sn, 0);
-+ Window owner = XGetSelectionOwner(display, managerSelection);
-+
-+ return owner != 0;
-+}
-
- static XImage *getWindowImage(Display * display, Window window,
- int32_t x, int32_t y,
-@@ -232,6 +259,12 @@
- DASSERT(adata != NULL);
-
- rootWindow = XRootWindow(awt_display, adata->awt_visInfo.screen);
-+ if (isXCompositeDisplay(awt_display, adata->awt_visInfo.screen) &&
-+ hasXCompositeOverlayExtension(awt_display))
-+ {
-+ rootWindow = XCompositeGetOverlayWindow(awt_display, rootWindow);
-+ }
-+
- image = getWindowImage(awt_display, rootWindow, x, y, width, height);
-
- /* Array to use to crunch around the pixel values */
diff --git a/rh1176206-root.patch b/rh1176206-root.patch
deleted file mode 100644
index db1061c..0000000
--- a/rh1176206-root.patch
+++ /dev/null
@@ -1,31 +0,0 @@
---- openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.542747800 +0100
-+++ openjdk/common/autoconf/help.m4 2016-02-29 17:10:45.500748539 +0100
-@@ -112,7 +112,7 @@
- pulse)
- PKGHANDLER_COMMAND="sudo apt-get install libpulse-dev" ;;
- x11)
-- PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev" ;;
-+ PKGHANDLER_COMMAND="sudo apt-get install libX11-dev libxext-dev
libxrender-dev libxtst-dev libxt-dev libXcomposite-dev" ;;
- ccache)
- PKGHANDLER_COMMAND="sudo apt-get install ccache" ;;
- esac
---- openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.716744742 +0100
-+++ openjdk/common/autoconf/libraries.m4 2016-02-29 17:10:45.675745462 +0100
-@@ -153,7 +153,7 @@
- CFLAGS="$CFLAGS $X_CFLAGS"
-
- # Need to include Xlib.h and Xutil.h to avoid "present but cannot be
compiled" warnings on Solaris 10
-- AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h],
-+ AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h
X11/extensions/XTest.h X11/Intrinsic.h X11/extensions/Xcomposite.h],
- [X11_A_OK=yes],
- [X11_A_OK=no; break],
- [
-@@ -167,7 +167,7 @@
-
- if test "x$X11_A_OK" = xno && test "x$X11_NOT_NEEDED" !=
xyes; then
- HELP_MSG_MISSING_DEPENDENCY([x11])
-- AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h
Intrinsic.h). $HELP_MSG])
-+ AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h XTest.h Intrinsic.h
Xcomposite.h). $HELP_MSG])
- fi
-
- AC_SUBST(X_CFLAGS)
diff --git a/rh1214835.patch b/rh1214835.patch
deleted file mode 100644
index eba79a6..0000000
--- a/rh1214835.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-# HG changeset patch
-# User andrew
-# Date 1429893959 -3600
-# Fri Apr 24 17:45:59 2015 +0100
-# Node ID 6e3f4784affc0de360d763ad69979690b2650a98
-# Parent 75acb9c0991bc118463debed137d38ce40358bc0
-4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
-
-diff -r 75acb9c0991b -r 6e3f4784affc src/share/demo/jvmti/hprof/hprof_init.c
---- openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Thu Jun 04 18:00:35 2015 +0100
-+++ openjdk/jdk/src/share/demo/jvmti/hprof/hprof_init.c Fri Apr 24 17:45:59 2015 +0100
-@@ -1361,7 +1361,7 @@
- } rawMonitorExit(gdata->dump_lock);
-
- /* Dump everything if we need to */
-- if (gdata->dump_on_exit && need_to_dump) {
-+ if (gdata->dump_on_exit || need_to_dump) {
-
- dump_all_data(env);
- }
commit 9373f917361e487ef9a6fdd083d194ea7e910392
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 25 10:43:21 2018 +0200
Backpoerted %{majorver} and #ARCH# patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 87bcb03..849aa98 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1291,7 +1291,7 @@ BuildRequires: systemtap-sdt-devel
%{java_rpo %{nil}}
%description
-The %{origin_nice} runtime environment.
+The %{origin_nice} runtime environment %{majorver}.
%if %{include_debug_build}
%package debug
@@ -1300,7 +1300,7 @@ Group: Development/Languages
%{java_rpo -- %{debug_suffix_unquoted}}
%description debug
-The %{origin_nice} runtime environment.
+The %{origin_nice} runtime environment %{majorver}.
%{debug_warning}
%endif
@@ -1317,7 +1317,7 @@ The %{origin_nice} runtime environment %{majorver} without audio and
video suppo
%if %{include_debug_build}
%package headless-debug
-Summary: %{origin_nice} Runtime Environment %{debug_on}
+Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
Group: Development/Languages
%{java_headless_rpo -- %{debug_suffix_unquoted}}
@@ -1688,7 +1688,7 @@ for file in %{SOURCE9} %{SOURCE10} ; do
sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
- sed -i -e "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_MAJOR_VERSION@:%{javaver}:g" $OUTPUT_FILE
sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
done
done
diff --git a/policytool.desktop.in b/policytool.desktop.in
index e05969d..e38c0ec 100644
--- a/policytool.desktop.in
+++ b/policytool.desktop.in
@@ -1,6 +1,6 @@
[Desktop Entry]
-Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool #ARCH#
-Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files #ARCH#
+Name=OpenJDK @JAVA_MAJOR_VERSION@ Policy Tool @ARCH@
+Comment=Manage OpenJDK @JAVA_MAJOR_VERSION@ policy files @ARCH@
Exec=@JRE_HOME@/policytool
Icon=java-@JAVA_MAJOR_VERSION@-@JAVA_VENDOR@
Terminal=false
commit ccf28aacc7e72c84f8273d5a03b57a03b0cba715
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Thu Oct 25 10:18:46 2018 +0200
patch 206 and 207 moved to u202 section
-Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
-Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index a5f708b..87bcb03 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1124,9 +1124,6 @@ Patch575: 8197981-pr3548.patch
Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
-# 8207057, PR3613: Enable debug information for assembly code files
-Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
-Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: 8203030-size_t-fixes.patch
# 8210761: libjsig is being compiled without optimization
@@ -1189,6 +1186,9 @@ Patch100: 8201495-s390-java-opts.patch
#############################################
# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
Patch508: 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
+# 8207057, PR3613: Enable debug information for assembly code files
+Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
+Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
Patch210: 8165852-pr3468.patch
# S8073139, RH1191652; fix name of ppc64le architecture
commit 2bf660acccbd98d214e488eb1902228a9246a02f
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Wed Oct 24 17:37:26 2018 +0200
cups moved to headful package
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c9f6598..a5f708b 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -832,6 +832,7 @@ Requires: %{name}-headless%{?1}%{?_isa} =
%{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
# for java-X-openjdk package's desktop binding
Recommends: gtk2%{?_isa}
+Suggests: cups
Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
@@ -871,7 +872,7 @@ Requires(postun): %{_sbindir}/alternatives
# in version 1.7 and higher for --family switch
Requires(postun): chkconfig >= 1.7
# for optional support of kernel stream control, card reader and printing bindings
-Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups
+Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}
# Standard JPackage base provides
Provides: jre-headless%{?1} = %{epoch}:%{javaver}
@@ -2277,6 +2278,9 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-2
+- cups moved to headful package
+
* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
- updated to aarch64-shenandoah-jdk8u191-b12
- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
commit 3b404b43c83816a785a95aa33f99020fc23d755b
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Tue Oct 23 17:51:44 2018 +0200
Removed and adapted patches to u191.
Added changelog for u 191
diff --git a/8146115-pr3508-rh1463098.patch b/8146115-pr3508-rh1463098.patch
deleted file mode 100644
index a04728b..0000000
--- a/8146115-pr3508-rh1463098.patch
+++ /dev/null
@@ -1,1494 +0,0 @@
-# HG changeset patch
-# User poonam
-# Date 1530903013 0
-# Fri Jul 06 18:50:13 2018 +0000
-# Node ID 2f2d2af6fa5c44e67e0a9987f56392315a1e4b64
-# Parent 95b72537801cc9946c27ad27f07e3f0790a21b08
-8146115, PR3508, RH1463098: Improve docker container detection and resource configuration
usage
-Reviewed-by: bobv, dbuck
-
-diff --git openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
openjdk/hotspot/src/os/aix/vm/os_aix.cpp
---- openjdk.orig/hotspot/src/os/aix/vm/os_aix.cpp
-+++ openjdk/hotspot/src/os/aix/vm/os_aix.cpp
-@@ -4008,6 +4008,16 @@
- };
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- int online_cpus = ::sysconf(_SC_NPROCESSORS_ONLN);
- assert(online_cpus > 0 && online_cpus <= processor_count(), "sanity
check");
- return online_cpus;
-diff --git openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
---- openjdk.orig/hotspot/src/os/bsd/vm/os_bsd.cpp
-+++ openjdk/hotspot/src/os/bsd/vm/os_bsd.cpp
-@@ -3770,6 +3770,16 @@
- };
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- return _processor_count;
- }
-
-diff --git openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
---- openjdk.orig/hotspot/src/os/linux/vm/globals_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/globals_linux.hpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 2005, 2016, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 2005, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
-@@ -49,8 +49,13 @@
- product(bool, UseSHM, false, \
- "Use SYSV shared memory for large pages") \
- \
-- diagnostic(bool, PrintActiveCpus, false, \
-- "Print the number of CPUs detected in os::active_processor_count")
-+ product(bool, UseContainerSupport, true, \
-+ "Enable detection and runtime container configuration support") \
-+ \
-+ product(bool, PreferContainerQuotaForCPUCount, true, \
-+ "Calculate the container CPU availability based on the value" \
-+ " of quotas (if set), when true. Otherwise, use the CPU" \
-+ " shares value, provided it is less than quota.")
-
- //
- // Defines Linux-specific default values. The flags are available on all
-diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.cpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.cpp
-@@ -0,0 +1,680 @@
-+/*
-+ * Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit
www.oracle.com if you need additional information or have any
-+ * questions.
-+ *
-+ */
-+
-+#include <string.h>
-+#include <math.h>
-+#include <errno.h>
-+#include "utilities/globalDefinitions.hpp"
-+#include "memory/allocation.hpp"
-+#include "runtime/os.hpp"
-+#include "osContainer_linux.hpp"
-+
-+#define PER_CPU_SHARES 1024
-+
-+bool OSContainer::_is_initialized = false;
-+bool OSContainer::_is_containerized = false;
-+julong _unlimited_memory;
-+
-+class CgroupSubsystem: CHeapObj<mtInternal> {
-+ friend class OSContainer;
-+
-+ private:
-+ /* mountinfo contents */
-+ char *_root;
-+ char *_mount_point;
-+
-+ /* Constructed subsystem directory */
-+ char *_path;
-+
-+ public:
-+ CgroupSubsystem(char *root, char *mountpoint) {
-+ _root = os::strdup(root);
-+ _mount_point = os::strdup(mountpoint);
-+ _path = NULL;
-+ }
-+
-+ /*
-+ * Set directory to subsystem specific files based
-+ * on the contents of the mountinfo and cgroup files.
-+ */
-+ void set_subsystem_path(char *cgroup_path) {
-+ char buf[MAXPATHLEN+1];
-+ if (_root != NULL && cgroup_path != NULL) {
-+ if (strcmp(_root, "/") == 0) {
-+ int buflen;
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ if (strcmp(cgroup_path,"/") != 0) {
-+ buflen = strlen(buf);
-+ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
-+ return;
-+ }
-+ strncat(buf, cgroup_path, MAXPATHLEN-buflen);
-+ buf[MAXPATHLEN-1] = '\0';
-+ }
-+ _path = os::strdup(buf);
-+ } else {
-+ if (strcmp(_root, cgroup_path) == 0) {
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ _path = os::strdup(buf);
-+ } else {
-+ char *p = strstr(_root, cgroup_path);
-+ if (p != NULL && p == _root) {
-+ if (strlen(cgroup_path) > strlen(_root)) {
-+ int buflen;
-+ strncpy(buf, _mount_point, MAXPATHLEN);
-+ buf[MAXPATHLEN-1] = '\0';
-+ buflen = strlen(buf);
-+ if ((buflen + strlen(cgroup_path)) > (MAXPATHLEN-1)) {
-+ return;
-+ }
-+ strncat(buf, cgroup_path + strlen(_root), MAXPATHLEN-buflen);
-+ buf[MAXPATHLEN-1] = '\0';
-+ _path = os::strdup(buf);
-+ }
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ char *subsystem_path() { return _path; }
-+};
-+
-+CgroupSubsystem* memory = NULL;
-+CgroupSubsystem* cpuset = NULL;
-+CgroupSubsystem* cpu = NULL;
-+CgroupSubsystem* cpuacct = NULL;
-+
-+typedef char * cptr;
-+
-+PRAGMA_DIAG_PUSH
-+PRAGMA_FORMAT_NONLITERAL_IGNORED
-+template <typename T> int subsystem_file_contents(CgroupSubsystem* c,
-+ const char *filename,
-+ const char *scan_fmt,
-+ T returnval) {
-+ FILE *fp = NULL;
-+ char *p;
-+ char file[MAXPATHLEN+1];
-+ char buf[MAXPATHLEN+1];
-+
-+ if (c == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("subsystem_file_contents: CgroupSubsytem* is NULL");
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+ if (c->subsystem_path() == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("subsystem_file_contents: subsystem path is NULL");
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+
-+ strncpy(file, c->subsystem_path(), MAXPATHLEN);
-+ file[MAXPATHLEN-1] = '\0';
-+ int filelen = strlen(file);
-+ if ((filelen + strlen(filename)) > (MAXPATHLEN-1)) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("File path too long %s, %s", file, filename);
-+ }
-+ return OSCONTAINER_ERROR;
-+ }
-+ strncat(file, filename, MAXPATHLEN-filelen);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Path to %s is %s", filename, file);
-+ }
-+ fp = fopen(file, "r");
-+ if (fp != NULL) {
-+ p = fgets(buf, MAXPATHLEN, fp);
-+ if (p != NULL) {
-+ int matched = sscanf(p, scan_fmt, returnval);
-+ if (matched == 1) {
-+ fclose(fp);
-+ return 0;
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Type %s not found in file %s", scan_fmt, file);
-+ }
-+ }
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Empty file %s", file);
-+ }
-+ }
-+ } else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Open of file %s failed, %s", file, strerror(errno));
-+ }
-+ }
-+ if (fp != NULL)
-+ fclose(fp);
-+ return OSCONTAINER_ERROR;
-+}
-+PRAGMA_DIAG_POP
-+
-+#define GET_CONTAINER_INFO(return_type, subsystem, filename, \
-+ logstring, scan_fmt, variable) \
-+ return_type variable; \
-+{ \
-+ int err; \
-+ err = subsystem_file_contents(subsystem, \
-+ filename, \
-+ scan_fmt, \
-+ &variable); \
-+ if (err != 0) \
-+ return (return_type) OSCONTAINER_ERROR; \
-+ \
-+ if (PrintContainerInfo) \
-+ tty->print_cr(logstring, variable); \
-+}
-+
-+#define GET_CONTAINER_INFO_CPTR(return_type, subsystem, filename, \
-+ logstring, scan_fmt, variable, bufsize) \
-+ char variable[bufsize]; \
-+{ \
-+ int err; \
-+ err = subsystem_file_contents(subsystem, \
-+ filename, \
-+ scan_fmt, \
-+ variable); \
-+ if (err != 0) \
-+ return (return_type) NULL; \
-+ \
-+ if (PrintContainerInfo) \
-+ tty->print_cr(logstring, variable); \
-+}
-+
-+/* init
-+ *
-+ * Initialize the container support and determine if
-+ * we are running under cgroup control.
-+ */
-+void OSContainer::init() {
-+ int mountid;
-+ int parentid;
-+ int major;
-+ int minor;
-+ FILE *mntinfo = NULL;
-+ FILE *cgroup = NULL;
-+ char buf[MAXPATHLEN+1];
-+ char tmproot[MAXPATHLEN+1];
-+ char tmpmount[MAXPATHLEN+1];
-+ char tmpbase[MAXPATHLEN+1];
-+ char *p;
-+ jlong mem_limit;
-+
-+ assert(!_is_initialized, "Initializing OSContainer more than once");
-+
-+ _is_initialized = true;
-+ _is_containerized = false;
-+
-+ _unlimited_memory = (LONG_MAX / os::vm_page_size()) * os::vm_page_size();
-+
-+ if (PrintContainerInfo) {
-+ tty->print_cr("OSContainer::init: Initializing Container Support");
-+ }
-+ if (!UseContainerSupport) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Container Support not enabled");
-+ }
-+ return;
-+ }
-+
-+ /*
-+ * Find the cgroup mount point for memory and cpuset
-+ * by reading /proc/self/mountinfo
-+ *
-+ * Example for docker:
-+ * 219 214 0:29
/docker/7208cebd00fa5f2e342b1094f7bed87fa25661471a4637118e65f1c995be8a34
/sys/fs/cgroup/memory ro,nosuid,nodev,noexec,relatime - cgroup cgroup rw,memory
-+ *
-+ * Example for host:
-+ * 34 28 0:29 / /sys/fs/cgroup/memory rw,nosuid,nodev,noexec,relatime shared:16 -
cgroup cgroup rw,memory
-+ */
-+ mntinfo = fopen("/proc/self/mountinfo", "r");
-+ if (mntinfo == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Can't open /proc/self/mountinfo, %s",
-+ strerror(errno));
-+ }
-+ return;
-+ }
-+
-+ while ( (p = fgets(buf, MAXPATHLEN, mntinfo)) != NULL) {
-+ // Look for the filesystem type and see if it's cgroup
-+ char fstype[MAXPATHLEN+1];
-+ fstype[0] = '\0';
-+ char *s = strstr(p, " - ");
-+ if (s != NULL &&
-+ sscanf(s, " - %s", fstype) == 1 &&
-+ strcmp(fstype, "cgroup") == 0) {
-+
-+ if (strstr(p, "memory") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ memory = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and memory:
%s", p);
-+ }
-+ } else if (strstr(p, "cpuset") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpuset = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpuset:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpu,cpuacct") != NULL || strstr(p,
"cpuacct,cpu") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpu = new CgroupSubsystem(tmproot, tmpmount);
-+ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpu,cpuacct:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpuacct") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpuacct = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpuacct:
%s", p);
-+ }
-+ }
-+ } else if (strstr(p, "cpu") != NULL) {
-+ int matched = sscanf(p, "%d %d %d:%d %s %s",
-+ &mountid,
-+ &parentid,
-+ &major,
-+ &minor,
-+ tmproot,
-+ tmpmount);
-+ if (matched == 6) {
-+ cpu = new CgroupSubsystem(tmproot, tmpmount);
-+ }
-+ else {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Incompatible str containing cgroup and cpu: %s",
p);
-+ }
-+ }
-+ }
-+ }
-+ }
-+
-+ fclose(mntinfo);
-+
-+ if (memory == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup memory subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpuset == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpuset subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpu == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpu subsystem not found");
-+ }
-+ return;
-+ }
-+ if (cpuacct == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Required cgroup cpuacct subsystem not found");
-+ }
-+ return;
-+ }
-+
-+ /*
-+ * Read /proc/self/cgroup and map host mount point to
-+ * local one via /proc/self/mountinfo content above
-+ *
-+ * Docker example:
-+ * 5:memory:/docker/6558aed8fc662b194323ceab5b964f69cf36b3e8af877a14b80256e93aecb044
-+ *
-+ * Host example:
-+ * 5:memory:/user.slice
-+ *
-+ * Construct a path to the process specific memory and cpuset
-+ * cgroup directory.
-+ *
-+ * For a container running under Docker from memory example above
-+ * the paths would be:
-+ *
-+ * /sys/fs/cgroup/memory
-+ *
-+ * For a Host from memory example above the path would be:
-+ *
-+ * /sys/fs/cgroup/memory/user.slice
-+ *
-+ */
-+ cgroup = fopen("/proc/self/cgroup", "r");
-+ if (cgroup == NULL) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Can't open /proc/self/cgroup, %s",
-+ strerror(errno));
-+ }
-+ return;
-+ }
-+
-+ while ( (p = fgets(buf, MAXPATHLEN, cgroup)) != NULL) {
-+ int cgno;
-+ int matched;
-+ char *controller;
-+ char *base;
-+
-+ /* Skip cgroup number */
-+ strsep(&p, ":");
-+ /* Get controller and base */
-+ controller = strsep(&p, ":");
-+ base = strsep(&p, "\n");
-+
-+ if (controller != NULL) {
-+ if (strstr(controller, "memory") != NULL) {
-+ memory->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpuset") != NULL) {
-+ cpuset->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpu,cpuacct") != NULL ||
strstr(controller, "cpuacct,cpu") != NULL) {
-+ cpu->set_subsystem_path(base);
-+ cpuacct->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpuacct") != NULL) {
-+ cpuacct->set_subsystem_path(base);
-+ } else if (strstr(controller, "cpu") != NULL) {
-+ cpu->set_subsystem_path(base);
-+ }
-+ }
-+ }
-+
-+ fclose(cgroup);
-+
-+ // We need to update the amount of physical memory now that
-+ // command line arguments have been processed.
-+ if ((mem_limit = memory_limit_in_bytes()) > 0) {
-+ os::Linux::set_physical_memory(mem_limit);
-+ }
-+
-+ _is_containerized = true;
-+
-+}
-+
-+const char * OSContainer::container_type() {
-+ if (is_containerized()) {
-+ return "cgroupv1";
-+ } else {
-+ return NULL;
-+ }
-+}
-+
-+
-+/* memory_limit_in_bytes
-+ *
-+ * Return the limit of available memory for this process.
-+ *
-+ * return:
-+ * memory limit in bytes or
-+ * -1 for unlimited
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.limit_in_bytes",
-+ "Memory Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memlimit);
-+
-+ if (memlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ }
-+ else {
-+ return (jlong)memlimit;
-+ }
-+}
-+
-+jlong OSContainer::memory_and_swap_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.memsw.limit_in_bytes",
-+ "Memory and Swap Limit is: " JULONG_FORMAT,
JULONG_FORMAT, memswlimit);
-+ if (memswlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory and Swap Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ } else {
-+ return (jlong)memswlimit;
-+ }
-+}
-+
-+jlong OSContainer::memory_soft_limit_in_bytes() {
-+ GET_CONTAINER_INFO(julong, memory, "/memory.soft_limit_in_bytes",
-+ "Memory Soft Limit is: " JULONG_FORMAT, JULONG_FORMAT,
memsoftlimit);
-+ if (memsoftlimit >= _unlimited_memory) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("Memory Soft Limit is: Unlimited");
-+ }
-+ return (jlong)-1;
-+ } else {
-+ return (jlong)memsoftlimit;
-+ }
-+}
-+
-+/* memory_usage_in_bytes
-+ *
-+ * Return the amount of used memory for this process.
-+ *
-+ * return:
-+ * memory usage in bytes or
-+ * -1 for unlimited
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_usage_in_bytes() {
-+ GET_CONTAINER_INFO(jlong, memory, "/memory.usage_in_bytes",
-+ "Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memusage);
-+ return memusage;
-+}
-+
-+/* memory_max_usage_in_bytes
-+ *
-+ * Return the maximum amount of used memory for this process.
-+ *
-+ * return:
-+ * max memory usage in bytes or
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+jlong OSContainer::memory_max_usage_in_bytes() {
-+ GET_CONTAINER_INFO(jlong, memory, "/memory.max_usage_in_bytes",
-+ "Maximum Memory Usage is: " JLONG_FORMAT, JLONG_FORMAT,
memmaxusage);
-+ return memmaxusage;
-+}
-+
-+/* active_processor_count
-+ *
-+ * Calculate an appropriate number of active processors for the
-+ * VM to use based on these three inputs.
-+ *
-+ * cpu affinity
-+ * cgroup cpu quota & cpu period
-+ * cgroup cpu shares
-+ *
-+ * Algorithm:
-+ *
-+ * Determine the number of available CPUs from sched_getaffinity
-+ *
-+ * If user specified a quota (quota != -1), calculate the number of
-+ * required CPUs by dividing quota by period.
-+ *
-+ * If shares are in effect (shares != -1), calculate the number
-+ * of CPUs required for the shares by dividing the share value
-+ * by PER_CPU_SHARES.
-+ *
-+ * All results of division are rounded up to the next whole number.
-+ *
-+ * If neither shares or quotas have been specified, return the
-+ * number of active processors in the system.
-+ *
-+ * If both shares and quotas have been specified, the results are
-+ * based on the flag PreferContainerQuotaForCPUCount. If true,
-+ * return the quota value. If false return the smallest value
-+ * between shares or quotas.
-+ *
-+ * If shares and/or quotas have been specified, the resulting number
-+ * returned will never exceed the number of active processors.
-+ *
-+ * return:
-+ * number of CPUs
-+ */
-+int OSContainer::active_processor_count() {
-+ int quota_count = 0, share_count = 0;
-+ int cpu_count, limit_count;
-+ int result;
-+
-+ cpu_count = limit_count = os::Linux::active_processor_count();
-+ int quota = cpu_quota();
-+ int period = cpu_period();
-+ int share = cpu_shares();
-+
-+ if (quota > -1 && period > 0) {
-+ quota_count = ceilf((float)quota / (float)period);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("CPU Quota count based on quota/period: %d",
quota_count);
-+ }
-+ }
-+ if (share > -1) {
-+ share_count = ceilf((float)share / (float)PER_CPU_SHARES);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("CPU Share count based on shares: %d", share_count);
-+ }
-+ }
-+
-+ // If both shares and quotas are setup results depend
-+ // on flag PreferContainerQuotaForCPUCount.
-+ // If true, limit CPU count to quota
-+ // If false, use minimum of shares and quotas
-+ if (quota_count !=0 && share_count != 0) {
-+ if (PreferContainerQuotaForCPUCount) {
-+ limit_count = quota_count;
-+ } else {
-+ limit_count = MIN2(quota_count, share_count);
-+ }
-+ } else if (quota_count != 0) {
-+ limit_count = quota_count;
-+ } else if (share_count != 0) {
-+ limit_count = share_count;
-+ }
-+
-+ result = MIN2(cpu_count, limit_count);
-+ if (PrintContainerInfo) {
-+ tty->print_cr("OSContainer::active_processor_count: %d", result);
-+ }
-+ return result;
-+}
-+
-+char * OSContainer::cpu_cpuset_cpus() {
-+ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.cpus",
-+ "cpuset.cpus is: %s", "%1023s", cpus, 1024);
-+ return os::strdup(cpus);
-+}
-+
-+char * OSContainer::cpu_cpuset_memory_nodes() {
-+ GET_CONTAINER_INFO_CPTR(cptr, cpuset, "/cpuset.mems",
-+ "cpuset.mems is: %s", "%1023s", mems, 1024);
-+ return os::strdup(mems);
-+}
-+
-+/* cpu_quota
-+ *
-+ * Return the number of milliseconds per period
-+ * process is guaranteed to run.
-+ *
-+ * return:
-+ * quota time in milliseconds
-+ * -1 for no quota
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+int OSContainer::cpu_quota() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_quota_us",
-+ "CPU Quota is: %d", "%d", quota);
-+ return quota;
-+}
-+
-+int OSContainer::cpu_period() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.cfs_period_us",
-+ "CPU Period is: %d", "%d", period);
-+ return period;
-+}
-+
-+/* cpu_shares
-+ *
-+ * Return the amount of cpu shares available to the process
-+ *
-+ * return:
-+ * Share number (typically a number relative to 1024)
-+ * (2048 typically expresses 2 CPUs worth of processing)
-+ * -1 for no share setup
-+ * OSCONTAINER_ERROR for not supported
-+ */
-+int OSContainer::cpu_shares() {
-+ GET_CONTAINER_INFO(int, cpu, "/cpu.shares",
-+ "CPU Shares is: %d", "%d", shares);
-+ // Convert 1024 to no shares setup
-+ if (shares == 1024) return -1;
-+
-+ return shares;
-+}
-+
-diff --git openjdk.orig/hotspot/src/os/linux/vm/osContainer_linux.hpp
openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/os/linux/vm/osContainer_linux.hpp
-@@ -0,0 +1,68 @@
-+/*
-+ * Copyright (c) 2018, Oracle and/or its affiliates. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit
www.oracle.com if you need additional information or have any
-+ * questions.
-+ *
-+ */
-+
-+#ifndef OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-+#define OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-+
-+#include "utilities/globalDefinitions.hpp"
-+#include "utilities/macros.hpp"
-+#include "memory/allocation.hpp"
-+
-+#define OSCONTAINER_ERROR (-2)
-+
-+class OSContainer: AllStatic {
-+
-+ private:
-+ static bool _is_initialized;
-+ static bool _is_containerized;
-+
-+ public:
-+ static void init();
-+ static inline bool is_containerized();
-+ static const char * container_type();
-+
-+ static jlong memory_limit_in_bytes();
-+ static jlong memory_and_swap_limit_in_bytes();
-+ static jlong memory_soft_limit_in_bytes();
-+ static jlong memory_usage_in_bytes();
-+ static jlong memory_max_usage_in_bytes();
-+
-+ static int active_processor_count();
-+
-+ static char * cpu_cpuset_cpus();
-+ static char * cpu_cpuset_memory_nodes();
-+
-+ static int cpu_quota();
-+ static int cpu_period();
-+
-+ static int cpu_shares();
-+
-+};
-+
-+inline bool OSContainer::is_containerized() {
-+ assert(_is_initialized, "OSContainer not initialized");
-+ return _is_containerized;
-+}
-+
-+#endif // OS_LINUX_VM_OSCONTAINER_LINUX_HPP
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
openjdk/hotspot/src/os/linux/vm/os_linux.cpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
-@@ -37,6 +37,7 @@
- #include "mutex_linux.inline.hpp"
- #include "oops/oop.inline.hpp"
- #include "os_share_linux.hpp"
-+#include "osContainer_linux.hpp"
- #include "prims/jniFastGetField.hpp"
- #include "prims/jvm.h"
- #include "prims/jvm_misc.hpp"
-@@ -179,13 +180,62 @@
- julong os::Linux::available_memory() {
- // values in struct sysinfo are "unsigned long"
- struct sysinfo si;
-+ julong avail_mem;
-+
-+ if (OSContainer::is_containerized()) {
-+ jlong mem_limit, mem_usage;
-+ if ((mem_limit = OSContainer::memory_limit_in_bytes()) < 1) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
-+ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
-+ }
-+ }
-+
-+ if (mem_limit > 0 && (mem_usage = OSContainer::memory_usage_in_bytes())
< 1) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory usage failed: " JLONG_FORMAT
", using host value", mem_usage);
-+ }
-+ }
-+
-+ if (mem_limit > 0 && mem_usage > 0 ) {
-+ avail_mem = mem_limit > mem_usage ? (julong)mem_limit - (julong)mem_usage : 0;
-+ if (PrintContainerInfo) {
-+ tty->print_cr("available container memory: " JULONG_FORMAT,
avail_mem);
-+ }
-+ return avail_mem;
-+ }
-+ }
-+
- sysinfo(&si);
--
-- return (julong)si.freeram * si.mem_unit;
-+ avail_mem = (julong)si.freeram * si.mem_unit;
-+ if (Verbose) {
-+ tty->print_cr("available memory: " JULONG_FORMAT, avail_mem);
-+ }
-+ return avail_mem;
- }
-
- julong os::physical_memory() {
-- return Linux::physical_memory();
-+ jlong phys_mem = 0;
-+ if (OSContainer::is_containerized()) {
-+ jlong mem_limit;
-+ if ((mem_limit = OSContainer::memory_limit_in_bytes()) > 0) {
-+ if (PrintContainerInfo) {
-+ tty->print_cr("total container memory: " JLONG_FORMAT, mem_limit);
-+ }
-+ return mem_limit;
-+ }
-+
-+ if (PrintContainerInfo) {
-+ tty->print_cr("container memory limit %s: " JLONG_FORMAT ",
using host value",
-+ mem_limit == OSCONTAINER_ERROR ? "failed" :
"unlimited", mem_limit);
-+ }
-+ }
-+
-+ phys_mem = Linux::physical_memory();
-+ if (Verbose) {
-+ tty->print_cr("total system memory: " JLONG_FORMAT, phys_mem);
-+ }
-+ return phys_mem;
- }
-
- ////////////////////////////////////////////////////////////////////////////////
-@@ -2129,6 +2179,8 @@
- os::Posix::print_load_average(st);
-
- os::Linux::print_full_memory_info(st);
-+
-+ os::Linux::print_container_info(st);
- }
-
- // Try to identify popular distros.
-@@ -2194,6 +2246,57 @@
- st->cr();
- }
-
-+void os::Linux::print_container_info(outputStream* st) {
-+if (!OSContainer::is_containerized()) {
-+ return;
-+ }
-+
-+ st->print("container (cgroup) information:\n");
-+
-+ const char *p_ct = OSContainer::container_type();
-+ st->print("container_type: %s\n", p_ct != NULL ? p_ct :
"failed");
-+
-+ char *p = OSContainer::cpu_cpuset_cpus();
-+ st->print("cpu_cpuset_cpus: %s\n", p != NULL ? p : "failed");
-+ free(p);
-+
-+ p = OSContainer::cpu_cpuset_memory_nodes();
-+ st->print("cpu_memory_nodes: %s\n", p != NULL ? p : "failed");
-+ free(p);
-+
-+ int i = OSContainer::active_processor_count();
-+ if (i > 0) {
-+ st->print("active_processor_count: %d\n", i);
-+ } else {
-+ st->print("active_processor_count: failed\n");
-+ }
-+
-+ i = OSContainer::cpu_quota();
-+ st->print("cpu_quota: %d\n", i);
-+
-+ i = OSContainer::cpu_period();
-+ st->print("cpu_period: %d\n", i);
-+
-+ i = OSContainer::cpu_shares();
-+ st->print("cpu_shares: %d\n", i);
-+
-+ jlong j = OSContainer::memory_limit_in_bytes();
-+ st->print("memory_limit_in_bytes: " JLONG_FORMAT "\n", j);
-+
-+ j = OSContainer::memory_and_swap_limit_in_bytes();
-+ st->print("memory_and_swap_limit_in_bytes: " JLONG_FORMAT "\n",
j);
-+
-+ j = OSContainer::memory_soft_limit_in_bytes();
-+ st->print("memory_soft_limit_in_bytes: " JLONG_FORMAT "\n",
j);
-+
-+ j = OSContainer::OSContainer::memory_usage_in_bytes();
-+ st->print("memory_usage_in_bytes: " JLONG_FORMAT "\n", j);
-+
-+ j = OSContainer::OSContainer::memory_max_usage_in_bytes();
-+ st->print("memory_max_usage_in_bytes: " JLONG_FORMAT "\n", j);
-+ st->cr();
-+}
-+
- void os::print_memory_info(outputStream* st) {
-
- st->print("Memory:");
-@@ -4966,6 +5069,10 @@
- }
- }
-
-+void os::pd_init_container_support() {
-+ OSContainer::init();
-+}
-+
- // this is called _after_ the global arguments have been parsed
- jint os::init_2(void)
- {
-@@ -5146,7 +5253,7 @@
- // sched_getaffinity gives an accurate answer as it accounts for cpusets.
- // If anything goes wrong we fallback to returning the number of online
- // processors - which can be greater than the number available to the process.
--int os::active_processor_count() {
-+int os::Linux::active_processor_count() {
- cpu_set_t cpus; // can represent at most 1024 (CPU_SETSIZE) processors
- int cpus_size = sizeof(cpu_set_t);
- int cpu_count = 0;
-@@ -5164,10 +5271,48 @@
- "which may exceed available processors", strerror(errno),
cpu_count);
- }
-
-- assert(cpu_count > 0 && cpu_count <= processor_count(), "sanity
check");
-+ assert(cpu_count > 0 && cpu_count <= os::processor_count(), "sanity
check");
- return cpu_count;
- }
-
-+// Determine the active processor count from one of
-+// three different sources:
-+//
-+// 1. User option -XX:ActiveProcessorCount
-+// 2. kernel os calls (sched_getaffinity or sysconf(_SC_NPROCESSORS_ONLN)
-+// 3. extracted from cgroup cpu subsystem (shares and quotas)
-+//
-+// Option 1, if specified, will always override.
-+// If the cgroup subsystem is active and configured, we
-+// will return the min of the cgroup and option 2 results.
-+// This is required since tools, such as numactl, that
-+// alter cpu affinity do not update cgroup subsystem
-+// cpuset configuration files.
-+int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
-+ int active_cpus;
-+ if (OSContainer::is_containerized()) {
-+ active_cpus = OSContainer::active_processor_count();
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: determined by OSContainer:
%d",
-+ active_cpus);
-+ }
-+ } else {
-+ active_cpus = os::Linux::active_processor_count();
-+ }
-+
-+ return active_cpus;
-+}
-+
- void os::set_native_thread_name(const char *name) {
- // Not yet implemented.
- return;
-diff --git openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
openjdk/hotspot/src/os/linux/vm/os_linux.hpp
---- openjdk.orig/hotspot/src/os/linux/vm/os_linux.hpp
-+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp
-@@ -35,6 +35,7 @@
-
- class Linux {
- friend class os;
-+ friend class OSContainer;
- friend class TestReserveMemorySpecial;
-
- // For signal-chaining
-@@ -79,6 +80,9 @@
-
- static julong available_memory();
- static julong physical_memory() { return _physical_memory; }
-+ static void set_physical_memory(julong phys_mem) { _physical_memory = phys_mem; }
-+ static int active_processor_count();
-+
- static void initialize_system_info();
-
- static int commit_memory_impl(char* addr, size_t bytes, bool exec);
-@@ -116,6 +120,7 @@
- static bool release_memory_special_huge_tlbfs(char* base, size_t bytes);
-
- static void print_full_memory_info(outputStream* st);
-+ static void print_container_info(outputStream* st);
- static void print_distro_info(outputStream* st);
- static void print_libversion_info(outputStream* st);
-
-diff --git openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
---- openjdk.orig/hotspot/src/os/solaris/vm/os_solaris.cpp
-+++ openjdk/hotspot/src/os/solaris/vm/os_solaris.cpp
-@@ -357,6 +357,16 @@
- }
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (Verbose) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- int online_cpus = sysconf(_SC_NPROCESSORS_ONLN);
- pid_t pid = getpid();
- psetid_t pset = PS_NONE;
-diff --git openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
openjdk/hotspot/src/os/windows/vm/os_windows.cpp
---- openjdk.orig/hotspot/src/os/windows/vm/os_windows.cpp
-+++ openjdk/hotspot/src/os/windows/vm/os_windows.cpp
-@@ -716,6 +716,16 @@
- #endif
-
- int os::active_processor_count() {
-+ // User has overridden the number of active processors
-+ if (ActiveProcessorCount > 0) {
-+ if (PrintActiveCpus) {
-+ tty->print_cr("active_processor_count: "
-+ "active processor count set by user : %d",
-+ ActiveProcessorCount);
-+ }
-+ return ActiveProcessorCount;
-+ }
-+
- DWORD_PTR lpProcessAffinityMask = 0;
- DWORD_PTR lpSystemAffinityMask = 0;
- int proc_count = processor_count();
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
openjdk/hotspot/src/share/vm/runtime/arguments.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2017, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
-@@ -1801,20 +1801,34 @@
- }
- }
-
-+ // Convert Fraction to Precentage values
-+ if (FLAG_IS_DEFAULT(MaxRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(MaxRAMFraction))
-+ MaxRAMPercentage = 100.0 / MaxRAMFraction;
-+
-+ if (FLAG_IS_DEFAULT(MinRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(MinRAMFraction))
-+ MinRAMPercentage = 100.0 / MinRAMFraction;
-+
-+ if (FLAG_IS_DEFAULT(InitialRAMPercentage) &&
-+ !FLAG_IS_DEFAULT(InitialRAMFraction))
-+ InitialRAMPercentage = 100.0 / InitialRAMFraction;
-+
- // If the maximum heap size has not been set with -Xmx,
- // then set it as fraction of the size of physical memory,
- // respecting the maximum and minimum sizes of the heap.
- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-- julong reasonable_max = phys_mem / MaxRAMFraction;
--
-- if (phys_mem <= MaxHeapSize * MinRAMFraction) {
-+ julong reasonable_max = (julong)((phys_mem * MaxRAMPercentage) / 100);
-+ const julong reasonable_min = (julong)((phys_mem * MinRAMPercentage) / 100);
-+ if (reasonable_min < MaxHeapSize) {
- // Small physical memory, so use a minimum fraction of it for the heap
-- reasonable_max = phys_mem / MinRAMFraction;
-+ reasonable_max = reasonable_min;
- } else {
- // Not-small physical memory, so require a heap at least
- // as large as MaxHeapSize
- reasonable_max = MAX2(reasonable_max, (julong)MaxHeapSize);
- }
-+
- if (!FLAG_IS_DEFAULT(ErgoHeapSizeLimit) && ErgoHeapSizeLimit != 0) {
- // Limit the heap size to ErgoHeapSizeLimit
- reasonable_max = MIN2(reasonable_max, (julong)ErgoHeapSizeLimit);
-@@ -1856,7 +1870,7 @@
- reasonable_minimum = limit_by_allocatable_memory(reasonable_minimum);
-
- if (InitialHeapSize == 0) {
-- julong reasonable_initial = phys_mem / InitialRAMFraction;
-+ julong reasonable_initial = (julong)((phys_mem * InitialRAMPercentage) / 100);
-
- reasonable_initial = MAX3(reasonable_initial, reasonable_minimum,
(julong)min_heap_size());
- reasonable_initial = MIN2(reasonable_initial, (julong)MaxHeapSize);
-@@ -1881,6 +1895,94 @@
- }
- }
-
-+// This option inspects the machine and attempts to set various
-+// parameters to be optimal for long-running, memory allocation
-+// intensive jobs. It is intended for machines with large
-+// amounts of cpu and memory.
-+jint Arguments::set_aggressive_heap_flags() {
-+ // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
-+ // VM, but we may not be able to represent the total physical memory
-+ // available (like having 8gb of memory on a box but using a 32bit VM).
-+ // Thus, we need to make sure we're using a julong for intermediate
-+ // calculations.
-+ julong initHeapSize;
-+ julong total_memory = os::physical_memory();
-+
-+ if (total_memory < (julong) 256 * M) {
-+ jio_fprintf(defaultStream::error_stream(),
-+ "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
-+ vm_exit(1);
-+ }
-+
-+ // The heap size is half of available memory, or (at most)
-+ // all of possible memory less 160mb (leaving room for the OS
-+ // when using ISM). This is the maximum; because adaptive sizing
-+ // is turned on below, the actual space used may be smaller.
-+
-+ initHeapSize = MIN2(total_memory / (julong) 2,
-+ total_memory - (julong) 160 * M);
-+
-+ initHeapSize = limit_by_allocatable_memory(initHeapSize);
-+
-+ if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-+ FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
-+ FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
-+ // Currently the minimum size and the initial heap sizes are the same.
-+ set_min_heap_size(initHeapSize);
-+ }
-+ if (FLAG_IS_DEFAULT(NewSize)) {
-+ // Make the young generation 3/8ths of the total heap.
-+ FLAG_SET_CMDLINE(uintx, NewSize,
-+ ((julong) MaxHeapSize / (julong) 8) * (julong) 3);
-+ FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
-+ }
-+
-+#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
-+ FLAG_SET_DEFAULT(UseLargePages, true);
-+#endif
-+
-+ // Increase some data structure sizes for efficiency
-+ FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
-+ FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
-+ FLAG_SET_CMDLINE(uintx, TLABSize, 256 * K);
-+
-+ // See the OldPLABSize comment below, but replace 'after promotion'
-+ // with 'after copying'. YoungPLABSize is the size of the survivor
-+ // space per-gc-thread buffers. The default is 4kw.
-+ FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256 * K); // Note: this is in words
-+
-+ // OldPLABSize is the size of the buffers in the old gen that
-+ // UseParallelGC uses to promote live data that doesn't fit in the
-+ // survivor spaces. At any given time, there's one for each gc thread.
-+ // The default size is 1kw. These buffers are rarely used, since the
-+ // survivor spaces are usually big enough. For specjbb, however, there
-+ // are occasions when there's lots of live data in the young gen
-+ // and we end up promoting some of it. We don't have a definite
-+ // explanation for why bumping OldPLABSize helps, but the theory
-+ // is that a bigger PLAB results in retaining something like the
-+ // original allocation order after promotion, which improves mutator
-+ // locality. A minor effect may be that larger PLABs reduce the
-+ // number of PLAB allocation events during gc. The value of 8kw
-+ // was arrived at by experimenting with specjbb.
-+ FLAG_SET_CMDLINE(uintx, OldPLABSize, 8 * K); // Note: this is in words
-+
-+ // Enable parallel GC and adaptive generation sizing
-+ FLAG_SET_CMDLINE(bool, UseParallelGC, true);
-+
-+ // Encourage steady state memory management
-+ FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
-+
-+ // This appears to improve mutator locality
-+ FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
-+
-+ // Get around early Solaris scheduling bug
-+ // (affinity vs other jobs on system)
-+ // but disallow DR and offlining (5008695).
-+ FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
-+
-+ return JNI_OK;
-+}
-+
- // This must be called after ergonomics because we want bytecode rewriting
- // if the server compiler is used, or if UseSharedSpaces is disabled.
- void Arguments::set_bytecode_flags() {
-@@ -2644,6 +2746,14 @@
- return result;
- }
-
-+ // We need to ensure processor and memory resources have been properly
-+ // configured - which may rely on arguments we just processed - before
-+ // doing the final argument processing. Any argument processing that
-+ // needs to know about processor and memory resources must occur after
-+ // this point.
-+
-+ os::init_container_support();
-+
- // Do final processing now that all arguments have been parsed
- result = finalize_vm_init_args(&scp, scp_assembly_required);
- if (result != JNI_OK) {
-@@ -3117,94 +3227,6 @@
- _exit_hook = CAST_TO_FN_PTR(exit_hook_t, option->extraInfo);
- } else if (match_option(option, "abort", &tail)) {
- _abort_hook = CAST_TO_FN_PTR(abort_hook_t, option->extraInfo);
-- // -XX:+AggressiveHeap
-- } else if (match_option(option, "-XX:+AggressiveHeap", &tail)) {
--
-- // This option inspects the machine and attempts to set various
-- // parameters to be optimal for long-running, memory allocation
-- // intensive jobs. It is intended for machines with large
-- // amounts of cpu and memory.
--
-- // initHeapSize is needed since _initial_heap_size is 4 bytes on a 32 bit
-- // VM, but we may not be able to represent the total physical memory
-- // available (like having 8gb of memory on a box but using a 32bit VM).
-- // Thus, we need to make sure we're using a julong for intermediate
-- // calculations.
-- julong initHeapSize;
-- julong total_memory = os::physical_memory();
--
-- if (total_memory < (julong)256*M) {
-- jio_fprintf(defaultStream::error_stream(),
-- "You need at least 256mb of memory to use
-XX:+AggressiveHeap\n");
-- vm_exit(1);
-- }
--
-- // The heap size is half of available memory, or (at most)
-- // all of possible memory less 160mb (leaving room for the OS
-- // when using ISM). This is the maximum; because adaptive sizing
-- // is turned on below, the actual space used may be smaller.
--
-- initHeapSize = MIN2(total_memory / (julong)2,
-- total_memory - (julong)160*M);
--
-- initHeapSize = limit_by_allocatable_memory(initHeapSize);
--
-- if (FLAG_IS_DEFAULT(MaxHeapSize)) {
-- FLAG_SET_CMDLINE(uintx, MaxHeapSize, initHeapSize);
-- FLAG_SET_CMDLINE(uintx, InitialHeapSize, initHeapSize);
-- // Currently the minimum size and the initial heap sizes are the same.
-- set_min_heap_size(initHeapSize);
-- }
-- if (FLAG_IS_DEFAULT(NewSize)) {
-- // Make the young generation 3/8ths of the total heap.
-- FLAG_SET_CMDLINE(uintx, NewSize,
-- ((julong)MaxHeapSize / (julong)8) * (julong)3);
-- FLAG_SET_CMDLINE(uintx, MaxNewSize, NewSize);
-- }
--
--#ifndef _ALLBSD_SOURCE // UseLargePages is not yet supported on BSD.
-- FLAG_SET_DEFAULT(UseLargePages, true);
--#endif
--
-- // Increase some data structure sizes for efficiency
-- FLAG_SET_CMDLINE(uintx, BaseFootPrintEstimate, MaxHeapSize);
-- FLAG_SET_CMDLINE(bool, ResizeTLAB, false);
-- FLAG_SET_CMDLINE(uintx, TLABSize, 256*K);
--
-- // See the OldPLABSize comment below, but replace 'after promotion'
-- // with 'after copying'. YoungPLABSize is the size of the survivor
-- // space per-gc-thread buffers. The default is 4kw.
-- FLAG_SET_CMDLINE(uintx, YoungPLABSize, 256*K); // Note: this is in words
--
-- // OldPLABSize is the size of the buffers in the old gen that
-- // UseParallelGC uses to promote live data that doesn't fit in the
-- // survivor spaces. At any given time, there's one for each gc thread.
-- // The default size is 1kw. These buffers are rarely used, since the
-- // survivor spaces are usually big enough. For specjbb, however, there
-- // are occasions when there's lots of live data in the young gen
-- // and we end up promoting some of it. We don't have a definite
-- // explanation for why bumping OldPLABSize helps, but the theory
-- // is that a bigger PLAB results in retaining something like the
-- // original allocation order after promotion, which improves mutator
-- // locality. A minor effect may be that larger PLABs reduce the
-- // number of PLAB allocation events during gc. The value of 8kw
-- // was arrived at by experimenting with specjbb.
-- FLAG_SET_CMDLINE(uintx, OldPLABSize, 8*K); // Note: this is in words
--
-- // Enable parallel GC and adaptive generation sizing
-- FLAG_SET_CMDLINE(bool, UseParallelGC, true);
--
-- // Encourage steady state memory management
-- FLAG_SET_CMDLINE(uintx, ThresholdTolerance, 100);
--
-- // This appears to improve mutator locality
-- FLAG_SET_CMDLINE(bool, ScavengeBeforeFullGC, false);
--
-- // Get around early Solaris scheduling bug
-- // (affinity vs other jobs on system)
-- // but disallow DR and offlining (5008695).
-- FLAG_SET_CMDLINE(bool, BindGCTaskThreadsToCPUs, true);
--
- } else if (match_option(option, "-XX:+NeverTenure", &tail)) {
- // The last option must always win.
- FLAG_SET_CMDLINE(bool, AlwaysTenure, false);
-@@ -3605,6 +3627,15 @@
- return JNI_ERR;
- }
-
-+ // This must be done after all arguments have been processed
-+ // and the container support has been initialized since AggressiveHeap
-+ // relies on the amount of total memory available.
-+ if (AggressiveHeap) {
-+ jint result = set_aggressive_heap_flags();
-+ if (result != JNI_OK) {
-+ return result;
-+ }
-+ }
- // This must be done after all arguments have been processed.
- // java_compiler() true means set to "NONE" or empty.
- if (java_compiler() && !xdebug_mode()) {
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
openjdk/hotspot/src/share/vm/runtime/arguments.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/arguments.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/arguments.hpp
-@@ -1,5 +1,5 @@
- /*
-- * Copyright (c) 1997, 2014, Oracle and/or its affiliates. All rights reserved.
-+ * Copyright (c) 1997, 2018, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
-@@ -365,6 +365,8 @@
- // Aggressive optimization flags.
- static void set_aggressive_opts_flags();
-
-+ static jint set_aggressive_heap_flags();
-+
- // Argument parsing
- static void do_pd_flag_adjustments();
- static bool parse_argument(const char* arg, Flag::Flags origin);
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
openjdk/hotspot/src/share/vm/runtime/globals.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp
-@@ -2076,13 +2076,23 @@
- product_pd(uint64_t, MaxRAM, \
- "Real memory size (in bytes) used to set maximum heap size") \
- \
-+ product(bool, AggressiveHeap, false, \
-+ "Optimize heap options for long-running memory intensive apps") \
-+ \
- product(uintx, ErgoHeapSizeLimit, 0, \
- "Maximum ergonomically set heap size (in bytes); zero means use " \
-- "MaxRAM / MaxRAMFraction") \
-+ "MaxRAM * MaxRAMPercentage / 100") \
- \
- experimental(bool, UseCGroupMemoryLimitForHeap, false, \
- "Use CGroup memory limit as physical memory limit for heap " \
-- "sizing") \
-+ "sizing" \
-+ "Deprecated, replaced by container support") \
-+ \
-+ diagnostic(bool, PrintContainerInfo, false, \
-+ "Print container related information") \
-+ \
-+ diagnostic(bool, PrintActiveCpus, false, \
-+ "Print the number of CPUs detected in os::active_processor_count")
\
- \
- product(uintx, MaxRAMFraction, 4, \
- "Maximum fraction (1/n) of real memory used for maximum heap " \
-@@ -2099,6 +2109,19 @@
- product(uintx, InitialRAMFraction, 64, \
- "Fraction (1/n) of real memory used for initial heap size") \
- \
-+ product(double, MaxRAMPercentage, 25.0, \
-+ "Maximum percentage of real memory used for maximum heap size") \
-+ \
-+ product(double, MinRAMPercentage, 50.0, \
-+ "Minimum percentage of real memory used for maximum heap" \
-+ "size on systems with small physical memory size") \
-+ \
-+ product(double, InitialRAMPercentage, 1.5625, \
-+ "Percentage of real memory used for initial heap size") \
-+ \
-+ product(intx, ActiveProcessorCount, -1, \
-+ "Specify the CPU count the VM should use and report as active") \
-+ \
- develop(uintx, MaxVirtMemFraction, 2, \
- "Maximum fraction (1/n) of virtual memory used for ergonomically "\
- "determining maximum heap size") \
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
openjdk/hotspot/src/share/vm/runtime/os.hpp
---- openjdk.orig/hotspot/src/share/vm/runtime/os.hpp
-+++ openjdk/hotspot/src/share/vm/runtime/os.hpp
-@@ -152,8 +152,16 @@
- static size_t page_size_for_region(size_t region_size, size_t min_pages, bool
must_be_aligned);
-
- static void initialize_initial_active_processor_count();
-+
-+ LINUX_ONLY(static void pd_init_container_support();)
-+
- public:
- static void init(void); // Called before command line parsing
-+
-+ static void init_container_support() { // Called during command line parsing.
-+ LINUX_ONLY(pd_init_container_support();)
-+ }
-+
- static void init_before_ergo(void); // Called after command line parsing
- // before VM ergonomics processing.
- static jint init_2(void); // Called after command line parsing
-diff --git openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
openjdk/hotspot/src/share/vm/runtime/thread.cpp
---- openjdk.orig/hotspot/src/share/vm/runtime/thread.cpp
-+++ openjdk/hotspot/src/share/vm/runtime/thread.cpp
-@@ -3332,6 +3332,7 @@
- Arguments::init_version_specific_system_properties();
-
- // Parse arguments
-+ // Note: this internally calls os::init_container_support()
- jint parse_result = Arguments::parse(args);
- if (parse_result != JNI_OK) return parse_result;
-
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index dfb03c8..c9f6598 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -1059,7 +1059,7 @@ Patch516: pr2815.patch
Patch517: pr2899.patch
Patch518: pr2934.patch
Patch519: pr3479-rh1486025.patch
-# PR3183, RH1340845: Support Fedora/RHEL system crypto policy
+# PR3183, RH1340845: Support Fedora/RHEL8 system crypto policy
Patch300: pr3183-rh1340845-system-crypto-policy.patch
#############################################
@@ -1173,8 +1173,6 @@ Patch578: 8075942-pr3602-rh1582032.patch
Patch579: 8203182-pr3603-rh1568033.patch
# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
Patch580: 8206406-pr3610-rh1597825.patch
-# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
-Patch581: 8146115-pr3508-rh1463098.patch
# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
Patch204: 8206425-hotspot-remove-debuglink.patch
@@ -1226,10 +1224,8 @@ Patch539: pr2888.patch
Patch540: pr3575-rh1567204.patch
# Shenandoah fixes
-# PR3619: Shenandoah broken on s390
-Patch582: pr3619.patch
-# PR3620: Shenandoah broken on ppc64
-Patch583: pr3620.patch
+# PR3634: Shenandoah still broken on s390 with aarch64-shenandoah-jdk8u181-b16
+Patch582: pr3634.patch
#############################################
#
@@ -1633,7 +1629,6 @@ sh %{SOURCE12}
%patch578
%patch579
%patch580
-%patch581
%patch620
%patch621
%patch622
@@ -1653,7 +1648,6 @@ sh %{SOURCE12}
# Shenandoah patches
%patch582
-%patch583
%patch1000
@@ -2283,6 +2277,11 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Tue Oct 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.191.b12-1
+- updated to aarch64-shenandoah-jdk8u191-b12
+- deleted 8146115-pr3508-rh1463098.patch, pr3619.patch, pr3620.patch - should be
upstreamed
+- create pr3634.patch to fix build failure on s390
+
* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
- Annother fix for optimization gaps (annocheck issues)
diff --git a/pr3619.patch b/pr3619.patch
deleted file mode 100644
index 3c8631f..0000000
--- a/pr3619.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahAdaptiveHeuristics.cpp
-@@ -108,7 +108,7 @@
- step = MIN2(step, (intx) MaxNormalStep);
-
- log_info(gc, ergo)("Capacity: " SIZE_FORMAT "M, Peak Occupancy: "
SIZE_FORMAT
-- "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " UINTX_FORMAT "M",
-+ "M, Lowest Free: " SIZE_FORMAT "M, Free
Threshold: " SIZE_FORMAT "M",
- capacity / M, _peak_occupancy / M,
- (capacity - _peak_occupancy) / M, ShenandoahMinFreeThreshold *
capacity / 100 / M);
-
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-+++
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/heuristics/shenandoahStaticHeuristics.cpp
-@@ -36,7 +36,7 @@
- }
-
- void ShenandoahStaticHeuristics::print_thresholds() {
-- log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"SIZE_FORMAT", free "SIZE_FORMAT", garbage "SIZE_FORMAT,
-+ log_info(gc, init)("Shenandoah heuristics thresholds: allocation
"UINTX_FORMAT", free "UINTX_FORMAT", garbage "UINTX_FORMAT,
- ShenandoahAllocationThreshold,
- ShenandoahFreeThreshold,
- ShenandoahGarbageThreshold);
-diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
----
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-+++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegion.cpp
-@@ -539,7 +539,7 @@
- }
- size_t average_heap_size = (initial_heap_size + max_heap_size) / 2;
- region_size = MAX2(average_heap_size / ShenandoahTargetNumRegions,
-- ShenandoahMinRegionSize);
-+ (size_t) ShenandoahMinRegionSize);
-
- // Now make sure that we don't go over or under our limits.
- region_size = MAX2(ShenandoahMinRegionSize, region_size);
-@@ -573,7 +573,7 @@
- // Otherwise, mem-protecting one region may falsely protect the adjacent
- // regions too.
- if (UseLargePages) {
-- region_size = MAX2(region_size, os::large_page_size());
-+ region_size = MAX2((size_t) region_size, os::large_page_size());
- }
-
- int region_size_log = log2_long((jlong) region_size);
diff --git a/pr3620.patch b/pr3620.patch
deleted file mode 100644
index 206828d..0000000
--- a/pr3620.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-diff --git openjdk.orig/hotspot/make/excludeSrc.make
openjdk/hotspot/make/excludeSrc.make
---- openjdk.orig/hotspot/make/excludeSrc.make
-+++ openjdk/hotspot/make/excludeSrc.make
-@@ -121,6 +121,7 @@
- Src_Files_EXCLUDE += \
- shenandoahBarrierSet_x86.cpp \
- shenandoahBarrierSet_aarch64.cpp \
-+ shenandoahBarrierSet_ppc.cpp \
- shenandoahBarrierSet_sparc.cpp \
- shenandoahBarrierSet_zero.cpp
- endif
-diff --git openjdk.orig/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-new file mode 100644
---- /dev/null
-+++ openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp
-@@ -0,0 +1,54 @@
-+/*
-+ * Copyright (c) 2018, Red Hat, Inc. and/or its affiliates.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit
www.oracle.com if you need additional information or have any
-+ * questions.
-+ *
-+ */
-+
-+#include "precompiled.hpp"
-+#include "gc_implementation/shenandoah/brooksPointer.hpp"
-+#include "gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp"
-+
-+#include "asm/macroAssembler.hpp"
-+#include "interpreter/interpreter.hpp"
-+
-+#define __ masm->
-+
-+#ifndef CC_INTERP
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier(MacroAssembler* masm, Register dst)
{
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_read_barrier_not_null(MacroAssembler* masm,
Register dst) {
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::interpreter_write_barrier(MacroAssembler* masm, Register dst)
{
-+ Unimplemented();
-+}
-+
-+void ShenandoahBarrierSet::asm_acmp_barrier(MacroAssembler* masm, Register op1, Register
op2) {
-+ Unimplemented();
-+}
-+
-+void ShenandoahHeap::compile_prepare_oop(MacroAssembler* masm, Register obj) {
-+ Unimplemented();
-+}
-+#endif
diff --git a/pr3634.patch b/pr3634.patch
new file mode 100644
index 0000000..caba2ac
--- /dev/null
+++ b/pr3634.patch
@@ -0,0 +1,16 @@
+diff --git
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+---
openjdk.orig/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
++++ openjdk/hotspot/src/share/vm/gc_implementation/shenandoah/shenandoah_globals.hpp
+@@ -55,10 +55,10 @@
+ "Size of the Shenandoah regions. " \
+ "Determined automatically by default.") \
+ \
+- experimental(uintx, ShenandoahMinRegionSize, 256 * K, \
++ experimental(size_t, ShenandoahMinRegionSize, 256 * K, \
+ "Minimum heap region size. ") \
+ \
+- experimental(uintx, ShenandoahMaxRegionSize, 32 * M, \
++ experimental(size_t, ShenandoahMaxRegionSize, 32 * M, \
+ "Maximum heap region size. ") \
+ \
+ experimental(intx, ShenandoahHumongousThreshold, 100, \
commit 474b96bdcee53fc3fdd356370c470f0ae9daccd4
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 19 16:48:15 2018 +0200
updated to new sources - u191
diff --git a/.gitignore b/.gitignore
index 571ea50..b7a8809 100644
--- a/.gitignore
+++ b/.gitignore
@@ -110,7 +110,10 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u162-b12.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u171-b10.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b10.tar.xz
+/aarch64-port-jdk8u-aarch64-jdk8u171-b12.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u171-b12.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u172-b11.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-05-15.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u172-b11--shenandoah-merge-2018-06-21.tar.xz
/aarch64-port-jdk8u-aarch64-jdk8u181-b03.tar.xz
@@ -121,3 +124,6 @@
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b13.tar.xz
/systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b16.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b10.tar.xz
+/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c0cec14..dfb03c8 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -223,7 +223,7 @@
# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
%global shenandoah_project aarch64-port
%global shenandoah_repo jdk8u-shenandoah
-%global shenandoah_revision aarch64-shenandoah-jdk8u181-b15
+%global shenandoah_revision aarch64-shenandoah-jdk8u191-b12
# Define old aarch64/jdk8u tree variables for compatibility
%global project %{shenandoah_project}
%global repo %{shenandoah_repo}
diff --git a/sources b/sources
index f10b98c..7cd45d3 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
SHA512 (systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz) =
cf578221b77d8c7e019f69909bc86c419c5fb5e10bceba9592ff6e7f96887b0a7f07c9cefe90800975247a078785ca190fdec5c2d0f841bb447cee784b570f7d
-SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u181-b15.tar.xz) =
d8cdb9b7ef129ba8a07332ca3e4c56ad9e6cc84c4977cbad601b67deeecec44c0f3b95f219d603e063bd7b89bf6515151111fe021cf36132b9b4cc47c1d1d12c
+SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz) =
1cefbddc40a87fcbcbd875dc83d3897137c6ded3bd18190c3c8e96f89bb5c7edb29750095bb47dd96be062d093f488327f4993f9690975fde2dbaededd7d4e55
commit e32f59828d5ae74cfaaef9b189c1cb5b6d274001
Author: Jiri Vanek <jvanek(a)redhat.com>
Date: Fri Oct 19 16:29:52 2018 +0200
Used top-level macro consistently
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index 848d427..c0cec14 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -73,7 +73,7 @@
%global include_debug_build 0
%endif
-# On x86_64 and AArch64, we use the Shenandoah HotSpot
+# Shenandoah HotSpot used everywhere, but built only on x86_64 and AArch64
%ifarch x86_64 %{aarch64}
%global use_shenandoah_hotspot 1
%else
@@ -246,7 +246,7 @@
# images stub
%global jdkimage j2sdk-image
# output dir stub
-%define buildoutputdir() %{expand:openjdk/build/jdk8.build%{?1}}
+%define buildoutputdir() %{expand:%{top_level_dir_name}/build/jdk8.build%{?1}}
# we can copy the javadoc to not arched dir, or make it not noarch
%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
# main id and dir of this jdk
@@ -1550,8 +1550,8 @@ cp %{SOURCE2} .
#
# the configure macro will do this too, but it also passes a few flags not
# supported by openjdk configure script
-cp %{SOURCE100} openjdk/common/autoconf/build-aux/
-cp %{SOURCE101} openjdk/common/autoconf/build-aux/
+cp %{SOURCE100} %{top_level_dir_name}/common/autoconf/build-aux/
+cp %{SOURCE101} %{top_level_dir_name}/common/autoconf/build-aux/
# OpenJDK patches
@@ -1986,7 +1986,7 @@ cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{
# Install icons and menu entries
for s in 16 24 32 48 ; do
install -D -p -m 644 \
- openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+ %{top_level_dir_name}/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
done
commit bb51875e39713ddf1d9763c475fad86a3260b440
Author: Severin Gehwolf <sgehwolf(a)redhat.com>
Date: Fri Oct 12 16:18:07 2018 +0200
Add another optimization gap fix for Zero.
Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch which
performs the same opt steps for Zero arches when they are being
built. This issue showed up on arm (32 bit) and s390x
only as those are Zero arches for JDK 8.
diff --git a/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
b/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
new file mode 100644
index 0000000..6c1ebad
--- /dev/null
+++ b/8210425-03-rh1630426-hotspot-opt-fix-zero.patch
@@ -0,0 +1,20 @@
+--- openjdk/hotspot/make/linux/makefiles/zeroshark.make
++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make
+@@ -30,10 +30,13 @@ ifeq ($(USE_CLANG), true)
+ WARNING_FLAGS += -Wno-undef
+ endif
+
+-# The copied fdlibm routines in sharedRuntimeTrig.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
+-# The copied fdlibm routines in sharedRuntimeTrans.o must not be optimized
+-OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++ifeq ($(OPT_CFLAGS_NO_FMA),)
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/NOOPT)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/NOOPT)
++else
++ OPT_CFLAGS/sharedRuntimeTrig.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++ OPT_CFLAGS/sharedRuntimeTrans.o = $(OPT_CFLAGS/SPEED) $(OPT_CFLAGS_NO_FMA)
++endif
+
+ # Specify that the CPU is little endian, if necessary
+ ifeq ($(ZERO_ENDIANNESS), little)
diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec
index c23dbd9..848d427 100644
--- a/java-1.8.0-openjdk.spec
+++ b/java-1.8.0-openjdk.spec
@@ -106,8 +106,8 @@
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
-# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
+# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
@@ -824,6 +824,9 @@ exit 0
%define java_rpo() %{expand:
Requires: fontconfig%{?_isa}
Requires: xorg-x11-fonts-Type1
+# Require libXcomposite explicitly since it's only dynamically loaded
+# at runtime. Fixes screenshot issues. See JDK-8150954.
+Requires: libXcomposite%{?_isa}
# Requires rest of java
Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
@@ -963,7 +966,7 @@ Provides: java-%{javaver}-%{origin}-accessibility =
%{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
-Release: 0%{?dist}
+Release: 7%{?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
@@ -1041,21 +1044,7 @@ Source101: config.sub
# Ignore AWTError when assistive technologies are loaded
Patch1: %{name}-accessible-toolkit.patch
# Restrict access to java-atk-wrapper classes
-Patch3: java-atk-wrapper-security.patch
-
-#############################################
-#
-# Upstreamable patches
-#
-#############################################
-# PR2737: Allow multiple initialization of PKCS11 libraries
-Patch5: multiple-pkcs11-library-init.patch
-# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
-Patch504: rh1163501.patch
-# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
-Patch511: rh1214835.patch
-# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
-Patch512: no_strict_overflow.patch
+Patch3: java-atk-wrapper-security.patch
# Support for building the SunEC provider with the system NSS installation
# PR1983: Support using the system installation of NSS with the SunEC provider
# PR2127: SunEC provider crashes when built using system NSS
@@ -1070,10 +1059,20 @@ Patch516: pr2815.patch
Patch517: pr2899.patch
Patch518: pr2934.patch
Patch519: pr3479-rh1486025.patch
-# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
-# In progress:
http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
-Patch508: rh1176206-jdk.patch
-Patch509: rh1176206-root.patch
+# PR3183, RH1340845: Support Fedora/RHEL system crypto policy
+Patch300: pr3183-rh1340845-system-crypto-policy.patch
+
+#############################################
+#
+# Upstreamable patches
+#
+#############################################
+# PR2737: Allow multiple initialization of PKCS11 libraries
+Patch5: multiple-pkcs11-library-init.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
+Patch504: rh1163501.patch
+# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
+Patch512: no_strict_overflow.patch
# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
Patch523: pr2974-rh1337583.patch
# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
@@ -1082,23 +1081,9 @@ Patch528: pr3083-rh1346460.patch
Patch529: rh1566890_embargoed20180521.patch
# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
Patch530: pr3601.patch
-# PR3183: Support Fedora/RHEL system crypto policy
-Patch300: pr3183.patch
-
-#############################################
-#
-# Upstreamable debugging patches
-#
-#############################################
-# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
-# 8207234: More libraries with .gnu_debuglink sections added unconditionally
-Patch205: 8207234-dont-add-unnecessary-debug-links.patch
# Arch-specific upstreamable patches
-# s390: PR2415: JVM -Xmx requirement is too high on s390
-Patch100: %{name}-s390-java-opts.patch
-# s390: Type fixing for s390
-Patch102: %{name}-size_t.patch
+
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: pr3593-s390-size_t_format_flags.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
@@ -1111,16 +1096,6 @@ Patch106: pr3519.patch
# Patches which need backporting to 8u
#
#############################################
-# S8073139, RH1191652; fix name of ppc64le architecture
-Patch601: %{name}-rh1191652-root.patch
-Patch602: %{name}-rh1191652-jdk.patch
-Patch603: %{name}-rh1191652-hotspot-aarch64.patch
-# Include all sources in src.zip
-Patch7: include-all-srcs.patch
-# 8035341: Allow using a system installed libpng
-Patch202: system-libpng.patch
-# 8042159: Allow using a system-installed lcms2
-Patch203: system-lcms.patch
# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
Patch502: pr2462.patch
@@ -1149,7 +1124,25 @@ Patch576: 8064786-pr3599.patch
# 8062808, PR3548: Turn on the -Wreturn-type warning
Patch577: 8062808-pr3548.patch
# 8207057, PR3613: Enable debug information for assembly code files
-Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
+Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
+Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
+# s390: JDK-8203030, Type fixing for s390
+Patch102: 8203030-size_t-fixes.patch
+# 8210761: libjsig is being compiled without optimization
+Patch620: 8210761-rh1630426-jsig-opt-fix.patch
+# 8210647: libsaproc is being compiled without optimization
+Patch621: 8210647-rh1630426-saproc-opt-fix.patch
+# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+Patch622: 8210416-rh1630426-strict-math-opt.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Upstream 8u part.
+Patch623: 8210425-01-rh1630426-hotspot-opt-fix.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Aarch64-port 8u local part
+Patch624: 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Zero part of the fix for (arm/s390 arches)
+Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
#############################################
#
@@ -1157,9 +1150,9 @@ Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
#
#############################################
# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
-Patch506: pr2842-01.patch
+Patch506: 8031668-pr2842-01.patch
# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
-Patch507: pr2842-02.patch
+Patch507: 8148351-pr2842-02.patch
# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
@@ -1167,7 +1160,7 @@ Patch538: 8061305-pr3335-rh1423421.patch
# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
Patch560: 8188030-pr3459-rh1484079.patch
# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
-Patch562: pr3539-rh1548475.patch
+Patch562: 8205104-pr3539-rh1548475.patch
# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
Patch565: 8185723-pr3553.patch
# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
@@ -1182,8 +1175,29 @@ Patch579: 8203182-pr3603-rh1568033.patch
Patch580: 8206406-pr3610-rh1597825.patch
# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
Patch581: 8146115-pr3508-rh1463098.patch
+# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
Patch204: 8206425-hotspot-remove-debuglink.patch
+# 8036003: Add --with-native-debug-symbols=[none|internal|external|zipped]
+Patch205: 8036003-add-with-native-debug-symbols-configure-flag.patch
+# s390: JDK-8201495, PR2415: JVM -Xmx requirement is too high on s390
+Patch100: 8201495-s390-java-opts.patch
+
+#############################################
+#
+# Patches appearing in 8u202
+#
+#############################################
+# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
+Patch508: 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch
+# 8165852, PR3468: (fs) Mount point not found for a file which is present in overlayfs
+Patch210: 8165852-pr3468.patch
+# S8073139, RH1191652; fix name of ppc64le architecture
+Patch601: 8073139-rh1191652-root.patch
+Patch602: 8073139-rh1191652-jdk.patch
+Patch603: 8073139-rh1191652-hotspot-aarch64.patch
+# 8044235: src.zip should include all sources
+Patch7: 8044235-include-all-srcs.patch
#############################################
#
@@ -1192,6 +1206,10 @@ Patch204: 8206425-hotspot-remove-debuglink.patch
#############################################
# 8043805: Allow using a system-installed libjpeg
Patch201: system-libjpeg.patch
+# 8035341: Allow using a system installed libpng
+Patch202: system-libpng.patch
+# 8042159: Allow using a system-installed lcms2
+Patch203: system-lcms.patch
#############################################
#
@@ -1248,6 +1266,7 @@ BuildRequires: nss-devel
BuildRequires: pkgconfig
BuildRequires: xorg-x11-proto-devel
BuildRequires: zip
+BuildRequires: unzip
# Use OpenJDK 7 where available (on RHEL) to avoid
# having to use the rhel-7.x-java-unsafe-candidate hack
%if ! 0%{?fedora} && 0%{?rhel} <= 7
@@ -1548,6 +1567,8 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
+%patch207
+%patch210
%patch300
@@ -1578,8 +1599,6 @@ sh %{SOURCE12}
%patch506
%patch507
%patch508
-%patch509
-%patch511
%patch512
%patch513
%patch514
@@ -1615,6 +1634,12 @@ sh %{SOURCE12}
%patch579
%patch580
%patch581
+%patch620
+%patch621
+%patch622
+%patch623
+%patch624
+%patch625
# RPM-only fixes
%patch525
@@ -1728,7 +1753,7 @@ bash ../../configure \
%ifnarch %{jit_arches}
--with-jvm-variants=zero \
%endif
- --disable-zip-debug-info \
+ --with-native-debug-symbols=internal \
--with-milestone="fcs" \
--with-update-version=%{updatever} \
--with-build-number=%{buildver} \
@@ -1750,16 +1775,8 @@ bash ../../configure \
cat spec.gmk
cat hotspot-spec.gmk
-# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
-# disables FDS for all build configs and reverts to pre-FDS make logic.
-# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
-# ignore all the other logic about which debug options and just do '-g'.
-
make \
- DEBUG_BINARIES=true \
JAVAC_FLAGS=-g \
- STRIP_POLICY=no_strip \
- POST_STRIP_CMD="" \
LOG=trace \
SCTP_WERROR= \
%{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs
cat && false )
@@ -2266,6 +2283,68 @@ require "copy_jdk_configs.lua"
%endif
%changelog
+* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
+- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
+ - Annother fix for optimization gaps (annocheck issues)
+ - Zero 8u version fix was missing. Hence, only shows up on Zero arches.
+
+* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
+- Refreshed upstreamed patches (from 8u202):
+ - 8044235-include-all-srcs.patch: src.zip should include all sources.
+ - 8073139-rh1191652-hotspot-aarch64.patch,
+ 8073139-rh1191652-jdk.patch,
+ 8073139-rh1191652-root.patch: PPC64LE JVM reporting issues.
+- Moved both patch series to 8u202 sections.
+
+* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
+- Add explicit requirement for libXcomposite which is used when performing
+ screenshots from Java.
+- Add explicit BR unzip required for building OpenJDK.
+
+* Thu Sep 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-4
+- Add fixes for optimization gaps (annocheck issues):
+ - 8210761: libjsig is being compiled without optimization
+ - 8210647: libsaproc is being compiled without optimization
+ - 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+ - 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+ 8u upstream and aarch64/jdk8u upstream versions.
+
+* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
+- Renamed more patches for clarity:
+ include-all-srcs.patch => 8044235-include-all-srcs.patch
+ java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
8073139-rh1191652-hotspot-aarch64.patch
+ java-1.8.0-openjdk-rh1191652-jdk.patch => 8073139-rh1191652-jdk.patch
+ java-1.8.0-openjdk-rh1191652-root.patch => 8073139-rh1191652-root.patch
+
+* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
+- Update(s) from upstreamed patches:
+ - 8036003-dont-add-unnecessary-debug-links.patch =>
+ 8036003-add-with-native-debug-symbols-configure-flag.patch
+ - rh1176206-jdk.patch =>
+ 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch =>
+ Deleted rh1176206-root.patch as thats no longer needed with
+ upstream 8150954.
+ - Refreshed 8165852-pr3468.patch from upstream.
+ - Refreshed 8201495-s390-java-opts.patch from upstream.
+ - 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
+ 8207057-pr3613-assembler-debuginfo-hotspot.patch and
+ 8207057-pr3613-assembler-debuginfo-root.patch. From JDK 8u
+ review.
+- Renamed pr2842-02.patch => 8148351-pr2842-02.patch.
+- Renamed spec-only patch:
+ pr3183.patch => pr3183-rh1340845-system-crypto-policy.patch
+- Renamed java-1.8.0-openjdk-size_t.patch =>
+ 8201495-s390-java-opts.patch
+- Moved SunEC provider via system NSS to RPM specific patches section.
+- Moved upstream 8u patches to appropriate sections (8u192/8u202).
+- Removed rh1214835.patch since it's invalid. See:
+
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
+- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
+
+* Tue Sep 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b15-1
+- fixed unexpanded arch in policy tool desktop file
+- fixed versions (8->1.8.0) of images used in desktop files
+
* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
- Adjust system jpeg patch, system-libjpeg.patch, so as to filter
-Wl,--as-needed. Resolves RHBZ#1622186.
diff --git a/java-1.8.0-openjdk.spec.orig b/java-1.8.0-openjdk.spec.orig
new file mode 100644
index 0000000..80edc64
--- /dev/null
+++ b/java-1.8.0-openjdk.spec.orig
@@ -0,0 +1,3557 @@
+# RPM conditionals so as to be able to dynamically produce
+# slowdebug/release builds. See:
+#
http://rpm.org/user_doc/conditional_builds.html
+#
+# Examples:
+#
+# Produce release *and* slowdebug builds on x86_64 (default):
+# $ rpmbuild -ba java-1.8.0-openjdk.spec
+#
+# Produce only release builds (no slowdebug builds) on x86_64:
+# $ rpmbuild -ba java-1.8.0-openjdk.spec --without slowdebug
+#
+# Only produce a release build on x86_64:
+# $ fedpkg mockbuild --without slowdebug
+#
+# Only produce a debug build on x86_64:
+# $ fedpkg local --without release
+#
+# Enable slowdebug builds by default on relevant arches.
+%bcond_without slowdebug
+# Enable release builds by default on relevant arches.
+%bcond_without release
+
+%define _find_debuginfo_opts -g
+# note: parametrized macros are order-sensitive (unlike not-parametrized) even with
normal macros
+# also necessary when passing it as parameter to other macros. If not macro, then it is
considered a switch
+# see the difference between global and define:
+# See
https://github.com/rpm-software-management/rpm/issues/127 to comments at
"pmatilai commented on Aug 18, 2017"
+# (initiated in
https://bugzilla.redhat.com/show_bug.cgi?id=1482192)
+%global debug_suffix_unquoted -debug
+# quoted one for shell operations
+%global debug_suffix "%{debug_suffix_unquoted}"
+%global normal_suffix ""
+
+# if you want only debug build but providing java build only normal build but set
normalbuild_parameter
+%global debugbuild_parameter slowdebug
+%global normalbuild_parameter release
+%global debug_warning This package has full debug on. Install only in need and remove
asap.
+%global debug_on with full debug on
+%global for_debug for packages with debug on
+
+%if %{with release}
+%global include_normal_build 1
+%else
+%global include_normal_build 0
+%endif
+
+%if %{include_normal_build}
+%global build_loop1 %{normal_suffix}
+%else
+%global build_loop1 %{nil}
+%endif
+
+%global aarch64 aarch64 arm64 armv8
+# we need to distinguish between big and little endian PPC64
+%global ppc64le ppc64le
+%global ppc64be ppc64 ppc64p7
+%global multilib_arches %{power64} sparc64 x86_64
+%global jit_arches %{ix86} x86_64 sparcv9 sparc64 %{aarch64} %{power64}
+
+# By default, we build a debug build during main build on JIT architectures
+%if %{with slowdebug}
+%ifarch %{jit_arches}
+%ifnarch %{arm}
+%global include_debug_build 1
+%else
+%global include_debug_build 0
+%endif
+%else
+%global include_debug_build 0
+%endif
+%else
+%global include_debug_build 0
+%endif
+
+# On x86_64 and AArch64, we use the Shenandoah HotSpot
+%ifarch x86_64 %{aarch64}
+%global use_shenandoah_hotspot 1
+%else
+%global use_shenandoah_hotspot 0
+%endif
+
+%if %{include_debug_build}
+%global build_loop2 %{debug_suffix}
+%else
+%global build_loop2 %{nil}
+%endif
+
+# if you disable both builds, then the build fails
+%global build_loop %{build_loop1} %{build_loop2}
+# note: that order: normal_suffix debug_suffix, in case of both enabled
+# is expected in one single case at the end of the build
+%global rev_build_loop %{build_loop2} %{build_loop1}
+
+%ifarch %{jit_arches}
+%global bootstrap_build 1
+%else
+%global bootstrap_build 1
+%endif
+
+%if %{bootstrap_build}
+%global targets bootcycle-images docs
+%else
+%global targets all
+%endif
+
+
+# Filter out flags from the optflags macro that cause problems with the OpenJDK build
+# We filter out -O flags so that the optimization of HotSpot is not lowered from O3 to
O2
+# We filter out -Wall which will otherwise cause HotSpot to produce hundreds of thousands
of warnings (100+mb logs)
+# We replace it with -Wformat (required by -Werror=format-security) and -Wno-cpp to avoid
FORTIFY_SOURCE warnings
+# We filter out -fexceptions as the HotSpot build explicitly does -fno-exceptions and
it's otherwise the default for C++
+%global ourflags %(echo %optflags | sed -e 's|-Wall|-Wformat -Wno-cpp|' | sed -r
-e 's|-O[0-9]*||')
+%global ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||')
+%global ourldflags %{__global_ldflags}
+
+# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
+# the initialization must be here. Later the pkg-config have buggy behavior
+# looks like openjdk RPM specific bug
+# Always set this so the nss.cfg file is not broken
+%global NSS_LIBDIR %(pkg-config --variable=libdir nss)
+%global NSS_LIBS %(pkg-config --libs nss)
+%global NSS_CFLAGS %(pkg-config --cflags nss-softokn)
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=1332456
+%global NSSSOFTOKN_BUILDTIME_NUMBER %(pkg-config --modversion nss-softokn || : )
+%global NSS_BUILDTIME_NUMBER %(pkg-config --modversion nss || : )
+# this is workaround for processing of requires during srpm creation
+%global NSSSOFTOKN_BUILDTIME_VERSION %(if [ "x%{NSSSOFTOKN_BUILDTIME_NUMBER}"
== "x" ] ; then echo "" ;else echo ">=
%{NSSSOFTOKN_BUILDTIME_NUMBER}" ;fi)
+%global NSS_BUILDTIME_VERSION %(if [ "x%{NSS_BUILDTIME_NUMBER}" ==
"x" ] ; then echo "" ;else echo ">=
%{NSS_BUILDTIME_NUMBER}" ;fi)
+
+
+# Fix for
https://bugzilla.redhat.com/show_bug.cgi?id=1111349.
+# See also
https://bugzilla.redhat.com/show_bug.cgi?id=1590796
+# as to why some libraries *cannot* be excluded. In particular,
+# these are:
+# libjsig.so, libjava.so, libjawt.so, libjvm.so and libverify.so
+%global _privatelibs
libatk-wrapper[.]so.*|libattach[.]so.*|libawt_headless[.]so.*|libawt[.]so.*|libawt_xawt[.]so.*|libdt_socket[.]so.*|libfontmanager[.]so.*|libhprof[.]so.*|libinstrument[.]so.*|libj2gss[.]so.*|libj2pcsc[.]so.*|libj2pkcs11[.]so.*|libjaas_unix[.]so.*|libjava_crw_demo[.]so.*|libjavajpeg[.]so.*|libjdwp[.]so.*|libjli[.]so.*|libjsdt[.]so.*|libjsoundalsa[.]so.*|libjsound[.]so.*|liblcms[.]so.*|libmanagement[.]so.*|libmlib_image[.]so.*|libnet[.]so.*|libnio[.]so.*|libnpt[.]so.*|libsaproc[.]so.*|libsctp[.]so.*|libsplashscreen[.]so.*|libsunec[.]so.*|libunpack[.]so.*|libzip[.]so.*|lib[.]so\\(SUNWprivate_.*
+
+%global __provides_exclude ^(%{_privatelibs})$
+%global __requires_exclude ^(%{_privatelibs})$
+
+# In some cases, the arch used by the JDK does
+# not match _arch.
+# Also, in some cases, the machine name used by SystemTap
+# does not match that given by _build_cpu
+%ifarch x86_64
+%global archinstall amd64
+%endif
+%ifarch ppc
+%global archinstall ppc
+%endif
+%ifarch %{ppc64be}
+%global archinstall ppc64
+%endif
+%ifarch %{ppc64le}
+%global archinstall ppc64le
+%endif
+%ifarch %{ix86}
+%global archinstall i386
+%endif
+%ifarch ia64
+%global archinstall ia64
+%endif
+%ifarch s390
+%global archinstall s390
+%endif
+%ifarch s390x
+%global archinstall s390x
+%endif
+%ifarch %{arm}
+%global archinstall arm
+%endif
+%ifarch %{aarch64}
+%global archinstall aarch64
+%endif
+# 32 bit sparc, optimized for v9
+%ifarch sparcv9
+%global archinstall sparc
+%endif
+# 64 bit sparc
+%ifarch sparc64
+%global archinstall sparcv9
+%endif
+%ifnarch %{jit_arches}
+%global archinstall %{_arch}
+%endif
+
+
+
+%ifarch %{jit_arches}
+%global with_systemtap 1
+%else
+%global with_systemtap 0
+%endif
+
+# New Version-String scheme-style defines
+%global majorver 8
+
+%ifarch %{ix86} x86_64
+%global with_openjfx_binding 1
+%global openjfx_path %{_jvmdir}/openjfx
+# links src directories
+%global jfx_jre_libs_dir %{openjfx_path}/rt/lib
+%global jfx_jre_native_dir %{jfx_jre_libs_dir}/%{archinstall}
+%global jfx_sdk_libs_dir %{openjfx_path}/lib
+%global jfx_sdk_bins_dir %{openjfx_path}/bin
+%global jfx_jre_exts_dir %{jfx_jre_libs_dir}/ext
+# links src files
+# maybe depend on jfx and generate the lists in build time? Yes, bad idea to inlcude
cyclic depndenci, but this list is aweful
+%global jfx_jre_libs jfxswt.jar javafx.properties
+%global jfx_jre_native libprism_es2.so libprism_common.so libjavafx_font.so
libdecora_sse.so libjavafx_font_freetype.so libprism_sw.so libjavafx_font_pango.so
libglass.so libjavafx_iio.so
+%global jfx_sdk_libs javafx-mx.jar packager.jar ant-javafx.jar
+%global jfx_sdk_bins javafxpackager javapackager
+%global jfx_jre_exts jfxrt.jar
+%else
+%global with_openjfx_binding 0
+%endif
+
+# Standard JPackage naming and versioning defines.
+%global origin openjdk
+%global origin_nice OpenJDK
+%global top_level_dir_name %{origin}
+# note, following three variables are sedded from update_sources if used correctly.
Hardcode them rather there.
+%global shenandoah_project aarch64-port
+%global shenandoah_repo jdk8u-shenandoah
+%global shenandoah_revision aarch64-shenandoah-jdk8u181-b15
+# Define old aarch64/jdk8u tree variables for compatibility
+%global project %{shenandoah_project}
+%global repo %{shenandoah_repo}
+%global revision %{shenandoah_revision}
+
+# eg # jdk8u60-b27 -> jdk8u60 or # aarch64-jdk8u60-b27 -> aarch64-jdk8u60 (dont
forget spec escape % by %%)
+%global whole_update %(VERSION=%{revision}; echo ${VERSION%%-*})
+# eg jdk8u60 -> 60 or aarch64-jdk8u60 -> 60
+%global updatever %(VERSION=%{whole_update}; echo ${VERSION##*u})
+# eg jdk8u60-b27 -> b27
+%global buildver %(VERSION=%{revision}; echo ${VERSION##*-})
+# priority must be 7 digits in total. The expression is workarounding tip
+%global priority %(TIP=1800%{updatever}; echo ${TIP/tip/999})
+
+%global javaver 1.%{majorver}.0
+
+# parametrized macros are order-sensitive
+%global compatiblename %{name}
+%global fullversion %{compatiblename}-%{version}-%{release}
+# images stub
+%global jdkimage j2sdk-image
+# output dir stub
+%define buildoutputdir() %{expand:openjdk/build/jdk8.build%{?1}}
+# we can copy the javadoc to not arched dir, or make it not noarch
+%define uniquejavadocdir() %{expand:%{fullversion}%{?1}}
+# main id and dir of this jdk
+%define uniquesuffix() %{expand:%{fullversion}.%{_arch}%{?1}}
+
+# Standard JPackage directories and symbolic links.
+%define sdkdir() %{expand:%{uniquesuffix -- %{?1}}}
+%define jrelnk()
%{expand:jre-%{javaver}-%{origin}-%{version}-%{release}.%{_arch}%{?1}}
+
+%define jredir() %{expand:%{sdkdir -- %{?1}}/jre}
+%define sdkbindir() %{expand:%{_jvmdir}/%{sdkdir -- %{?1}}/bin}
+%define jrebindir() %{expand:%{_jvmdir}/%{jredir -- %{?1}}/bin}
+
+%global rpm_state_dir %{_localstatedir}/lib/rpm-state/
+
+%if %{with_systemtap}
+# Where to install systemtap tapset (links)
+# We would like these to be in a package specific sub-dir,
+# but currently systemtap doesn't support that, so we have to
+# use the root tapset dir for now. To distinguish between 64
+# and 32 bit architectures we place the tapsets under the arch
+# specific dir (note that systemtap will only pickup the tapset
+# for the primary arch for now). Systemtap uses the machine name
+# aka build_cpu as architecture specific directory name.
+%global tapsetroot /usr/share/systemtap
+%global tapsetdirttapset %{tapsetroot}/tapset/
+%global tapsetdir %{tapsetdirttapset}/%{_build_cpu}
+%endif
+
+# not-duplicated scriptlets for normal/debug packages
+%global update_desktop_icons /usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor
&>/dev/null || :
+
+
+%define post_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+exit 0
+}
+
+
+%define post_headless() %{expand:
+%ifarch %{jit_arches}
+# MetaspaceShared::generate_vtable_methods not implemented for PPC JIT
+%ifnarch %{power64}
+# see
https://bugzilla.redhat.com/show_bug.cgi?id=513605
+%{jrebindir -- %{?1}}/java -Xshare:dump >/dev/null 2>/dev/null
+%endif
+%endif
+
+PRIORITY=%{priority}
+if [ "%{?1}" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
+ext=.gz
+alternatives \\
+ --install %{_bindir}/java java %{jrebindir -- %{?1}}/java $PRIORITY --family
%{name}.%{_arch} \\
+ --slave %{_jvmdir}/jre jre %{_jvmdir}/%{jredir -- %{?1}} \\
+ --slave %{_bindir}/jjs jjs %{jrebindir -- %{?1}}/jjs \\
+ --slave %{_bindir}/keytool keytool %{jrebindir -- %{?1}}/keytool \\
+ --slave %{_bindir}/orbd orbd %{jrebindir -- %{?1}}/orbd \\
+ --slave %{_bindir}/pack200 pack200 %{jrebindir -- %{?1}}/pack200 \\
+ --slave %{_bindir}/rmid rmid %{jrebindir -- %{?1}}/rmid \\
+ --slave %{_bindir}/rmiregistry rmiregistry %{jrebindir -- %{?1}}/rmiregistry \\
+ --slave %{_bindir}/servertool servertool %{jrebindir -- %{?1}}/servertool \\
+ --slave %{_bindir}/tnameserv tnameserv %{jrebindir -- %{?1}}/tnameserv \\
+ --slave %{_bindir}/policytool policytool %{jrebindir -- %{?1}}/policytool \\
+ --slave %{_bindir}/unpack200 unpack200 %{jrebindir -- %{?1}}/unpack200 \\
+ --slave %{_mandir}/man1/java.1$ext java.1$ext \\
+ %{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jjs.1$ext jjs.1$ext \\
+ %{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/keytool.1$ext keytool.1$ext \\
+ %{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/orbd.1$ext orbd.1$ext \\
+ %{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/pack200.1$ext pack200.1$ext \\
+ %{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/rmid.1$ext rmid.1$ext \\
+ %{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/rmiregistry.1$ext rmiregistry.1$ext \\
+ %{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/servertool.1$ext servertool.1$ext \\
+ %{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/tnameserv.1$ext tnameserv.1$ext \\
+ %{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/policytool.1$ext policytool.1$ext \\
+ %{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/unpack200.1$ext unpack200.1$ext \\
+ %{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives --install %{_jvmdir}/jre-"$X" jre_"$X"
%{_jvmdir}/%{jredir -- %{?1}} $PRIORITY --family %{name}.%{_arch}
+done
+
+update-alternatives --install %{_jvmdir}/jre-%{javaver}-%{origin}
jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+# see pretrans where this file is declared
+# also see that pretrans is only for non-debug
+if [ ! "%{?1}" == %{debug_suffix} ]; then
+ if [ -f %{_libexecdir}/copy_jdk_configs_fixFiles.sh ] ; then
+ sh %{_libexecdir}/copy_jdk_configs_fixFiles.sh %{rpm_state_dir}/%{name}.%{_arch}
%{_jvmdir}/%{sdkdir -- %{?1}}
+ fi
+fi
+
+exit 0
+}
+
+%define postun_script() %{expand:
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ %{update_desktop_icons}
+fi
+exit 0
+}
+
+
+%define postun_headless() %{expand:
+ alternatives --remove java %{jrebindir -- %{?1}}/java
+ alternatives --remove jre_%{origin} %{_jvmdir}/%{jredir -- %{?1}}
+ alternatives --remove jre_%{javaver} %{_jvmdir}/%{jredir -- %{?1}}
+ alternatives --remove jre_%{javaver}_%{origin} %{_jvmdir}/%{jrelnk -- %{?1}}
+}
+
+%define posttrans_script() %{expand:
+%{update_desktop_icons}
+}
+
+%define post_devel() %{expand:
+
+PRIORITY=%{priority}
+if [ "%{?1}" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
+ext=.gz
+alternatives \\
+ --install %{_bindir}/javac javac %{sdkbindir -- %{?1}}/javac $PRIORITY --family
%{name}.%{_arch} \\
+ --slave %{_jvmdir}/java java_sdk %{_jvmdir}/%{sdkdir -- %{?1}} \\
+ --slave %{_bindir}/appletviewer appletviewer %{sdkbindir -- %{?1}}/appletviewer \\
+ --slave %{_bindir}/extcheck extcheck %{sdkbindir -- %{?1}}/extcheck \\
+ --slave %{_bindir}/idlj idlj %{sdkbindir -- %{?1}}/idlj \\
+ --slave %{_bindir}/jar jar %{sdkbindir -- %{?1}}/jar \\
+ --slave %{_bindir}/jarsigner jarsigner %{sdkbindir -- %{?1}}/jarsigner \\
+ --slave %{_bindir}/javadoc javadoc %{sdkbindir -- %{?1}}/javadoc \\
+ --slave %{_bindir}/javah javah %{sdkbindir -- %{?1}}/javah \\
+ --slave %{_bindir}/javap javap %{sdkbindir -- %{?1}}/javap \\
+ --slave %{_bindir}/jcmd jcmd %{sdkbindir -- %{?1}}/jcmd \\
+ --slave %{_bindir}/jconsole jconsole %{sdkbindir -- %{?1}}/jconsole \\
+ --slave %{_bindir}/jdb jdb %{sdkbindir -- %{?1}}/jdb \\
+ --slave %{_bindir}/jdeps jdeps %{sdkbindir -- %{?1}}/jdeps \\
+ --slave %{_bindir}/jhat jhat %{sdkbindir -- %{?1}}/jhat \\
+ --slave %{_bindir}/jinfo jinfo %{sdkbindir -- %{?1}}/jinfo \\
+ --slave %{_bindir}/jmap jmap %{sdkbindir -- %{?1}}/jmap \\
+ --slave %{_bindir}/jps jps %{sdkbindir -- %{?1}}/jps \\
+ --slave %{_bindir}/jrunscript jrunscript %{sdkbindir -- %{?1}}/jrunscript \\
+ --slave %{_bindir}/jsadebugd jsadebugd %{sdkbindir -- %{?1}}/jsadebugd \\
+ --slave %{_bindir}/jstack jstack %{sdkbindir -- %{?1}}/jstack \\
+ --slave %{_bindir}/jstat jstat %{sdkbindir -- %{?1}}/jstat \\
+ --slave %{_bindir}/jstatd jstatd %{sdkbindir -- %{?1}}/jstatd \\
+ --slave %{_bindir}/native2ascii native2ascii %{sdkbindir -- %{?1}}/native2ascii \\
+ --slave %{_bindir}/rmic rmic %{sdkbindir -- %{?1}}/rmic \\
+ --slave %{_bindir}/schemagen schemagen %{sdkbindir -- %{?1}}/schemagen \\
+ --slave %{_bindir}/serialver serialver %{sdkbindir -- %{?1}}/serialver \\
+ --slave %{_bindir}/wsgen wsgen %{sdkbindir -- %{?1}}/wsgen \\
+ --slave %{_bindir}/wsimport wsimport %{sdkbindir -- %{?1}}/wsimport \\
+ --slave %{_bindir}/xjc xjc %{sdkbindir -- %{?1}}/xjc \\
+ --slave %{_mandir}/man1/appletviewer.1$ext appletviewer.1$ext \\
+ %{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/extcheck.1$ext extcheck.1$ext \\
+ %{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/idlj.1$ext idlj.1$ext \\
+ %{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jar.1$ext jar.1$ext \\
+ %{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jarsigner.1$ext jarsigner.1$ext \\
+ %{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/javac.1$ext javac.1$ext \\
+ %{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/javadoc.1$ext javadoc.1$ext \\
+ %{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/javah.1$ext javah.1$ext \\
+ %{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/javap.1$ext javap.1$ext \\
+ %{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jcmd.1$ext jcmd.1$ext \\
+ %{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jconsole.1$ext jconsole.1$ext \\
+ %{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jdb.1$ext jdb.1$ext \\
+ %{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jdeps.1$ext jdeps.1$ext \\
+ %{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jhat.1$ext jhat.1$ext \\
+ %{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jinfo.1$ext jinfo.1$ext \\
+ %{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jmap.1$ext jmap.1$ext \\
+ %{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jps.1$ext jps.1$ext \\
+ %{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jrunscript.1$ext jrunscript.1$ext \\
+ %{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jsadebugd.1$ext jsadebugd.1$ext \\
+ %{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jstack.1$ext jstack.1$ext \\
+ %{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jstat.1$ext jstat.1$ext \\
+ %{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/jstatd.1$ext jstatd.1$ext \\
+ %{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/native2ascii.1$ext native2ascii.1$ext \\
+ %{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/rmic.1$ext rmic.1$ext \\
+ %{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/schemagen.1$ext schemagen.1$ext \\
+ %{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/serialver.1$ext serialver.1$ext \\
+ %{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/wsgen.1$ext wsgen.1$ext \\
+ %{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/wsimport.1$ext wsimport.1$ext \\
+ %{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1$ext \\
+ --slave %{_mandir}/man1/xjc.1$ext xjc.1$ext \\
+ %{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1$ext
+
+for X in %{origin} %{javaver} ; do
+ alternatives \\
+ --install %{_jvmdir}/java-"$X" java_sdk_"$X" %{_jvmdir}/%{sdkdir
-- %{?1}} $PRIORITY --family %{name}.%{_arch}
+done
+
+update-alternatives --install %{_jvmdir}/java-%{javaver}-%{origin}
java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}} $PRIORITY --family
%{name}.%{_arch}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+/bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
+
+exit 0
+}
+
+%define postun_devel() %{expand:
+ alternatives --remove javac %{sdkbindir -- %{?1}}/javac
+ alternatives --remove java_sdk_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+ alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdkdir -- %{?1}}
+ alternatives --remove java_sdk_%{javaver}_%{origin} %{_jvmdir}/%{sdkdir -- %{?1}}
+
+update-desktop-database %{_datadir}/applications &> /dev/null || :
+
+if [ $1 -eq 0 ] ; then
+ /bin/touch --no-create %{_datadir}/icons/hicolor &>/dev/null
+ %{update_desktop_icons}
+fi
+exit 0
+}
+
+%define posttrans_devel() %{expand:
+%{update_desktop_icons}
+}
+
+%define post_javadoc() %{expand:
+
+PRIORITY=%{priority}
+if [ "%{?1}" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
+alternatives \\
+ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{uniquejavadocdir --
%{?1}}/api \\
+ $PRIORITY --family %{name}
+exit 0
+}
+
+%define postun_javadoc() %{expand:
+ alternatives --remove javadocdir %{_javadocdir}/%{uniquejavadocdir -- %{?1}}/api
+exit 0
+}
+
+%define post_javadoc_zip() %{expand:
+
+PRIORITY=%{priority}
+if [ "%{?1}" == %{debug_suffix} ]; then
+ let PRIORITY=PRIORITY-1
+fi
+
+alternatives \\
+ --install %{_javadocdir}/java-zip javadoczip %{_javadocdir}/%{uniquejavadocdir --
%{?1}}.zip \\
+ $PRIORITY --family %{name}
+exit 0
+}
+
+%define postun_javadoc_zip() %{expand:
+ alternatives --remove javadoczip %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+exit 0
+}
+
+%define files_jre() %{expand:
+%{_datadir}/icons/hicolor/*x*/apps/java-%{javaver}-%{origin}.png
+%{_datadir}/applications/*policytool%{?1}.desktop
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjsoundalsa.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libsplashscreen.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libawt_xawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/lib/%{archinstall}/libjawt.so
+%{_jvmdir}/%{sdkdir -- %{?1}}/jre/bin/policytool
+}
+
+
+%define files_jre_headless() %{expand:
+%defattr(-,root,root,-)
+%dir %{_sysconfdir}/.java/.systemPrefs
+%dir %{_sysconfdir}/.java
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}
+%{_jvmdir}/%{jrelnk -- %{?1}}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security
+%{_jvmdir}/%{jredir -- %{?1}}/lib/security/cacerts
+%dir %{_jvmdir}/%{jredir -- %{?1}}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/bin
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib
+%{_jvmdir}/%{jredir -- %{?1}}/bin/java
+%{_jvmdir}/%{jredir -- %{?1}}/bin/jjs
+%{_jvmdir}/%{jredir -- %{?1}}/bin/keytool
+%{_jvmdir}/%{jredir -- %{?1}}/bin/orbd
+%{_jvmdir}/%{jredir -- %{?1}}/bin/pack200
+%{_jvmdir}/%{jredir -- %{?1}}/bin/rmid
+%{_jvmdir}/%{jredir -- %{?1}}/bin/rmiregistry
+%{_jvmdir}/%{jredir -- %{?1}}/bin/servertool
+%{_jvmdir}/%{jredir -- %{?1}}/bin/tnameserv
+%{_jvmdir}/%{jredir -- %{?1}}/bin/unpack200
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/unlimited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/limited/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/security/policy/
+%config(noreplace) %{_jvmdir}/%{jredir --
%{?1}}/lib/security/policy/unlimited/US_export_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir --
%{?1}}/lib/security/policy/unlimited/local_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir --
%{?1}}/lib/security/policy/limited/US_export_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir --
%{?1}}/lib/security/policy/limited/local_policy.jar
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.policy
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/java.security
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/blacklisted.certs
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/logging.properties
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/calendars.properties
+%{_mandir}/man1/java-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jjs-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/keytool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/orbd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/pack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmid-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmiregistry-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/servertool-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/tnameserv-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/unpack200-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/policytool-%{uniquesuffix -- %{?1}}.1*
+%config(noreplace) %{_jvmdir}/%{jredir -- %{?1}}/lib/security/nss.cfg
+%ifarch %{jit_arches}
+%ifnarch %{power64}
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/server/classes.jsa
+%attr(444, root, root) %ghost %{_jvmdir}/%{jredir --
%{?1}}/lib/%{archinstall}/client/classes.jsa
+%endif
+%endif
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/server/
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/client/
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jli/libjli.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/jvm.cfg
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libattach.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libawt_headless.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libdt_socket.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libfontmanager.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libhprof.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libinstrument.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2gss.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pcsc.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libj2pkcs11.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjaas_unix.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjava_crw_demo.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjavajpeg.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjdwp.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsdt.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsig.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libjsound.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/liblcms.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmanagement.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libmlib_image.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnet.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnio.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libnpt.so
+%ifarch x86_64 %{ix86} %{aarch64}
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsaproc.so
+%endif
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsctp.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libsunec.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libunpack.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libverify.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libzip.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/charsets.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/classlist
+%{_jvmdir}/%{jredir -- %{?1}}/lib/content-types.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/currency.data
+%{_jvmdir}/%{jredir -- %{?1}}/lib/flavormap.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/hijrah-config-umalqura.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors/*
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jce.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jexec
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jsse.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/jvm.hprof.txt
+%{_jvmdir}/%{jredir -- %{?1}}/lib/meta-index
+%{_jvmdir}/%{jredir -- %{?1}}/lib/net.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/psfont.properties.ja
+%{_jvmdir}/%{jredir -- %{?1}}/lib/psfontj2d.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/resources.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/rt.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/sound.properties
+%{_jvmdir}/%{jredir -- %{?1}}/lib/tzdb.dat
+%{_jvmdir}/%{jredir -- %{?1}}/lib/management-agent.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/management/*
+%{_jvmdir}/%{jredir -- %{?1}}/lib/cmm/*
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/cldrdata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/dnsns.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/jaccess.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/localedata.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/meta-index
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/nashorn.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunec.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunjce_provider.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/sunpkcs11.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/zipfs.jar
+
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/images/cursors
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/management
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/cmm
+%dir %{_jvmdir}/%{jredir -- %{?1}}/lib/ext
+}
+
+%define files_devel() %{expand:
+%defattr(-,root,root,-)
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/ASSEMBLY_EXCEPTION
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/LICENSE
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/THIRD_PARTY_README
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/bin
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/include
+%dir %{_jvmdir}/%{sdkdir -- %{?1}}/lib
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/appletviewer
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/extcheck
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/idlj
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jarsigner
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javac
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javadoc
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javah
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/javap
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/java-rmi.cgi
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jcmd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jconsole
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdb
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jdeps
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jhat
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jinfo
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jjs
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jmap
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jps
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jrunscript
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jsadebugd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstack
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstat
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/jstatd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/keytool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/native2ascii
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/orbd
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/pack200
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/policytool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmic
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmid
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/rmiregistry
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/schemagen
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/serialver
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/servertool
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/tnameserv
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/unpack200
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsgen
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/wsimport
+%{_jvmdir}/%{sdkdir -- %{?1}}/bin/xjc
+%{_jvmdir}/%{sdkdir -- %{?1}}/include/*
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/%{archinstall}
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ct.sym
+%if %{with_systemtap}
+%{_jvmdir}/%{sdkdir -- %{?1}}/tapset
+%endif
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/ir.idl
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jconsole.jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/orb.idl
+%ifarch x86_64 %{ix86}
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/sa-jdi.jar
+%endif
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/dt.jar
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/jexec
+%{_jvmdir}/%{sdkdir -- %{?1}}/lib/tools.jar
+%{_datadir}/applications/*jconsole%{?1}.desktop
+%{_mandir}/man1/appletviewer-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/extcheck-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/idlj-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jar-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jarsigner-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javac-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javadoc-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javah-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/javap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jconsole-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jcmd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdb-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jdeps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jhat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jinfo-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jmap-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jps-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jrunscript-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jsadebugd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstack-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstat-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/jstatd-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/native2ascii-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/rmic-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/schemagen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/serialver-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsgen-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/wsimport-%{uniquesuffix -- %{?1}}.1*
+%{_mandir}/man1/xjc-%{uniquesuffix -- %{?1}}.1*
+%if %{with_systemtap}
+%dir %{tapsetroot}
+%dir %{tapsetdirttapset}
+%dir %{tapsetdir}
+%{tapsetdir}/*%{_arch}%{?1}.stp
+%endif
+}
+
+%define files_demo() %{expand:
+%defattr(-,root,root,-)
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_src() %{expand:
+%defattr(-,root,root,-)
+%doc README.md
+%{_jvmdir}/%{sdkdir -- %{?1}}/src.zip
+}
+
+%define files_javadoc() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_javadoc_zip() %{expand:
+%defattr(-,root,root,-)
+%doc %{_javadocdir}/%{uniquejavadocdir -- %{?1}}.zip
+%license %{buildoutputdir -- %{?1}}/images/%{jdkimage}/jre/LICENSE
+}
+
+%define files_accessibility() %{expand:
+%{_jvmdir}/%{jredir -- %{?1}}/lib/%{archinstall}/libatk-wrapper.so
+%{_jvmdir}/%{jredir -- %{?1}}/lib/ext/java-atk-wrapper.jar
+%{_jvmdir}/%{jredir -- %{?1}}/lib/accessibility.properties
+}
+
+# not-duplicated requires/provides/obsoletes for normal/debug packages
+%define java_rpo() %{expand:
+Requires: fontconfig%{?_isa}
+Requires: xorg-x11-fonts-Type1
+# Requires rest of java
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# for java-X-openjdk package's desktop binding
+Recommends: gtk2%{?_isa}
+
+Provides: java-%{javaver}-%{origin} = %{epoch}:%{version}-%{release}
+
+# Standard JPackage base provides
+Provides: jre = %{javaver}%{?1}
+Provides: jre-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}%{?1} = %{epoch}:%{version}-%{release}
+Provides: java%{?1} = %{epoch}:%{javaver}
+}
+
+%define java_headless_rpo() %{expand:
+# Require /etc/pki/java/cacerts
+Requires: ca-certificates
+# Require javapackages-filesystem for ownership of /usr/lib/jvm/
+Requires: javapackages-filesystem
+# Require zone-info data provided by tzdata-java sub-package
+Requires: tzdata-java >= 2015d
+# libsctp.so.1 is being `dlopen`ed on demand
+Requires: lksctp-tools%{?_isa}
+# there is a need to depend on the exact version of NSS
+Requires: nss%{?_isa} %{NSS_BUILDTIME_VERSION}
+Requires: nss-softokn%{?_isa} %{NSSSOFTOKN_BUILDTIME_VERSION}
+# tool to copy jdk's configs - should be Recommends only, but then only dnf/yum
enforce it,
+# not rpm transaction and so no configs are persisted when pure rpm -u is run. It may be
+# considered as regression
+Requires: copy-jdk-configs >= 3.3
+OrderWithRequires: copy-jdk-configs
+# Post requires alternatives to install tool alternatives
+Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
+# Postun requires alternatives to uninstall tool alternatives
+Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
+# for optional support of kernel stream control, card reader and printing bindings
+Suggests: lksctp-tools%{?_isa}, pcsc-lite-devel%{?_isa}, cups
+
+# Standard JPackage base provides
+Provides: jre-headless%{?1} = %{epoch}:%{javaver}
+Provides: jre-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: jre-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{origin}-headless%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-headless%{?1} = %{epoch}:%{javaver}
+
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1312019
+Provides: /usr/bin/jjs
+
+}
+
+%define java_devel_rpo() %{expand:
+# Requires base package
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install tool alternatives
+Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
+# Postun requires alternatives to uninstall tool alternatives
+Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
+
+# Standard JPackage devel provides
+Provides: java-sdk-%{javaver}-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-sdk-%{javaver}%{?1} = %{epoch}:%{version}
+Provides: java-sdk-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-sdk%{?1} = %{epoch}:%{javaver}
+Provides: java-%{javaver}-devel%{?1} = %{epoch}:%{version}
+Provides: java-%{javaver}-%{origin}-devel%{?1} = %{epoch}:%{version}
+Provides: java-devel-%{origin}%{?1} = %{epoch}:%{version}
+Provides: java-devel%{?1} = %{epoch}:%{javaver}
+
+}
+
+
+%define java_demo_rpo() %{expand:
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+Provides: java-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-demo%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-demo%{?1} = %{epoch}:%{version}-%{release}
+
+}
+
+%define java_javadoc_rpo() %{expand:
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+# Post requires alternatives to install javadoc alternative
+Requires(post): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(post): chkconfig >= 1.7
+# Postun requires alternatives to uninstall javadoc alternative
+Requires(postun): %{_sbindir}/alternatives
+# in version 1.7 and higher for --family switch
+Requires(postun): chkconfig >= 1.7
+
+# Standard JPackage javadoc provides
+Provides: java-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-javadoc%{?1} = %{epoch}:%{version}-%{release}
+}
+
+%define java_src_rpo() %{expand:
+Requires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+# Standard JPackage sources provides
+Provides: java-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-src%{?1} = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-src%{?1} = %{epoch}:%{version}-%{release}
+}
+
+%define java_accessibility_rpo() %{expand:
+Requires: java-atk-wrapper%{?_isa}
+Requires: %{name}%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+OrderWithRequires: %{name}-headless%{?1}%{?_isa} = %{epoch}:%{version}-%{release}
+
+Provides: java-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-accessibility = %{epoch}:%{version}-%{release}
+Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{release}
+
+}
+
+# Prevent brp-java-repack-jars from being run
+%global __jar_repack 0
+
+Name: java-%{javaver}-%{origin}
+Version: %{javaver}.%{updatever}.%{buildver}
+<<<<<<< HEAD
+Release: 0%{?dist}
+=======
+Release: 7%{?dist}
+>>>>>>> f9c2d20... Add another optimization gap fix for Zero.
+# 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
+# situation where in-the-wild java-1.5.0-ibm packages provided "java =
+# 1:1.5.0". In RPM terms, "1.6.0 < 1:1.5.0" since 1.6.0 is
+# interpreted as 0:1.6.0. So the "java >= 1.6.0" requirement would be
+# satisfied by the 1:1.5.0 packages. Thus we need to set the epoch in
+# JDK package >= 1.6.0 to 1, and packages referring to JDK virtual
+# provides >= 1.6.0 must specify the epoch, "java >= 1:1.6.0".
+
+Epoch: 1
+Summary: %{origin_nice} Runtime Environment %{majorver}
+Group: Development/Languages
+
+# HotSpot code is licensed under GPLv2
+# JDK library code is licensed under GPLv2 with the Classpath exception
+# The Apache license is used in code taken from Apache projects (primarily JAXP &
JAXWS)
+# DOM levels 2 & 3 and the XML digital signature schemas are licensed under the W3C
Software License
+# The JSR166 concurrency code is in the public domain
+# The BSD and MIT licenses are used for a number of third-party libraries (see
THIRD_PARTY_README)
+# The OpenJDK source tree includes the JPEG library (IJG), zlib & libpng (zlib),
giflib and LCMS (MIT)
+# The test code includes copies of NSS under the Mozilla Public License v2.0
+# The PCSClite headers are under a BSD with advertising license
+# The elliptic curve cryptography (ECC) source code is licensed under the LGPLv2.1 or any
later version
+License: ASL 1.1 and ASL 2.0 and BSD and BSD with advertising and GPL+ and GPLv2 and
GPLv2 with exceptions and IJG and LGPLv2+ and MIT and MPLv2.0 and Public Domain and W3C
and zlib
+URL:
http://openjdk.java.net/
+
+# Shenandoah HotSpot
+# aarch64-port/jdk8u-shenandoah contains an integration forest of
+# OpenJDK 8u, the aarch64 port and Shenandoah
+# To regenerate, use:
+# VERSION=%%{shenandoah_revision}
+# FILE_NAME_ROOT=%%{shenandoah_project}-%%{shenandoah_repo}-${VERSION}
+# REPO_ROOT=<path to checked-out repository> generate_source_tarball.sh
+# where the source is obtained from
http://hg.openjdk.java.net/%%{project}/%%{repo}
+Source0: %{shenandoah_project}-%{shenandoah_repo}-%{shenandoah_revision}.tar.xz
+
+# Custom README for -src subpackage
+Source2: README.md
+
+
+# run update_systemtap.sh to regenerate or update systemtap sources
+# update_package.sh contains hard-coded repos, revisions, tags, and projects to
regenerate the source archives
+Source8: systemtap_3.2_tapsets_hg-icedtea8-9d464368e06d.tar.xz
+
+# Desktop files. Adapted from IcedTea
+Source9: jconsole.desktop.in
+Source10: policytool.desktop.in
+
+# nss configuration file
+Source11: nss.cfg.in
+
+# Removed libraries that we link instead
+Source12: %{name}-remove-intree-libraries.sh
+
+# Ensure we aren't using the limited crypto policy
+Source13: TestCryptoLevel.java
+
+# Ensure ECDSA is working
+Source14: TestECDSA.java
+
+Source20: repackReproduciblePolycies.sh
+
+# New versions of config files with aarch64 support. This is not upstream yet.
+Source100: config.guess
+Source101: config.sub
+
+############################################
+#
+# RPM/distribution specific patches
+#
+############################################
+
+# Accessibility patches
+# Ignore AWTError when assistive technologies are loaded
+Patch1: %{name}-accessible-toolkit.patch
+# Restrict access to java-atk-wrapper classes
+Patch3: java-atk-wrapper-security.patch
+
+#############################################
+#
+# Upstreamable patches
+#
+#############################################
+# PR2737: Allow multiple initialization of PKCS11 libraries
+Patch5: multiple-pkcs11-library-init.patch
+# PR2095, RH1163501: 2048-bit DH upper bound too small for Fedora infrastructure (sync
with IcedTea 2.x)
+Patch504: rh1163501.patch
+# S4890063, PR2304, RH1214835: HPROF: default text truncated when using doe=n option
+Patch511: rh1214835.patch
+# Turn off strict overflow on IndicRearrangementProcessor{,2}.cpp following 8140543:
Arrange font actions
+Patch512: no_strict_overflow.patch
+# Support for building the SunEC provider with the system NSS installation
+# PR1983: Support using the system installation of NSS with the SunEC provider
+# PR2127: SunEC provider crashes when built using system NSS
+# PR2815: Race condition in SunEC provider with system NSS
+# PR2899: Don't use WithSeed versions of NSS functions as they don't fully
process the seed
+# PR2934: SunEC provider throwing KeyException with current NSS
+# PR3479, RH1486025: ECC and NSS JVM crash
+Patch513: pr1983-jdk.patch
+Patch514: pr1983-root.patch
+Patch515: pr2127.patch
+Patch516: pr2815.patch
+Patch517: pr2899.patch
+Patch518: pr2934.patch
+Patch519: pr3479-rh1486025.patch
+# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong
result
+# In progress:
http://mail.openjdk.java.net/pipermail/awt-dev/2016-March/010742.html
+Patch508: rh1176206-jdk.patch
+Patch509: rh1176206-root.patch
+# RH1337583, PR2974: PKCS#10 certificate requests now use CRLF line endings rather than
system line endings
+Patch523: pr2974-rh1337583.patch
+# PR3083, RH1346460: Regression in SSL debug output without an ECC provider
+Patch528: pr3083-rh1346460.patch
+# RH1566890: CVE-2018-3639
+Patch529: rh1566890_embargoed20180521.patch
+# PR3601: Fix additional -Wreturn-type issues introduced by 8061651
+Patch530: pr3601.patch
+# PR3183: Support Fedora/RHEL system crypto policy
+Patch300: pr3183.patch
+
+#############################################
+#
+# Upstreamable debugging patches
+#
+#############################################
+# Patches 204 and 205 stop the build adding .gnu_debuglink sections to unstripped files
+# 8207234: More libraries with .gnu_debuglink sections added unconditionally
+Patch205: 8207234-dont-add-unnecessary-debug-links.patch
+
+# Arch-specific upstreamable patches
+# s390: PR2415: JVM -Xmx requirement is too high on s390
+Patch100: %{name}-s390-java-opts.patch
+# s390: Type fixing for s390
+Patch102: %{name}-size_t.patch
+# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
+Patch103: pr3593-s390-size_t_format_flags.patch
+# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
+Patch105: 8199936-pr3533-workaround.patch
+# AArch64: PR3519: Fix further functions with a missing return value (AArch64)
+Patch106: pr3519.patch
+
+#############################################
+#
+# Patches which need backporting to 8u
+#
+#############################################
+# S8073139, RH1191652; fix name of ppc64le architecture
+Patch601: %{name}-rh1191652-root.patch
+Patch602: %{name}-rh1191652-jdk.patch
+Patch603: %{name}-rh1191652-hotspot-aarch64.patch
+# Include all sources in src.zip
+Patch7: include-all-srcs.patch
+# 8035341: Allow using a system installed libpng
+Patch202: system-libpng.patch
+# 8042159: Allow using a system-installed lcms2
+Patch203: system-lcms.patch
+# S8074839, PR2462: Resolve disabled warnings for libunpack and the unpack200 binary
+# This fixes printf warnings that lead to build failure with -Werror=format-security from
optflags
+Patch502: pr2462.patch
+# S8154313: Generated javadoc scattered all over the place
+Patch400: 8154313.patch
+# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger
stack sizes
+Patch561: 8197429-pr3546-rh1536622.patch
+# 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+Patch563: 8171000-pr3542-rh1402819.patch
+# 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
+Patch564: 8197546-pr3542-rh1402819.patch
+# PR3559: Use ldrexd for atomic reads on ARMv7.
+Patch567: pr3559.patch
+# PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+Patch571: pr3591.patch
+# 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+Patch572: 8184309-pr3596.patch
+# 8141570, PR3548: Fix Zero interpreter build for --disable-precompiled-headers
+Patch573: 8141570-pr3548.patch
+# 8143245, PR3548: Zero build requires disabled warnings
+Patch574: 8143245-pr3548.patch
+# 8197981, PR3548: Missing return statement in __sync_val_compare_and_swap_8
+Patch575: 8197981-pr3548.patch
+# 8064786, PR3599: Fix debug build after 8062808: Turn on the -Wreturn-type warning
+Patch576: 8064786-pr3599.patch
+# 8062808, PR3548: Turn on the -Wreturn-type warning
+Patch577: 8062808-pr3548.patch
+# 8207057, PR3613: Enable debug information for assembly code files
+<<<<<<< HEAD
+Patch206: 8207057-pr3613-hotspot-assembler-debuginfo.patch
+=======
+Patch206: 8207057-pr3613-assembler-debuginfo-hotspot.patch
+Patch207: 8207057-pr3613-assembler-debuginfo-root.patch
+# s390: JDK-8203030, Type fixing for s390
+Patch102: 8203030-size_t-fixes.patch
+# 8210761: libjsig is being compiled without optimization
+Patch620: 8210761-rh1630426-jsig-opt-fix.patch
+# 8210647: libsaproc is being compiled without optimization
+Patch621: 8210647-rh1630426-saproc-opt-fix.patch
+# 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+Patch622: 8210416-rh1630426-strict-math-opt.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Upstream 8u part.
+Patch623: 8210425-01-rh1630426-hotspot-opt-fix.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Aarch64-port 8u local part
+Patch624: 8210425-02-rh1630426-hotspot-opt-fix-aarch64.patch
+# 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+# Zero part of the fix for (arm/s390 arches)
+Patch625: 8210425-03-rh1630426-hotspot-opt-fix-zero.patch
+>>>>>>> f9c2d20... Add another optimization gap fix for Zero.
+
+#############################################
+#
+# Patches appearing in 8u192
+#
+#############################################
+# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links
+Patch506: pr2842-01.patch
+# S8148351, PR2842: Only display resolved symlink for compiler, do not change path
+Patch507: pr2842-02.patch
+# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate
+Patch526: 6260348-pr3066.patch
+# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with
"Property"
+Patch538: 8061305-pr3335-rh1423421.patch
+# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are
present
+Patch560: 8188030-pr3459-rh1484079.patch
+# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+Patch562: pr3539-rh1548475.patch
+# 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+Patch565: 8185723-pr3553.patch
+# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+Patch566: 8186461-pr3557.patch
+# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+Patch569: 8201509-pr3579.patch
+# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo
+Patch578: 8075942-pr3602-rh1582032.patch
+# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails
+Patch579: 8203182-pr3603-rh1568033.patch
+# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed
objects on StubCodeDesc::_list
+Patch580: 8206406-pr3610-rh1597825.patch
+# 8146115, PR3508, RH1463098: Improve docker container detection and resource
configuration usage
+Patch581: 8146115-pr3508-rh1463098.patch
+# 8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped
+Patch204: 8206425-hotspot-remove-debuglink.patch
+
+#############################################
+#
+# Patches ineligible for 8u
+#
+#############################################
+# 8043805: Allow using a system-installed libjpeg
+Patch201: system-libjpeg.patch
+
+#############################################
+#
+# Local fixes
+#
+#############################################
+# PR1834, RH1022017: Reduce curves reported by SSL to those in NSS
+Patch525: pr1834-rh1022017.patch
+# Turn on AssumeMP by default on RHEL systems
+Patch534: always_assumemp.patch
+# PR2888: OpenJDK should check for system cacerts database (e.g. /etc/pki/java/cacerts)
+Patch539: pr2888.patch
+# PR3575, RH1567204: System cacerts database handling should not affect jssecacerts
+Patch540: pr3575-rh1567204.patch
+
+# Shenandoah fixes
+# PR3619: Shenandoah broken on s390
+Patch582: pr3619.patch
+# PR3620: Shenandoah broken on ppc64
+Patch583: pr3620.patch
+
+#############################################
+#
+# Non-OpenJDK fixes
+#
+#############################################
+Patch1000: enableCommentedOutSystemNss.patch
+
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: alsa-lib-devel
+BuildRequires: binutils
+BuildRequires: cups-devel
+BuildRequires: desktop-file-utils
+# elfutils only are OK for build without AOT
+BuildRequires: elfutils-devel
+BuildRequires: fontconfig
+BuildRequires: freetype-devel
+BuildRequires: giflib-devel
+BuildRequires: gcc-c++
+BuildRequires: gdb
+BuildRequires: gtk2-devel
+BuildRequires: lcms2-devel
+BuildRequires: libjpeg-devel
+BuildRequires: libpng-devel
+BuildRequires: libxslt
+BuildRequires: libX11-devel
+BuildRequires: libXi-devel
+BuildRequires: libXinerama-devel
+BuildRequires: libXt-devel
+BuildRequires: libXtst-devel
+# Requirements for setting up the nss.cfg
+BuildRequires: nss-devel
+BuildRequires: pkgconfig
+BuildRequires: xorg-x11-proto-devel
+BuildRequires: zip
+# Use OpenJDK 7 where available (on RHEL) to avoid
+# having to use the rhel-7.x-java-unsafe-candidate hack
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+# Require a boot JDK which doesn't fail due to RH1482244
+BuildRequires: java-1.7.0-openjdk-devel >= 1.7.0.151-2.6.11.3
+%else
+BuildRequires: java-1.8.0-openjdk-devel
+%endif
+# Zero-assembler build requirement
+%ifnarch %{jit_arches}
+BuildRequires: libffi-devel
+%endif
+BuildRequires: tzdata-java >= 2015d
+# Earlier versions have a bug in tree vectorization on PPC
+BuildRequires: gcc >= 4.8.3-8
+# Build requirements for SunEC system NSS support
+BuildRequires: nss-softokn-freebl-devel >= 3.16.1
+
+%if %{with_systemtap}
+BuildRequires: systemtap-sdt-devel
+%endif
+
+# this is always built, also during debug-only build
+# when it is built in debug-only this package is just placeholder
+%{java_rpo %{nil}}
+
+%description
+The %{origin_nice} runtime environment.
+
+%if %{include_debug_build}
+%package debug
+Summary: %{origin_nice} Runtime Environment %{majorver} %{debug_on}
+Group: Development/Languages
+
+%{java_rpo -- %{debug_suffix_unquoted}}
+%description debug
+The %{origin_nice} runtime environment.
+%{debug_warning}
+%endif
+
+%if %{include_normal_build}
+%package headless
+Summary: %{origin_nice} Headless Runtime Environment %{majorver}
+Group: Development/Languages
+
+%{java_headless_rpo %{nil}}
+
+%description headless
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
+%endif
+
+%if %{include_debug_build}
+%package headless-debug
+Summary: %{origin_nice} Runtime Environment %{debug_on}
+Group: Development/Languages
+
+%{java_headless_rpo -- %{debug_suffix_unquoted}}
+
+%description headless-debug
+The %{origin_nice} runtime environment %{majorver} without audio and video support.
+%{debug_warning}
+%endif
+
+%if %{include_normal_build}
+%package devel
+Summary: %{origin_nice} Development Environment %{majorver}
+Group: Development/Tools
+
+%{java_devel_rpo %{nil}}
+
+%description devel
+The %{origin_nice} development tools %{majorver}.
+%endif
+
+%if %{include_debug_build}
+%package devel-debug
+Summary: %{origin_nice} Development Environment %{majorver} %{debug_on}
+Group: Development/Tools
+
+%{java_devel_rpo -- %{debug_suffix_unquoted}}
+
+%description devel-debug
+The %{origin_nice} development tools %{majorver}.
+%{debug_warning}
+%endif
+
+%if %{include_normal_build}
+%package demo
+Summary: %{origin_nice} Demos %{majorver}
+Group: Development/Languages
+
+%{java_demo_rpo %{nil}}
+
+%description demo
+The %{origin_nice} demos %{majorver}.
+%endif
+
+%if %{include_debug_build}
+%package demo-debug
+Summary: %{origin_nice} Demos %{majorver} %{debug_on}
+Group: Development/Languages
+
+%{java_demo_rpo -- %{debug_suffix_unquoted}}
+
+%description demo-debug
+The %{origin_nice} demos %{majorver}.
+%{debug_warning}
+%endif
+
+%if %{include_normal_build}
+%package src
+Summary: %{origin_nice} Source Bundle %{majorver}
+Group: Development/Languages
+
+%{java_src_rpo %{nil}}
+
+%description src
+The java-%{origin}-src sub-package contains the complete %{origin_nice} %{majorver}
+class library source code for use by IDE indexers and debuggers.
+%endif
+
+%if %{include_debug_build}
+%package src-debug
+Summary: %{origin_nice} Source Bundle %{majorver} %{for_debug}
+Group: Development/Languages
+
+%{java_src_rpo -- %{debug_suffix_unquoted}}
+
+%description src-debug
+The java-%{origin}-src-slowdebug sub-package contains the complete %{origin_nice}
%{majorver}
+ class library source code for use by IDE indexers and debuggers. Debugging
%{for_debug}.
+%endif
+
+%if %{include_normal_build}
+%package javadoc
+Summary: %{origin_nice} %{majorver} API documentation
+Group: Documentation
+Requires: javapackages-filesystem
+BuildArch: noarch
+
+%{java_javadoc_rpo %{nil}}
+
+%description javadoc
+The %{origin_nice} %{majorver} API documentation.
+%endif
+
+%if %{include_normal_build}
+%package javadoc-zip
+Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
+Group: Documentation
+Requires: javapackages-filesystem
+BuildArch: noarch
+
+%{java_javadoc_rpo %{nil}}
+
+%description javadoc-zip
+The %{origin_nice} %{majorver} API documentation compressed in single archive.
+%endif
+
+%if %{include_debug_build}
+%package javadoc-debug
+Summary: %{origin_nice} %{majorver} API documentation %{for_debug}
+Group: Documentation
+Requires: javapackages-filesystem
+BuildArch: noarch
+
+%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
+
+%description javadoc-debug
+The %{origin_nice} %{majorver} API documentation %{for_debug}.
+%endif
+
+%if %{include_debug_build}
+%package javadoc-zip-debug
+Summary: %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}
+Group: Documentation
+Requires: javapackages-filesystem
+BuildArch: noarch
+
+%{java_javadoc_rpo -- %{debug_suffix_unquoted}}
+
+%description javadoc-zip-debug
+The %{origin_nice} %{majorver} API documentation compressed in single archive
%{for_debug}.
+%endif
+
+
+%if %{include_normal_build}
+%package accessibility
+Summary: %{origin_nice} %{majorver} accessibility connector
+
+%{java_accessibility_rpo %{nil}}
+
+%description accessibility
+Enables accessibility support in %{origin_nice} %{majorver} by using java-atk-wrapper.
This allows
+compatible at-spi2 based accessibility programs to work for AWT and Swing-based
+programs.
+
+Please note, the java-atk-wrapper is still in beta, and %{origin_nice} %{majorver} itself
is still
+being tuned to be working with accessibility features. There are known issues
+with accessibility on, so please do not install this package unless you really
+need to.
+%endif
+
+%if %{include_debug_build}
+%package accessibility-debug
+Summary: %{origin_nice} %{majorver} accessibility connector %{for_debug}
+
+%{java_accessibility_rpo -- %{debug_suffix_unquoted}}
+
+%description accessibility-debug
+See normal java-%{version}-openjdk-accessibility description.
+%endif
+
+
+%if %{with_openjfx_binding}
+%package openjfx
+Summary: OpenJDK x OpenJFX connector. This package adds symliks finishing Java FX
integration to %{name}
+Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx%{?_isa}
+Provides: javafx = %{epoch}:%{version}-%{release}
+%description openjfx
+Set of links from OpenJDK (jre) to OpenJFX
+
+%package openjfx-devel
+Summary: OpenJDK x OpenJFX connector for FX developers. This package adds symliks
finishing Java FX integration to %{name}-devel
+Requires: %{name}-devel%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx-devel%{?_isa}
+Provides: javafx-devel = %{epoch}:%{version}-%{release}
+%description openjfx-devel
+Set of links from OpenJDK (sdk) to OpenJFX
+
+%if %{include_debug_build}
+%package openjfx-debug
+Summary: OpenJDK x OpenJFX connector %{for_debug}. his package adds symliks finishing
Java FX integration to %{name}-debug
+Requires: %{name}-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx%{?_isa}
+Provides: javafx-debug = %{epoch}:%{version}-%{release}
+%description openjfx-debug
+Set of links from OpenJDK-debug (jre) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+
+%package openjfx-devel-debug
+Summary: OpenJDK x OpenJFX connector for FX developers %{for_debug}. This package adds
symliks finishing Java FX integration to %{name}-devel-debug
+Requires: %{name}-devel-debug%{?_isa} = %{epoch}:%{version}-%{release}
+Requires: openjfx-devel%{?_isa}
+Provides: javafx-devel-debug = %{epoch}:%{version}-%{release}
+%description openjfx-devel-debug
+Set of links from OpenJDK-debug (sdk) to normal OpenJFX. OpenJFX do not support debug
buuilds of itself
+%endif
+%endif
+
+%prep
+if [ %{include_normal_build} -eq 0 -o %{include_normal_build} -eq 1 ] ; then
+ echo "include_normal_build is %{include_normal_build}"
+else
+ echo "include_normal_build is %{include_normal_build}, thats invalid. Use 1 for
yes or 0 for no"
+ exit 11
+fi
+if [ %{include_debug_build} -eq 0 -o %{include_debug_build} -eq 1 ] ; then
+ echo "include_debug_build is %{include_debug_build}"
+else
+ echo "include_debug_build is %{include_debug_build}, thats invalid. Use 1 for yes
or 0 for no"
+ exit 12
+fi
+if [ %{include_debug_build} -eq 0 -a %{include_normal_build} -eq 0 ] ; then
+ echo "You have disabled both include_debug_build and include_normal_build. That is
a no go."
+ exit 13
+fi
+%setup -q -c -n %{uniquesuffix ""} -T -a 0
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1189084
+prioritylength=`expr length %{priority}`
+if [ $prioritylength -ne 7 ] ; then
+ echo "priority must be 7 digits in total, violated"
+ exit 14
+fi
+# For old patches
+ln -s %{top_level_dir_name} jdk8
+
+cp %{SOURCE2} .
+
+# replace outdated configure guess script
+#
+# the configure macro will do this too, but it also passes a few flags not
+# supported by openjdk configure script
+cp %{SOURCE100} openjdk/common/autoconf/build-aux/
+cp %{SOURCE101} openjdk/common/autoconf/build-aux/
+
+# OpenJDK patches
+
+# Remove libraries that are linked
+sh %{SOURCE12}
+
+# System library fixes
+%patch201
+%patch202
+%patch203
+
+# Debugging fixes
+%patch204
+%patch205
+%patch206
+
+%patch300
+
+%patch1
+%patch3
+%patch5
+%patch7
+
+# s390 build fixes
+%patch100
+%patch102
+%patch103
+
+# AArch64 fixes
+%patch106
+
+# x86 fixes
+%patch105
+
+# ppc64le fixes
+%patch603
+%patch601
+%patch602
+
+# Upstreamable fixes
+%patch502
+%patch504
+%patch506
+%patch507
+%patch508
+%patch509
+%patch511
+%patch512
+%patch513
+%patch514
+%patch515
+%patch516
+%patch517
+%patch518
+%patch519
+%patch400
+%patch523
+%patch526
+%patch528
+%patch529
+%patch530
+%patch538
+%patch560
+%patch561
+%patch562
+%patch563
+%patch564
+%patch565
+%patch566
+%patch567
+%patch569
+%patch571
+%patch572
+%patch573
+%patch574
+%patch575
+%patch576
+%patch577
+%patch578
+%patch579
+%patch580
+%patch581
+<<<<<<< HEAD
+=======
+%patch620
+%patch621
+%patch622
+%patch623
+%patch624
+%patch625
+>>>>>>> f9c2d20... Add another optimization gap fix for Zero.
+
+# RPM-only fixes
+%patch525
+%patch539
+%patch540
+
+# RHEL-only patches
+%if ! 0%{?fedora} && 0%{?rhel} <= 7
+%patch534
+%endif
+
+# Shenandoah patches
+%patch582
+%patch583
+
+%patch1000
+
+# Extract systemtap tapsets
+%if %{with_systemtap}
+tar --strip-components=1 -x -I xz -f %{SOURCE8}
+%if %{include_debug_build}
+cp -r tapset tapset%{debug_suffix}
+%endif
+
+
+for suffix in %{build_loop} ; do
+ for file in "tapset"$suffix/*.in; do
+ OUTPUT_FILE=`echo $file | sed -e
"s:\.stp\.in$:%{version}-%{release}.%{_arch}.stp:g"`
+ sed -e "s:@ABS_SERVER_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/server/libjvm.so:g" $file > $file.1
+# TODO find out which architectures other than i686 have a client vm
+%ifarch %{ix86}
+ sed -e "s:@ABS_CLIENT_LIBJVM_SO@:%{_jvmdir}/%{sdkdir --
$suffix}/jre/lib/%{archinstall}/client/libjvm.so:g" $file.1 > $OUTPUT_FILE
+%else
+ sed -e "/@ABS_CLIENT_LIBJVM_SO@/d" $file.1 > $OUTPUT_FILE
+%endif
+ sed -i -e "s:@ABS_JAVA_HOME_DIR@:%{_jvmdir}/%{sdkdir -- $suffix}:g"
$OUTPUT_FILE
+ sed -i -e "s:@INSTALL_ARCH_DIR@:%{archinstall}:g" $OUTPUT_FILE
+ sed -i -e "s:@prefix@:%{_jvmdir}/%{sdkdir -- $suffix}/:g" $OUTPUT_FILE
+ done
+done
+# systemtap tapsets ends
+%endif
+
+# Prepare desktop files
+for suffix in %{build_loop} ; do
+for file in %{SOURCE9} %{SOURCE10} ; do
+ FILE=`basename $file | sed -e s:\.in$::g`
+ EXT="${FILE##*.}"
+ NAME="${FILE%.*}"
+ OUTPUT_FILE=$NAME$suffix.$EXT
+ sed -e "s:@JAVA_HOME@:%{sdkbindir -- $suffix}:g" $file >
$OUTPUT_FILE
+ sed -i -e "s:@JRE_HOME@:%{jrebindir -- $suffix}:g" $OUTPUT_FILE
+ sed -i -e "s:@ARCH@:%{version}-%{release}.%{_arch}$suffix:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_MAJOR_VERSION@:%{majorver}:g" $OUTPUT_FILE
+ sed -i -e "s:@JAVA_VENDOR@:%{origin}:g" $OUTPUT_FILE
+done
+done
+
+# Setup nss.cfg
+sed -e "s:@NSS_LIBDIR@:%{NSS_LIBDIR}:g" %{SOURCE11} > nss.cfg
+
+
+%build
+# How many CPU's do we have?
+export NUM_PROC=%(/usr/bin/getconf _NPROCESSORS_ONLN 2> /dev/null || :)
+export NUM_PROC=${NUM_PROC:-1}
+%if 0%{?_smp_ncpus_max}
+# Honor %%_smp_ncpus_max
+[ ${NUM_PROC} -gt %{?_smp_ncpus_max} ] && export NUM_PROC=%{?_smp_ncpus_max}
+%endif
+
+%ifarch s390x sparc64 alpha %{power64} %{aarch64}
+export ARCH_DATA_MODEL=64
+%endif
+%ifarch alpha
+export CFLAGS="$CFLAGS -mieee"
+%endif
+
+# We use ourcppflags because the OpenJDK build seems to
+# pass EXTRA_CFLAGS to the HotSpot C++ compiler...
+# Explicitly set the C++ standard as the default has changed on GCC >= 6
+EXTRA_CFLAGS="%ourcppflags -std=gnu++98 -Wno-error -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+EXTRA_CPP_FLAGS="%ourcppflags -std=gnu++98 -fno-delete-null-pointer-checks
-fno-lifetime-dse"
+
+%ifarch %{power64} ppc
+# fix rpmlint warnings
+EXTRA_CFLAGS="$EXTRA_CFLAGS -fno-strict-aliasing"
+%endif
+export EXTRA_CFLAGS
+
+(cd %{top_level_dir_name}/common/autoconf
+ bash ./autogen.sh
+)
+
+for suffix in %{build_loop} ; do
+if [ "$suffix" = "%{debug_suffix}" ] ; then
+debugbuild=%{debugbuild_parameter}
+else
+debugbuild=%{normalbuild_parameter}
+fi
+
+# Variable used in hs_err hook on build failures
+top_dir_abs_path=$(pwd)/%{top_level_dir_name}
+
+mkdir -p %{buildoutputdir -- $suffix}
+pushd %{buildoutputdir -- $suffix}
+
+NSS_LIBS="%{NSS_LIBS} -lfreebl" \
+NSS_CFLAGS="%{NSS_CFLAGS}" \
+bash ../../configure \
+%ifnarch %{jit_arches}
+ --with-jvm-variants=zero \
+%endif
+ --disable-zip-debug-info \
+ --with-milestone="fcs" \
+ --with-update-version=%{updatever} \
+ --with-build-number=%{buildver} \
+ --with-boot-jdk=/usr/lib/jvm/java-openjdk \
+ --with-debug-level=$debugbuild \
+ --enable-unlimited-crypto \
+ --enable-system-nss \
+ --with-zlib=system \
+ --with-libjpeg=system \
+ --with-giflib=system \
+ --with-libpng=system \
+ --with-lcms=system \
+ --with-stdc++lib=dynamic \
+ --with-extra-cxxflags="$EXTRA_CPP_FLAGS" \
+ --with-extra-cflags="$EXTRA_CFLAGS" \
+ --with-extra-ldflags="%{ourldflags}" \
+ --with-num-cores="$NUM_PROC"
+
+cat spec.gmk
+cat hotspot-spec.gmk
+
+# The combination of FULL_DEBUG_SYMBOLS=0 and ALT_OBJCOPY=/does_not_exist
+# disables FDS for all build configs and reverts to pre-FDS make logic.
+# STRIP_POLICY=none says don't do any stripping. DEBUG_BINARIES=true says
+# ignore all the other logic about which debug options and just do '-g'.
+
+make \
+ DEBUG_BINARIES=true \
+ JAVAC_FLAGS=-g \
+ STRIP_POLICY=no_strip \
+ POST_STRIP_CMD="" \
+ LOG=trace \
+ SCTP_WERROR= \
+ %{targets} || ( pwd; find $top_dir_abs_path -name "hs_err_pid*.log" | xargs
cat && false )
+
+make zip-docs
+
+# the build (erroneously) removes read permissions from some jars
+# this is a regression in OpenJDK 7 (our compiler):
+#
http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=1437
+find images/%{jdkimage} -iname '*.jar' -exec chmod ugo+r {} \;
+chmod ugo+r images/%{jdkimage}/lib/ct.sym
+
+# remove redundant *diz and *debuginfo files
+find images/%{jdkimage} -iname '*.diz' -exec rm {} \;
+find images/%{jdkimage} -iname '*.debuginfo' -exec rm {} \;
+
+# Build screws up permissions on binaries
+#
https://bugs.openjdk.java.net/browse/JDK-8173610
+find images/%{jdkimage} -iname '*.so' -exec chmod +x {} \;
+find images/%{jdkimage}/bin/ -exec chmod +x {} \;
+
+popd >& /dev/null
+
+# Install nss.cfg right away as we will be using the JRE above
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+
+# Install nss.cfg right away as we will be using the JRE above
+install -m 644 nss.cfg $JAVA_HOME/jre/lib/security/
+
+# Use system-wide tzdata
+rm $JAVA_HOME/jre/lib/tzdb.dat
+ln -s %{_datadir}/javazi-1.8/tzdb.dat $JAVA_HOME/jre/lib/tzdb.dat
+
+# build cycles
+done
+
+%check
+
+# We test debug first as it will give better diagnostics on a crash
+for suffix in %{rev_build_loop} ; do
+
+export JAVA_HOME=$(pwd)/%{buildoutputdir -- $suffix}/images/%{jdkimage}
+
+# Check unlimited policy has been used
+$JAVA_HOME/bin/javac -d . %{SOURCE13}
+$JAVA_HOME/bin/java TestCryptoLevel
+
+# Check ECC is working
+$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
+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" | grep -E "\]\ .debug_(info|abbrev)"
| wc --lines) == 2
+
+ # Test FILE symbols. These will most likely be removed by anything 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" | grep -E "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" | \
+ grep -E "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
+# javaCalls.cpp:58 should map to:
+#
http://hg.openjdk.java.net/jdk8u/jdk8u/hotspot/file/ff3b27e6bcc2/src/shar...
+# Using line number 1 might cause build problems. See:
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1539664
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1538767
+gdb -q "$JAVA_HOME/bin/java" <<EOF | tee gdb.out
+handle SIGSEGV pass nostop noprint
+handle SIGILL pass nostop noprint
+set breakpoint pending on
+break javaCalls.cpp:58
+commands 1
+backtrace
+quit
+end
+run -version
+EOF
+grep 'JavaCallWrapper::JavaCallWrapper' gdb.out
+
+# Check src.zip has all sources. See RHBZ#1130490
+jar -tf $JAVA_HOME/src.zip | grep 'sun.misc.Unsafe'
+
+# Check class files include useful debugging information
+$JAVA_HOME/bin/javap -l java.lang.Object | grep "Compiled from"
+$JAVA_HOME/bin/javap -l java.lang.Object | grep LineNumberTable
+$JAVA_HOME/bin/javap -l java.lang.Object | grep LocalVariableTable
+
+# Check generated class files include useful debugging information
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep "Compiled from"
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LineNumberTable
+$JAVA_HOME/bin/javap -l java.nio.ByteBuffer | grep LocalVariableTable
+
+# build cycles check
+done
+
+%install
+STRIP_KEEP_SYMTAB=libjvm*
+
+for suffix in %{build_loop} ; do
+
+# Install the jdk
+pushd %{buildoutputdir -- $suffix}/images/%{jdkimage}
+
+# Install jsa directories so we can owe them
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/server/
+mkdir -p $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/client/
+
+ # Install main files.
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ cp -a bin include lib src.zip $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ install -d -m 755 $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+ cp -a jre/bin jre/lib $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}
+
+%if %{with_systemtap}
+ # Install systemtap support files
+ install -dm 755 $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset
+ # note, that uniquesuffix is in BUILD dir in this case
+ cp -a $RPM_BUILD_DIR/%{uniquesuffix ""}/tapset$suffix/*.stp
$RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/tapset/
+ tapsetFiles=`ls *.stp`
+ popd
+ install -d -m 755 $RPM_BUILD_ROOT%{tapsetdir}
+ for name in $tapsetFiles ; do
+ targetName=`echo $name | sed "s/.stp/$suffix.stp/"`
+ ln -sf %{_jvmdir}/%{sdkdir -- $suffix}/tapset/$name
$RPM_BUILD_ROOT%{tapsetdir}/$targetName
+ done
+%endif
+
+ # Remove empty cacerts database
+ rm -f $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security/cacerts
+ # Install cacerts symlink needed by some apps which hardcode the path
+ pushd $RPM_BUILD_ROOT%{_jvmdir}/%{jredir -- $suffix}/lib/security
+ ln -sf /etc/pki/java/cacerts .
+ popd
+
+ # Install versioned symlinks
+ pushd $RPM_BUILD_ROOT%{_jvmdir}
+ ln -sf %{jredir -- $suffix} %{jrelnk -- $suffix}
+ popd
+
+ # Remove javaws man page
+ rm -f man/man1/javaws*
+
+ # Install man pages
+ install -d -m 755 $RPM_BUILD_ROOT%{_mandir}/man1
+ for manpage in man/man1/*
+ do
+ # Convert man pages to UTF8 encoding
+ iconv -f ISO_8859-1 -t UTF8 $manpage -o $manpage.tmp
+ mv -f $manpage.tmp $manpage
+ install -m 644 -p $manpage $RPM_BUILD_ROOT%{_mandir}/man1/$(basename \
+ $manpage .1)-%{uniquesuffix -- $suffix}.1
+ done
+
+ # Install demos and samples.
+ cp -a demo $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+ mkdir -p sample/rmi
+ if [ ! -e sample/rmi/java-rmi.cgi ] ; then
+ # hack to allow --short-circuit on install
+ mv bin/java-rmi.cgi sample/rmi
+ fi
+ cp -a sample $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}
+
+popd
+
+
+# Install Javadoc documentation
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}
+cp -a %{buildoutputdir -- $suffix}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir
-- $suffix}
+cp -a %{buildoutputdir --
$suffix}/bundles/jdk-%{javaver}_%{updatever}$suffix-%{buildver}-docs.zip
$RPM_BUILD_ROOT%{_javadocdir}/%{uniquejavadocdir -- $suffix}.zip
+
+# Install icons and menu entries
+for s in 16 24 32 48 ; do
+ install -D -p -m 644 \
+ openjdk/jdk/src/solaris/classes/sun/awt/X11/java-icon${s}.png \
+
$RPM_BUILD_ROOT%{_datadir}/icons/hicolor/${s}x${s}/apps/java-%{javaver}-%{origin}.png
+done
+
+# Install desktop files
+install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/{applications,pixmaps}
+for e in jconsole$suffix policytool$suffix ; do
+ desktop-file-install --vendor=%{uniquesuffix -- $suffix} --mode=644 \
+ --dir=$RPM_BUILD_ROOT%{_datadir}/applications $e.desktop
+done
+
+# Install /etc/.java/.systemPrefs/ directory
+# See
https://bugzilla.redhat.com/show_bug.cgi?id=741821
+mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/.java/.systemPrefs
+
+# FIXME: remove SONAME entries from demo DSOs. See
+#
https://bugzilla.redhat.com/show_bug.cgi?id=436497
+
+# Find non-documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+ -type f -o -type l | sort \
+ | grep -v README \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ >> %{name}-demo.files"$suffix"
+# Find documentation demo files.
+find $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/demo \
+ $RPM_BUILD_ROOT%{_jvmdir}/%{sdkdir -- $suffix}/sample \
+ -type f -o -type l | sort \
+ | grep README \
+ | sed 's|'$RPM_BUILD_ROOT'||' \
+ | sed 's|^|%doc |' \
+ >> %{name}-demo.files"$suffix"
+
+# Create links which leads to separately installed java-atk-bridge and allow
configuration
+# links points to java-atk-wrapper - an dependence
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}
+ ln -s %{_libdir}/java-atk-wrapper/libatk-wrapper.so.0 libatk-wrapper.so
+ popd
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/ext
+ ln -s %{_libdir}/java-atk-wrapper/java-atk-wrapper.jar java-atk-wrapper.jar
+ popd
+ pushd $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix}/lib/
+ echo "#Config file to enable java-atk-wrapper" >
accessibility.properties
+ echo "" >> accessibility.properties
+ echo "assistive_technologies=org.GNOME.Accessibility.AtkWrapper" >>
accessibility.properties
+ echo "" >> accessibility.properties
+ popd
+
+# intentionally after all else, fx links with redirections on its own
+%if %{with_openjfx_binding}
+ FXSDK_FILES=%{name}-openjfx-devel.files"$suffix"
+ FXJRE_FILES=%{name}-openjfx.files"$suffix"
+ echo -n "" > $FXJRE_FILES
+ echo -n "" > $FXSDK_FILES
+ for file in %{jfx_jre_libs} ; do
+ srcfile=%{jfx_jre_libs_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_jre_native} ; do
+ srcfile=%{jfx_jre_native_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/%{archinstall}/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_jre_exts} ; do
+ srcfile=%{jfx_jre_exts_dir}/$file
+ targetfile=%{_jvmdir}/%{jredir -- $suffix}/lib/ext/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXJRE_FILES
+ done
+ for file in %{jfx_sdk_libs} ; do
+ srcfile=%{jfx_sdk_libs_dir}/$file
+ targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/lib/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXSDK_FILES
+ done
+ for file in %{jfx_sdk_bins} ; do
+ srcfile=%{jfx_sdk_bins_dir}/$file
+ targetfile=%{_jvmdir}/%{sdkdir -- $suffix}/bin/$file
+ ln -s $srcfile $RPM_BUILD_ROOT/$targetfile
+ echo $targetfile >> $FXSDK_FILES
+ done
+%endif
+
+bash %{SOURCE20} $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir -- $suffix} %{javaver}
+#
https://bugzilla.redhat.com/show_bug.cgi?id=1183793
+touch -t 201401010000 $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir --
$suffix}/lib/security/java.security
+
+# stabilize permissions
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "*.so" -exec chmod
755 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -type d -exec chmod 755 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"ASSEMBLY_EXCEPTION" -exec chmod 644 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name "LICENSE" -exec
chmod 644 {} \; ;
+find $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir -- $suffix}/ -name
"THIRD_PARTY_README" -exec chmod 644 {} \; ;
+
+# end, dual install
+done
+
+%if %{include_normal_build}
+# intentionally only for non-debug
+%pretrans headless -p <lua>
+-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole issue
+-- see
https://bugzilla.redhat.com/show_bug.cgi?id=1290388 for pretrans over pre
+-- if copy-jdk-configs is in transaction, it installs in pretrans to temp
+-- if copy_jdk_configs is in temp, then it means that copy-jdk-configs is in transaction
and so is
+-- preferred over one in %%{_libexecdir}. If it is not in transaction, then depends
+-- whether copy-jdk-configs is installed or not. If so, then configs are copied
+-- (copy_jdk_configs from %%{_libexecdir} used) or not copied at all
+local posix = require "posix"
+local debug = false
+
+SOURCE1 = "%{rpm_state_dir}/copy_jdk_configs.lua"
+SOURCE2 = "%{_libexecdir}/copy_jdk_configs.lua"
+
+local stat1 = posix.stat(SOURCE1, "type");
+local stat2 = posix.stat(SOURCE2, "type");
+
+ if (stat1 ~= nil) then
+ if (debug) then
+ print(SOURCE1 .." exists - copy-jdk-configs in transaction, using this
one.")
+ end;
+ package.path = package.path .. ";" .. SOURCE1
+else
+ if (stat2 ~= nil) then
+ if (debug) then
+ print(SOURCE2 .." exists - copy-jdk-configs already installed and NOT in
transaction. Using.")
+ end;
+ package.path = package.path .. ";" .. SOURCE2
+ else
+ if (debug) then
+ print(SOURCE1 .." does NOT exists")
+ print(SOURCE2 .." does NOT exists")
+ print("No config files will be copied")
+ end
+ return
+ end
+end
+-- run content of included file with fake args
+arg = {"--currentjvm", "%{uniquesuffix %{nil}}",
"--jvmdir", "%{_jvmdir %{nil}}", "--origname",
"%{name}", "--origjavaver", "%{javaver}",
"--arch", "%{_arch}", "--temp",
"%{rpm_state_dir}/%{name}.%{_arch}"}
+require "copy_jdk_configs.lua"
+
+%post
+%{post_script %{nil}}
+
+%post headless
+%{post_headless %{nil}}
+
+%postun
+%{postun_script %{nil}}
+
+%postun headless
+%{postun_headless %{nil}}
+
+%posttrans
+%{posttrans_script %{nil}}
+
+%post devel
+%{post_devel %{nil}}
+
+%postun devel
+%{postun_devel %{nil}}
+
+%posttrans devel
+%{posttrans_devel %{nil}}
+
+%post javadoc
+%{post_javadoc %{nil}}
+
+%postun javadoc
+%{postun_javadoc %{nil}}
+
+%post javadoc-zip
+%{post_javadoc_zip %{nil}}
+
+%postun javadoc-zip
+%{postun_javadoc_zip %{nil}}
+%endif
+
+%if %{include_debug_build}
+%post debug
+%{post_script -- %{debug_suffix_unquoted}}
+
+%post headless-debug
+%{post_headless -- %{debug_suffix_unquoted}}
+
+%postun debug
+%{postun_script -- %{debug_suffix_unquoted}}
+
+%postun headless-debug
+%{postun_headless -- %{debug_suffix_unquoted}}
+
+%posttrans debug
+%{posttrans_script -- %{debug_suffix_unquoted}}
+
+%post devel-debug
+%{post_devel -- %{debug_suffix_unquoted}}
+
+%postun devel-debug
+%{postun_devel -- %{debug_suffix_unquoted}}
+
+%posttrans devel-debug
+%{posttrans_devel -- %{debug_suffix_unquoted}}
+
+%post javadoc-debug
+%{post_javadoc -- %{debug_suffix_unquoted}}
+
+%postun javadoc-debug
+%{postun_javadoc -- %{debug_suffix_unquoted}}
+
+%post javadoc-zip-debug
+%{post_javadoc_zip -- %{debug_suffix_unquoted}}
+
+%postun javadoc-zip-debug
+%{postun_javadoc_zip -- %{debug_suffix_unquoted}}
+%endif
+
+%if %{include_normal_build}
+%files
+# main package builds always
+%{files_jre %{nil}}
+%else
+%files
+# placeholder
+%endif
+
+
+%if %{include_normal_build}
+%files headless
+# important note, see
https://bugzilla.redhat.com/show_bug.cgi?id=1038092 for whole
issue
+# all config/noreplace files (and more) have to be declared in pretrans. See pretrans
+%{files_jre_headless %{nil}}
+
+%files devel
+%{files_devel %{nil}}
+
+%files demo -f %{name}-demo.files
+%{files_demo %{nil}}
+
+%files src
+%{files_src %{nil}}
+
+%files javadoc
+%{files_javadoc %{nil}}
+
+# this puts huge file to /usr/share
+# unluckily ti is really a documentation file
+# and unluckily it really is architecture-dependent, as eg. aot and grail are now x86_64
only
+# same for debug variant
+%files javadoc-zip
+%{files_javadoc_zip %{nil}}
+
+%files accessibility
+%{files_accessibility %{nil}}
+
+%if %{with_openjfx_binding}
+%files openjfx -f %{name}-openjfx.files
+
+%files openjfx-devel -f %{name}-openjfx-devel.files
+%endif
+%endif
+
+%if %{include_debug_build}
+%files debug
+%{files_jre -- %{debug_suffix_unquoted}}
+
+%files headless-debug
+%{files_jre_headless -- %{debug_suffix_unquoted}}
+
+%files devel-debug
+%{files_devel -- %{debug_suffix_unquoted}}
+
+%files demo-debug -f %{name}-demo.files-debug
+%{files_demo -- %{debug_suffix_unquoted}}
+
+%files src-debug
+%{files_src -- %{debug_suffix_unquoted}}
+
+%files javadoc-debug
+%{files_javadoc -- %{debug_suffix_unquoted}}
+
+%files javadoc-zip-debug
+%{files_javadoc_zip -- %{debug_suffix_unquoted}}
+
+%files accessibility-debug
+%{files_accessibility -- %{debug_suffix_unquoted}}
+
+%if %{with_openjfx_binding}
+%files openjfx-debug -f %{name}-openjfx.files-debug
+
+%files openjfx-devel-debug -f %{name}-openjfx-devel.files-debug
+%endif
+%endif
+
+%changelog
+<<<<<<< HEAD
+=======
+* Fri Oct 12 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-7
+- Add patch 8210425-03-rh1630426-hotspot-opt-fix-zero.patch:
+ - Annother fix for optimization gaps (annocheck issues)
+ - Zero 8u version fix was missing. Hence, only shows up on Zero arches.
+
+* Mon Oct 08 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-6
+- Refreshed upstreamed patches (from 8u202):
+ - 8044235-include-all-srcs.patch: src.zip should include all sources.
+ - 8073139-rh1191652-hotspot-aarch64.patch,
+ 8073139-rh1191652-jdk.patch,
+ 8073139-rh1191652-root.patch: PPC64LE JVM reporting issues.
+- Moved both patch series to 8u202 sections.
+
+* Mon Oct 01 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-5
+- Add explicit requirement for libXcomposite which is used when performing
+ screenshots from Java.
+- Add explicit BR unzip required for building OpenJDK.
+
+* Thu Sep 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-4
+- Add fixes for optimization gaps (annocheck issues):
+ - 8210761: libjsig is being compiled without optimization
+ - 8210647: libsaproc is being compiled without optimization
+ - 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
+ - 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
+ 8u upstream and aarch64/jdk8u upstream versions.
+
+* Wed Sep 26 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-3
+- Renamed more patches for clarity:
+ include-all-srcs.patch => 8044235-include-all-srcs.patch
+ java-1.8.0-openjdk-rh1191652-hotspot-aarch64.patch =>
8073139-rh1191652-hotspot-aarch64.patch
+ java-1.8.0-openjdk-rh1191652-jdk.patch => 8073139-rh1191652-jdk.patch
+ java-1.8.0-openjdk-rh1191652-root.patch => 8073139-rh1191652-root.patch
+
+* Tue Sep 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b15-2
+- Update(s) from upstreamed patches:
+ - 8036003-dont-add-unnecessary-debug-links.patch =>
+ 8036003-add-with-native-debug-symbols-configure-flag.patch
+ - rh1176206-jdk.patch =>
+ 8150954-pr2866-rh1176206-screenshot-xcomposite-jdk.patch =>
+ Deleted rh1176206-root.patch as thats no longer needed with
+ upstream 8150954.
+ - Refreshed 8165852-pr3468.patch from upstream.
+ - Refreshed 8201495-s390-java-opts.patch from upstream.
+ - 8207057-pr3613-hotspot-assembler-debuginfo.patch =>
+ 8207057-pr3613-assembler-debuginfo-hotspot.patch and
+ 8207057-pr3613-assembler-debuginfo-root.patch. From JDK 8u
+ review.
+- Renamed pr2842-02.patch => 8148351-pr2842-02.patch.
+- Renamed spec-only patch:
+ pr3183.patch => pr3183-rh1340845-system-crypto-policy.patch
+- Renamed java-1.8.0-openjdk-size_t.patch =>
+ 8201495-s390-java-opts.patch
+- Moved SunEC provider via system NSS to RPM specific patches section.
+- Moved upstream 8u patches to appropriate sections (8u192/8u202).
+- Removed rh1214835.patch since it's invalid. See:
+
https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=2304#c3
+- Use --with-native-debug-symbols=internal which JDK-8036003 adds.
+
+* Tue Sep 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b15-1
+- fixed unexpanded arch in policy tool desktop file
+- fixed versions (8->1.8.0) of images used in desktop files
+
+>>>>>>> f9c2d20... Add another optimization gap fix for Zero.
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-9
+- Adjust system jpeg patch, system-libjpeg.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
+* Mon Aug 27 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.181.b13-8
+- Adjust system NSS patch, pr1983-jdk.patch, so as to filter
+ -Wl,--as-needed. Resolves RHBZ#1622186.
+
+* Thu Aug 23 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181.b15-0
+- Move to single OpenJDK tarball build, based on aarch64/shenandoah-jdk8u.
+- Update to aarch64-shenandoah-jdk8u181-b15.
+- Drop 8165489-pr3589.patch which was only applied to aarch64/jdk8u builds.
+- Move buildver to where it should be in the OpenJDK version.
+- Split ppc64 Shenandoah fix into separate patch file with its own bug ID (PR3620).
+- Update pr3539-rh1548475.patch to apply after 8187045.
+- Resolves: rhbz#1594249
+
+* Sat Aug 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Remove unneeded functions from ppc shenandoahBarrierSet.
+- Resolves: rhbz#1594249
+
+* Wed Aug 08 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add missing shenandoahBarrierSet implementation for ppc64{be,le}.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Fix wrong format specifiers in Shenandoah code.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Avoid changing variable types to fix size_t, at least for now.
+- Resolves: rhbz#1594249
+
+* Tue Aug 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- More size_t fixes for Shenandoah.
+- Resolves: rhbz#1594249
+
+* Fri Aug 03 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.181-8.b13
+- Add additional s390 size_t case for Shenandoah.
+- Resolves: rhbz#1594249
+
+* Wed Aug 01 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181.b13-7
+- build number moved from release to version
+
+* Mon Jul 23 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.181-7.b13
+- updated to u181
+- patches aligned according to rhel7 (full credit to gnu_andrew)
+- removed upstreamed patch104 pr3458-rh1540242-aarch64.patch
+- removed upstreamed patch568 8187577-pr3578.patch
+
+* Tue Jul 17 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-16.b11
+- added Recommends gtk2 for main package
+- added Suggests lksctp-tools, pcsc-lite-devel, cups for headless package
+- see RHBZ1598152
+* Tue Jul 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-13.b11
+- Fix hook to show hs_err*.log files on failures.
+
+* Mon Jul 02 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-12.b11
+- Fix requires/provides filters for internal libs. See
+ RHBZ#1590796
+
+* Mon Jun 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-12.b11
+- Add hook to show hs_err*.log files on failures.
+
+* Wed Jun 20 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-11.b11
+- Expose release/slowdebug builds being produced via conditionals.
+
+* Wed Jun 20 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-11.b11
+- Add additional fix (PR3601) to fix -Wreturn-type failures introduced by 8061651
+- Backport 8064786 (PR3601) to fix -Wreturn-type failure on debug builds.
+- Bring in PR3519 from IcedTea 3.7.0 to fix remaining -Wreturn-type failure on AArch64.
+- Sync with IcedTea 3.8.0 patches to use -Wreturn-type.
+- Add backports of 8141570, 8143245, 8197981 & 8062808.
+- Drop pr3458-rh1540242-zero.patch which is covered by 8143245.
+
+* Wed Jun 20 2018 Jiri Vanek <jvanek(a)redhat.com> - 11:1.8.0.172-10.b11
+- jsa files changed to 444 to pass rpm verification
+
+* Mon Jun 18 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-9.b11
+- Filter private provides/requires: 'lib.so(SUNWprivate_.*'
+
+* Thu Jun 14 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-8.b11
+- Add provides/requires for libjvm.so back. See RHBZ#1591215.
+
+* Wed Jun 13 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.172-7.b11
+- Fix reg-ex for filtering private libraries' provides/requires.
+
+* Wed Jun 13 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-6.b11
+- Remove build flags exemption for aarch64 now the platform is more mature and can
bootstrap OpenJDK with these flags.
+- Remove duplicate -fstack-protector-strong; it is provided by the RHEL cflags.
+- Add missing changelog credits
+
+* Mon Jun 11 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-5.b11
+- Merge changes from RHEL 7
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
+- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
+
+* Mon Jun 11 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
+- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
+- Update Shenandoah tarball to include 2018-05-15 merge.
+- Split PR3458/RH1540242 fix into AArch64 & Zero sections, so former can be skipped
on Shenandoah builds.
+- Drop PR3573 patch applied upstream.
+- Restrict 8187577 fix to non-Shenandoah builds, as it's included in the new
tarball.
+
+* Thu Jun 07 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.172-5.b11
+- Sync with IcedTea 3.8.0.
+- Label architecture-specific fixes with architecture concerned
+- x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE
operations (-mstackrealign workaround)
+- PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
+- 8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
+- 8197546, PR3542, RH1402819: Fix for 8171000 breaks Solaris + Linux builds
+- 8185723, PR3553: Zero: segfaults on Power PC 32-bit
+- 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on
linux-powerpcspe
+- PR3559: Use ldrexd for atomic reads on ARMv7.
+- 8187577, PR3578: JVM crash during gc doing concurrent marking
+- 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
+- 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
+- PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
+- 8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
+
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
+- updated to u172-b11
+- removed patches:
+- patch207 8200556-pr3566.patch
+- patch104 pr3458-rh1540242.patch
+- patch209 8035496-hotspot.patch
+- patch700 pr3573.patch
+- fixed issue with atkwrapper wrongly palced broken symlink
+- fixed libjvm path for system tap
+- returned patch104 pr3458-rh1540242.patch
+
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-2.b11
+- quoted sed expressions, changed possibly confussing # by @
+- added vendor(origin) into icons
+- removed last trace of relative symlinks
+- added BuildRequires of javapackages-tools to fix build failure after Requires change to
javapackages-filesystem
+- aligning with java-openjdk in fedora:
+- slowdebug instead simply debug subpackage
+- purged provides
+- many macros renamed
+- typos correction
+- bumped jstack (may be wrong)
+- fixed issue with atkwrapper wrongly palced broken symlink
+
+* Wed Jun 06 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.172-1.b11
+- updated to u172-b11
+- removed patches:
+- patch207 8200556-pr3566.patch
+- patch104 pr3458-rh1540242.patch
+- patch209 8035496-hotspot.patch
+- patch700 pr3573.patch
+
+* Thu May 17 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-6.b10
+- Move to javapackages-filesystem over javapackages-tools
+ for directory ownership. Resolves RHBZ#1500288.
+
+* Fri May 04 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-5.b10
+- Remove duplicate patch rhbz_1538767_fix_linking2.patch. Just use
+ rhbz_1538767_fix_linking.patch.
+
+* Wed Apr 25 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-4.b10
+- Enable hardened build unconditionally (also for Zero).
+ Resolves RHBZ#1290936.
+
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-3.b10
+- Enable hardened build for Aarch64.
+
+* Tue Apr 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.171-2.b10
+- Update rhbz1548475-LDFLAGSusage.patch to also set linker
+ flags for libsaproc.so and libjsig.so.
+
+* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.171-1.b10
+- Update to aarch64-jdk8u171-b10 and aarch64-shenandoah-jdk8u171-b10.
+- Fix jconsole.desktop.in subcategory, replacing "Monitor" with
"Profiling" (PR3550) (gnu_andrew)
+- Fix invalid license 'LGPL+' (should be LGPLv2+ for ECC code) and add misisng
ones (gnu_andrew)
+
+* Wed Apr 18 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-7.b12
+- added ownership of policy dir and subdirs
+- removed ignored attributes for classes.jsa
+
+* Tue Apr 10 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.162-6.b12
+- Use correct patch for RHBZ#1538767 (JDK-8196516)
+
+* Mon Apr 02 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-5.b12
+- Cleanup from previous commit.
+- Remove unused upstream patch 8167200.hotspotAarch64.patch.
+
+* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-4.b12
+- added experimental %%define _find_debuginfo_opts -g
+- in attempt to fix
https://bugzilla.redhat.com/show_bug.cgi?id=1520879
+- no idea what will come out
+
+* Thu Mar 29 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-3.b12
+- returned patch562 rhbz_1540242.patch
+- added Patch563 rhbz_1536622-JDK8197429-jdk8.patch
+
+* Mon Mar 26 2018 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.162-2.b12
+- Added patch 540 rhbz1548475-LDFLAGSusage.patch to honor build flags fully
+
+* Wed Mar 21 2018 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.162-1.b12
+- Update to aarch64-jdk8u162-b12 and aarch64-shenandoah-jdk8u162-b12.
+- Remove upstreamed patches for 8181055/PR3394/RH1448880,
+- 8181419/PR3413/RH1463144, 8145913/PR3466/RH1498309,
+- 8168318/PR3466/RH1498320, 8170328/PR3466/RR1498321 and
+- 8181810/PR3466/RH1498319.
+
+* Wed Mar 07 2018 Adam Williamson <awilliam(a)redhat.com> - 1:1.8.0.161-9.b14
+- Rebuild to fix GCC 8 mis-compilation
+ See
https://da.gd/YJVwk ("GCC 8 ABI change on x86_64")
+
+* Sun Feb 11 2018 Sandro Mani <manisandro(a)gmail.com> - 1:1.8.0.161-8.b14
+- Rebuild (giflib)
+
+* Fri Feb 09 2018 Igor Gnatenko <ignatenkobrain(a)fedoraproject.org> -
1:1.8.0.161-7.b14
+- Escape macros in %%changelog
+
+* Wed Feb 07 2018 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.161-6.b14
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
+
+* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-5.b14
+- Additional fix needed for FTBFS bug on aarch64.
+ Resolves RHBZ#1540242.
+
+* Wed Jan 31 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-4.b14
+- Add fix for FTBFS on aarch64 and armv7hl.
+ Resolves RHBZ#1540242.
+
+* Tue Jan 30 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-3.b14
+- Include Aarch64 build fixes post January 2018 CPU.
+
+* Mon Jan 29 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-2.b14
+- Work around ppc64le gdb backtrace problem in %%check.
+ See RHBZ#1539664
+
+* Wed Jan 24 2018 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.161-1.b14
+- Fix FTBFS due to link failure in libfontmanager.so
+- See RHBZ#1538767
+
+* Wed Jan 24 2018 jvanek <jvanek(a)redhat.com> - 1:1.8.0.161-0.b14
+- updated to u161, rmeoved upstreamed patches
+- removed patch555 8164293-pr3412-rh1459641.patch
+- removed patch550 8175813-pr3394-rh1448880.patch
+- removed patch547 8173941-pr3326.patch
+- removed patch532 8162384-pr3122-rh1358661.patch
+- removed patch535 8153711-pr3313-rh1284948.patch
+- removed patch561 8075484-pr3473-rh1490713.patch
+- removed patch554 8175887-pr3415.patch
+
+* Mon Nov 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
+- added ownership of etc dirs
+- sysconfdir/.java/.systemPrefs
+- sysconfdir/.java
+
+* Wed Oct 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.151-1.b12
+- updated to aarch64-jdk8u151-b12 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u151-b12 (from aarch64-port/jdk8u-shenandoah) of
hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u151-b12.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u151-b12.tar.xz as new
sources for hotspot
+- tapset updated to 3.6pre02
+- policies adapted to new limited/unlimited schmea
+- above acomapnied by c-j-c 3.3
+- alligned patches and added PPC ones (thanx to gnu_andrew)
+- added patch209: 8035496-hotspot.patch
+- added patch210: suse_linuxfilestore.patch
+
+* Wed Oct 04 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.144-7.b01
+- updated to aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u144-b02-shenandoah-merge-2017-10-02.tar.xz
as new sources for hotspot
+
+* Fri Sep 15 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-6.b01
+- added patch540, bug1484079.patch
+
+* Fri Sep 08 2017 Troy Dawson <tdawson(a)redhat.com> - 1:1.8.0.144-6.b01
+- Cleanup spec file conditionals
+
+* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-4.b01
+- added ownership of diretories which were oonly listing files
+
+* Fri Aug 25 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-3.b01
+- added (experiment) "--" delimiter also to $suffix in expanding macros
+
+* Wed Aug 23 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.144-1.b01
+- Update to aarch64-jdk8u144-b01 and aarch64-shenandoah-jdk8u144-b01.
+- Exclude 8175887 from Shenandoah builds as it has been included in that repo.
+- Added 8164293-pr3412-rh1459641.patch backport from 8u development tree
+- get rid of bin/* and lib/*, fixed rhbz1480777
+- adapted to rpm 4.14: all expanding macros changed to define, all %1 and %%1 replaced by
%%{?1}, all expandable macros parameter preffixed by --
+- get rid of generated filelists all except javafx and demos
+
+* Wed Aug 02 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-5.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
+
+* Sun Jul 30 2017 Florian Weimer <fweimer(a)redhat.com> - 1:1.8.0.141-4.b16
+- Rebuild with binutils fix for ppc64le (#1475636)
+
+* Wed Jul 26 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-3.b16
+- added patch208, aarch64BuildFailure.patch to fix condition found during jdk9 build
+
+* Wed Jul 26 2017 Fedora Release Engineering <releng(a)fedoraproject.org> -
1:1.8.0.141-2.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
+
+* Fri Jul 21 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.141-1.b16
+- updated to security u141.b16
+- sync patches with rhel7
+- removed no longer defined jvmjardir
+
+* Sat Jun 17 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-7.b12
+- adapted to no longer noarch openjfx-devel
+
+* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-6.b12
+- added virtualprovides for javafx
+
+* Wed Jun 07 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-5.b12
+- fixed target of to fxrt.jar link
+- fixedname of libglass
+
+* Tue Jun 06 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-3.b12
+- source999 moved to source1
+- added two pathces 8181055-pr3394-rh1448880.patch and 8175813/PR3394/RH1448880
+- enabled (commented out) system NSS via patch1000, enableCommentedOutSystemNss.patch
+
+* Tue May 09 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
+- added javafx binding subpackages
+
+* Thu Apr 20 2017 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.131-1.b12
+- updated to aarch64-jdk8u131-b12 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u131-b12.tar.xz as new sources
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u131-b12-shenandoah-merge-2017-04-20.tar.xz
as new sources for hotspot
+
+* Sun Mar 19 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-12.b14
+- minor tweaks, egrep replaced by grep -E, added provides for some subpackages
+
+* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-11.b14
+- sync from rhel, reordered patches, enabled shenanoah on aarch64
+- Patch OpenJDK to check the system cacerts database directly
+- Remove unneeded symlink to the system cacerts database
+- Drop outdated openssl dependency from when the RPM built the cacerts database
+- udpated to latest stable shenandoah hotspot
+
+* Mon Mar 13 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-10.b14
+- rhbz#1423751 - removed -fno-split-loops worakround as building against newer GCC7
+
+* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-9.b14
+- updated to latest stable shenandoah hotspot
+- updated to properly tagged upstream forest (no update, just rename)
+- fixed update package to verify PR2126 patch and work with sha512
+
+* Tue Feb 28 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-8.b14
+- rebuild because of NSS
+
+* Tue Feb 21 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-7.b14
+- fixed the config(noreplace) issue with various left files lke java.security
(rhbz#1183793)
+- by calling new c-j-c hooks
+- removed self-tail-bitting check check_sum_presented_in_spec
+- release 6+7 to verify update path
+
+* Mon Feb 20 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-5.b14
+- patch 536 reordered to 537
+- added patch 536 - Backport "8170888: [linux] Experimental support for cgroup
memory limits in container (ie Docker) environments"
+- added patch 538 - 1423421: Javadoc crashes when method name ends with
"Property"
+- rhbz#1423751 - added -fno-split-loops worakround sigsew when building with GCC7
(probably bug in jdk's JIT )
+
+* Fri Feb 17 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-4.b14
+- added Patch535 and 526
+- tweeked debugsymbols check for sigill
+
+* Wed Jan 25 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
+- revertrd patch535, excludeECDHE-1415137.patch and related changes
+- issue casued by nss, see rhbz#1415137 c#35
+
+* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-2.b14
+- added patch535, excludeECDHE-1415137.patch to tmp-worakround crash with nss
+
+* Tue Jan 24 2017 jvanek <jvanek(a)redhat.com> - 1:1.8.0.121-1.b14
+- updated to aarch64-jdk8u121-b14 (from openjdk8-forests/latest-aarch64)
+- updated to aarch64-shenandoah-jdk8u121-b14 (from openjdk8-forests/latest-shenandoah) of
hotspot
+- used openjdk8-forests-latest-aarch64-aarch64-jdk8u121-b14.tar.xz as new sources
+- used openjdk8-forests-latest-shenandoah-aarch64-shenandoah-jdk8u121-b14.tar.xz as new
sources for hotspot
+- deleted: 8044762-pr2960.patch 8049226-pr2960.patch 8154210.patch
8158260-pr2991-rh1341258.patch 8159244-pr3074.patch
+- adapted java-1.8.0-openjdk-size_t.patch pr1834-rh1022017.patch rh1163501.patch
+- updated from internal (rhel) repo
OPENJDK_URL_DEFAULT=ssh://t...redhat.com//...ty/
+- with custom PR2126=/.../pr2126.patch (removed newly added brainpool curves)
+- withspecial values of PROJECT_NAME="openjdk8-forests",
REPO_NAME="latest-aarch64"
+- with correct tag VERSION="aarch64-jdk8u121-b14"
+- and for shenandoah hotspot used custom repo REPO_NAME=latest-shenandoah
+- with correct tag VERSION="aarch64-shenandoah-jdk8u121-b14"
+- complete changes to generate_source_tarball.sh update_package.sh NOT commited (willbe
regenerated from official repos soon)
+
+* Mon Jan 09 2017 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-5.b16
+- Added arched dependencies to headless/main package
+
+* Thu Nov 03 2016 jvanek <jvanek(a)redhat.com - 1:1.8.0.111-3.b16
+- added patch207 - PR3183.patch
+- java SSL/TLS implementation: should follow the policies of system-wide crypto policy
+
+* Fri Oct 21 2016 Omair Majid <omajid(a)redhat.com> - 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 <jvanek(a)redhat.com> - 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
+- used aarch64-port-jdk8u-aarch64-jdk8u111-b16.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u111-b16.tar.xz as new
sources for hotspot
+- adapted patches
+
+* Wed Oct 5 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.102-3.b14
+- debug subpackages allowed on aarch64 and ppc64le
+- fontconfig and nss restricted by isa
+
+* Wed Aug 31 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-2.b14
+- declared check_sum_presented_in_spec and used in prep and check
+- it is checking that latest packed java.security is mentioned in listing
+- @prefix@ in tapsetfiles substitued by prefix as necessary to work with systemtap3
(rhbz1371005)
+
+* Thu Aug 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.102-1.b14
+- updated to aarch64-jdk8u102-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u102-b14 (from aarch64-port/jdk8u-shenandoah) of
hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u102-b14.tar.xz as new sources
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u102-b14.tar.xz as new
sources for hotspot
+- removed upstreamed patches 519, 520 and 605
+- updated to systemtap 3, removed related patches 300 and 301
+- jjs provides moved to headless
+
+* Mon Aug 01 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.101-3.b14
+- Replace patch for S8162384 with upstream version. Document correctly along with
SystemTap RH1204159 patch.
+- Resolves: rhbz#1358661
+- Replace patch for S8157306 with upstream version, documented & applied on all archs
with conditional in patch
+- Resolves: rhbz#1360863
+
+* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-2.b14
+- added patch532 hotspot-1358661.patch - to fix performance of bimorphic inlining may be
bypassed by type speculation
+- added patch301 bz1204159_java8.patch - to fix systemtap on multiple jdks
+
+* Mon Jul 25 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.101-1.b14
+- updated to aarch64-jdk8u101-b14 (from aarch64-port/jdk8u)
+- updated to aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25 (from
aarch64-port/jdk8u-shenandoah) of hotspot
+- used aarch64-port-jdk8u-aarch64-jdk8u101-b14.tar.xz as new sources
+- used
aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u101-b14-shenandoah-merge-2016-07-25.tar.xz
as new sources for hotspot
+- priority lowered for ine zero digit, tip moved to 999
+- added 6260348-pr3066.patch, pr3083-rh1346460.patch, 8159244-pr3074.patch,
corba_typo_fix.patch
+renamed: jdk8-archivedJavadoc.patch -> 8154313.patch, pr2991-rh1341258.patch ->
8158260-pr2991-rh1341258.patch
+- not added 8147771-additional_hunk.patch, already in b14
+
+* Tue Jul 12 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-5.b14
+- added Provides: /usr/bin/jjs
+
+* Tue Jun 21 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-2.b14
+- family restricted by arch
+
+* Tue Jun 07 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.92-1.b14
+- updated to u92
+- removed upstreamed patches 8132051-aarch64.patch, 8143855.patch,
criticalShenandoahFix.patch, rhbz1206656_fix_current_stack_pointer.patch
+- 8132051-zero.patch, remove_aarch64_template_for_gcc6.patch
+- jdwpCrash.abrt.patch renamed to 8044762-pr2960.patch
+- httpsFix1329342.patch renamed to pr2934.patch
+- added known regresisonos fixes for u92 scheduled for next u (519-525)
+
+* Thu May 19 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-7.b14
+- added patch519, jdwpCrash.abrt.patch to fix trasnportation error
+
+* Fri May 13 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-6.b14
+- Enable weak reference discovery in ShenandoahMarkCompact. Otherwise we never process
any weak references in full-gc.
+
+* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-5.b14
+- Restricted to depend on exactly same version of nss as used for build
+- Resolves: rhbz#1332456
+
+* Tue May 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
+- updated to aarch64-shenandoah-jdk8u71-b15-beta02 (from aarch64-port/jdk8u-shenandoah)
of hotspot
+- used aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u71-b15-beta02.tar.xz as new
sources for hotspot
+- reverted nss version fix
+
+* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-4.b14
+- Restricted to depend on exactly same version of nss as use dfor build
+- Resolves: rhbz#1332456
+
+* Mon Apr 25 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-3.b14
+- included shenandoah support in 64b intel
+
+* Sun Apr 24 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.91-2.b14
+- added patch518 httpsFix1329342.patch
+- test based on SOURCE14 enabled
+- Resolves: rhbz#1329342
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Roll back release number as release 1 never succeeded, even with tests disabled.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add additional fix to Zero patch to properly handle result on 64-bit big-endian
+- Revert debugging options (aarch64 back to JIT, product build, no -Wno-error)
+- Enable full bootstrap on all architectures to check we are good to go.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn tests back on or build will not fail.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Temporarily remove power64 from JIT arches to see if endian issue appears on Zero.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn off Java-based checks in a vain attempt to get a complete build.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Turn off -Werror so s390 can build in slowdebug mode.
+- Add fix for formatting issue found by previous s390 build.
+- Resolves: rhbz#1325423
+
+* Tue Apr 12 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Revert settings to production defaults so we can at least get a build.
+- Switch to a slowdebug build to try and unearth remaining issue on s390x.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Disable ECDSA test for now until failure on RHEL 7 is fixed.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add 8132051 port to Zero.
+- Turn on bootstrap build for all to ensure we are now good to go.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Add 8132051 port to AArch64.
+- Resolves: rhbz#1325423
+
+* Mon Apr 11 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Enable a full bootstrap on JIT archs. Full build held back by Zero archs anyway.
+- Resolves: rhbz#1325423
+
+* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Use basename of test file to avoid misinterpretation of full path as a package
+- Resolves: rhbz#1325423
+
+* Sun Apr 10 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.91-1.b14
+- Update to u91b14.
+- Resolves: rhbz#1325423
+
+* Mon Apr 04 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.77-2.b03
+- added patch400 jdk8-archivedJavadoc.patch
+- added javadoc-zip(-debug) subpackage with compressed javadoc
+
+* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
+- Fix typo in test invocation.
+- Resolves: rhbz#1245810
+
+* Thu Mar 31 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-3.b03
+- Add ECDSA test to ensure ECC is working.
+- Resolves: rhbz#1245810
+
+* Wed Mar 30 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-2.b03
+- Avoid WithSeed versions of NSS functions as they do not fully process the seed
+- List current java.security md5sum so that java.security is replaced and ECC gets
enabled.
+- Resolves: rhbz#1245810
+
+* Wed Mar 23 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.77-1.b03
+- Update to u77b03.
+
+* Thu Mar 03 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-13.b16
+- When using a compositing WM, the overlay window should be used, not the root window.
+
+* Mon Feb 29 2016 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.72-12.b15
+- Use a simple backport for PR2462/8074839.
+- Don't backport the crc check for pack.gz. It's not tested well upstream.
+
+* Mon Feb 29 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b16
+- Fix regression introduced on s390 by large code cache change.
+- Update to u72b16.
+- Drop 8147805 and jvm.cfg fix which are applied upstream.
+
+* Wed Feb 24 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-11.b15
+- Add patches to allow the SunEC provider to be built with the system NSS install.
+- Re-generate source tarball so it includes ecc_impl.h.
+- Adjust tarball generation script to allow ecc_impl.h to be included.
+- Bring over NSS changes from java-1.7.0-openjdk spec file (NSS_CFLAGS/NSS_LIBS)
+- Remove patch which disables the SunEC provider as it is now usable.
+- Correct spelling mistakes in tarball generation script.
+- Move completely unrelated AArch64 gcc 6 patch into separate file.
+- Resolves: rhbz#1019554 (fedora bug)
+
+* Tue Feb 23 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-10.b15
+- returning accidentlay removed hunk from renamed and so wrongly merged
remove_aarch64_jvm.cfg_divergence.patch
+
+* Mon Feb 22 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-9.b15
+- sync from rhel
+
+* Tue Feb 16 2016 Dan Hork <dan[at]danny.cz> - 1:1.8.0.72-8.b15
+- Refresh s390-java-opts patch
+
+* Tue Feb 16 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-7.b15
+- Use -fno-lifetime-dse over -fno-guess-branch-probability.
+ See RHBZ#1306558.
+
+* Mon Feb 15 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-6.b15
+- Add aarch64_FTBFS_rhbz_1307224.patch so as to resolve RHBZ#1307224.
+
+* Fri Feb 12 2016 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.72-5.b15
+- Add -fno-delete-null-pointer-checks -fno-guess-branch-probability flags to resolve
x86/x86_64 crash.
+
+* Mon Feb 08 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.72-5.b15
+- Explicitly set the C++ standard to use, as the default has changed to C++ 2014 in GCC
6.
+- Turn off -Werror due to format warnings in HotSpot and -std usage warnings in SCTP.
+- Run tests under the check stage and use the debug build first.
+
+* Fri Feb 05 2016 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.71-4.b15
+- Backport S8148351: Only display resolved symlink for compiler, do not change path
+
+* Wed Feb 03 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-3.b15
+* touch -t 201401010000 java.security to try to worakround md5sums
+
+* Wed Jan 27 2016 jvanek <jvanek(a)redhat.com> - 1:1.8.0.72-1.b15
+- updated to aarch64-jdk8u72-b15 (from aarch64-port/jdk8u)
+- used aarch64-port-jdk8u-aarch64-jdk8u72-b15.tar.xz as new sources
+- removed already upstreamed patch501 8146566.patch
+
+* Wed Jan 20 2016 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.71-1.b15
+- sync with rhel7
+- security update to CPU 19.1.2016 to u71b15
+
+* Tue Dec 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-14.b17
+- pretrans moved back to lua nd now includes file from copy-jdk-configs instead of call
it
+
+* Tue Dec 15 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.65-13.b17
+- Disable hardened build on non-JIT arches.
+ Workaround for RHBZ#1290936.
+
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-12.b17
+-removed patch4 java-1.8.0-openjdk-PStack-808293.patch
+-removed patch13 libjpeg-turbo-1.4-compat.patch
+
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-11.b17
+- Define our own optimisation flags based on the optflags macro and pass to OpenJDK build
cflags/cxxflags.
+- Remove -fno-devirtualize as we are now on GCC 5 where the GCC bug it worked around is
fixed.
+- Pass __global_ldflags to --with-extra-ldflags so Fedora linker flags are used in the
build.
+- Also Pass ourcppflags to the OpenJDK build cflags as it wrongly uses them for the
HotSpot C++ build.
+- Add PR2428, PR2462 & S8143855 patches to fix build issues that arise.
+- Resolves: rhbz#1283949
+- Resolves: rhbz#1120792
+
+* Thu Dec 10 2015 Andrew Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.65-10.b17
+- Add patch to honour %%{_smp_ncpus_max} from Tuomo Soini
+- Resolves: rhbz#1152896
+
+* Wed Dec 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-9.b17
+- extracted lua scripts moved from pre where they don't work to pretrans
+- requirement on copy-jdk-configs made Week.
+
+* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-8.b17
+- used extracted lua scripts.
+- now depnding on copy-jdk-configs
+- config files persisting in pre instead of %%pretrans
+
+* Tue Dec 08 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-7.b17
+- changed way of generating the sources. As result:
+- "updated" to aarch64-jdk8u65-b17 (from aarch64-port/jdk8u60)
+- used aarch64-port-jdk8u60-aarch64-jdk8u65-b17.tar.xz as new sources
+
+* Fri Nov 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-5.b17
+- added missing md5sums
+- moved to bundeld lcms
+
+* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-4.b17
+- debug packages priority lowered by 1
+
+* Wed Nov 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-3.b17
+- depends on chkconfig >1.7 - added --family support
+
+* Fri Nov 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-2.b17
+- added and applied patch605 soundFontPatch.patch as repalcement for removed sound font
links
+- removed hardcoded soundfont links
+
+* Thu Nov 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.65-1.b17
+- updated to u65b17
+
+* Mon Nov 09 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-17.b28
+- policytool manpage followed the binary from devel to jre
+
+* Mon Nov 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-16.b28
+added and applied patch604: aarch64-ifdefbugfix.patch to fix rhbz1276959
+
+* Thu Oct 15 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-15.b28
+- moved to single source integration forest
+- removed patch patch9999 enableArm64.patch
+- removed patch patch600 %%{name}-rh1191652-hotspot.patch
+
+* Thu Aug 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-14.b24
+- updated aarch64 tarball to contain whole forest of latest
jdk8-aarch64-jdk8u60-b24.2.tar.xz
+- using this forest instead of only hotspot
+- generate_source_tarball.sh - temporarily excluded repos="hotspot" compression
of download
+- not only openjdk/hotspot is replaced, by wholeopenjdk
+- ln -s openjdk jdk8 done after replacing of openjdk
+- patches 9999 601 and 602 exclded for aarch64
+
+* Wed Aug 26 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-13.b24
+- updated aarch64 hotpost to latest jdk8-aarch64-jdk8u60-b24.2.tar.xz
+
+* Wed Aug 19 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-12.b24
+- updated to freshly released jdk8u60-jdk8u60-b27
+
+* Thu Aug 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-11.b24
+- another touching attempt to polycies...
+
+* Mon Aug 03 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-10.b24
+- arch64 updated to u60-b24 with hope to fix rhbz1249037
+
+* Fri Jul 17 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-3.b24
+- added one more md5sum test (thanx to Severin!)
+ - I guess one more missing
+- doubled slash in md5sum test in post
+
+* Thu Jul 16 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b24
+- updated to security u60-b24
+- moved to openjdk instead of jdk8 topdir in sources
+- removed upstreamed patch99 java-1.8.0-openjdk-linux-4.x.patch
+- removed upstreamed patch503 pr2444.patch
+- removed upstreamed patch505 1208369_memory_leak_gcc5.patch
+- removed upstreamed patch506: gif4.1.patch
+ - note: usptream version is suspicious
+ GIFLIB_MAJOR >= 5 SplashStreamGifInputFunc, NULL
+ ELSE SplashStreamGifInputFunc
+ - but the condition seems to be viceversa
+
+
+* Mon Jun 22 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.60-7.b16
+- Require javapackages-tools instead of jpackage-utils.
+
+* Wed Jun 17 2015 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.60-6.b16
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
+
+* Tue Jun 09 2015 Dan Hork <dan[at]danny.cz> - 1:1.8.0.60-5.b16
+- allow build on Linux 4.x kernel
+- refresh s390 size_t patch
+
+* Fri Jun 05 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-4.b16
+- added requires lksctp-tools for headless subpackage to make sun.nio.ch.sctp work
+
+* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-2.b16
+- Patch503 d318d83c4e74.patch, patch505 1208369_memory_leak_gcc5.patch (and patch506
gif4.1.patch)
+ moved out of "if with_systemtap" block
+
+* Mon May 25 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.60-1.b16
+- updated to u60b16
+- deleted upstreamed patches:
+ patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+ patch502 1182694_javaApplicationMenuMisbehave.patch
+ patch504 1210739_dns_naming_ipv6_addresses.patch
+ patch402 atomic_linux_zero.inline.hpp.patch
+ patch401 fix_ZERO_ARCHDEF_ppc.patch
+ patch400 ppc_stack_overflow_fix.patch
+ patch204 zero-interpreter-fix.patch
+- added Patch506 gif4.1.patch to allow build agaisnt giflib > 4.1
+
+* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-38.b14
+- updated to 8u45-b14 with hope to fix rhbz#1123870
+
+* Wed May 13 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-37.b13
+- added runtime requires for tzdata
+- Remove reference to tz.properties which is no longer used (by gnu.andrew)
+
+* Wed Apr 29 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.45-36.b13
+- Patch hotspot to not use undefined code rather than passing
+ -fno-tree-vrp via CFLAGS.
+ Resolves: RHBZ#1208369
+- Add upstream patch for DNS nameserver issue with IPv6 addresses.
+ Resolves: RHBZ#1210739
+
+* Wed Apr 29 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-35.b13
+- Omit jsa files from power64 file list as well, as they are never generated
+- moved to boot build by openjdk8
+- Use the template interpreter on ppc64le
+
+* Fri Apr 10 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-31.b13
+- repacked sources
+
+* Tue Apr 07 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.45-30.b13
+- updated to security u45
+- removed patch6: disable-doclint-by-default.patch
+- added patch d318d83c4e74.patch
+- added rhbz1206656_fix_current_stack_pointer.patch
+- renamed PStack-808293.patch -> java-1.8.0-openjdk-PStack-808293.patch
+- renamed remove-intree-libraries.sh -> java-1.8.0-openjdk-remove-intree-libraries.sh
+- renamed to preven conflix with jdk7
+
+* Fri Apr 03 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-27.b25
+- Add -fno-tree-vrp to flags to prevent hotspot miscompilation.
+- Resolves: RHBZ#1208369
+
+* Thu Apr 02 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-27.b25
+- bumped release. Needed rebuild by itself on arm
+
+* Tue Mar 31 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-26.b25
+- Make Zero build-able on ARM32.
+ Resolves: RHBZ#1206656
+
+* Fri Mar 27 2015 Dan Hork <dan[at]danny.cz> - 1:1.8.0.40-25.b25
+- refresh s390 patches
+
+* Fri Mar 27 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-24.b25
+- added patch501
1182011_JavaPrintApiDoesNotPrintUmlautCharsWithPostscriptOutputCorrectly.patch
+- added patch502 1182694_javaApplicationMenuMisbehave.patch
+- both upstreamed, will be gone with u60
+
+* Wed Mar 25 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-23.b25
+- Disable various EC algorithms in configuration
+
+* Mon Mar 23 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-22.b25
+- sytemtap made working for dual package
+
+* Tue Mar 03 2015 Severin Gehwolf <sgehwolf(a)redhat.com> - 1:1.8.0.40-21.b25
+- Added compiler no-warn-
+
+* Fri Feb 20 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
+- Fix zero interpreter build.
+
+* Thu Feb 12 2015 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-21.b25
+- Fix building with gcc 5 by ignoring return-local-addr warning
+- Include additional debugging info for java class files and test that they are
+ present
+
+* Thu Feb 12 2015 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-20.b25
+- bumped to b25
+- removed upstreamed patch11 hotspot-build-j-directive.patch
+- policies repacked to stop spamming yum update
+- added and used source20 repackReproduciblePolycies.sh
+- added mehanism to force priority size
+
+* Fri Jan 09 2015 Dan Hork <dan[at]danny.cz> - 1:1.8.0.40-19.b12
+- refresh s390 patches
+
+* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-18.b12
+- updated arm64 tarball to jdk8-jdk8u40-b12-aarch64-1263.tar.xz
+
+* Fri Nov 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-17.b12
+- obsoleted gcj and sindoc. rh1149674 and rh1149675
+- removed backup/restore on images and docs in favor of reconfigure in different
directory
+
+* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-16.b12
+- updated both noral and aarch64 tarballs to u40b12
+
+* Mon Nov 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-15.b02
+- enabled debug packages
+- removed all provides duplicating package name
+- comments about files moved inside files section (to prevent different javadoc postuns)
+ - see (RH1160693)
+
+* Fri Oct 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-13.b02
+- Build against libjpeg-turbo-1.4
+
+* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-13.b02
+- preparing for parallel debug+normal build
+- files and scripelts moved to extendable macros as first step to dual build
+- install and build may be done in loop for both release and slowdebug
+- debugbuild off untill its completed
+
+* Fri Oct 24 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-12.b02
+- added patch12,removeSunEcProvider-RH1154143
+- xdump excluded from ppc64le (rh1156151)
+- Add check for src.zip completeness. See RH1130490 (by sgehwolf(a)redhat.com)
+- Resolves: rhbz#1125260
+
+* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-11.b02
+- fixing flags usages (thanx to jerboaa!)
+
+* Thu Sep 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-10.b26
+- sync with rhel7
+
+* Wed Sep 17 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-9.b26
+- Remove LIBDIR and funny definition of _libdir.
+- Fix rpmlint warnings about macros in comments.
+
+* Thu Sep 11 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-8.b26
+- fixed headless to become headless again
+ - jre/bin/policytool added to not headless exclude list
+
+* Wed Sep 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-7.b26
+- Update aarch64 hotspot to latest upstream version
+
+* Fri Sep 05 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.40-6.b26
+- Use %%{power64} instead of %%{ppc64}.
+
+* Thu Sep 04 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-5.b26
+- Update aarch64 hotspot to jdk7u40-b02 to match the rest of the JDK
+- commented out patch2 (obsolated by 666)
+- all ppc64 added to jitarches
+
+* Thu Sep 04 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.20-4.b26
+- Use the cpp interpreter on ppc64le.
+
+* Wed Sep 03 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-3.b26
+- fixed RH1136544, orriginal issue, state of pc64le jit remians mistery
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.20-2.b26
+- requirement Requires: javazi-1.8/tzdb.dat changed to tzdata-java >= 2014f-1
+- see RH1130800#c5
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
+- adapted aarch64 patch
+- removed upstreamed patch 0001-PPC64LE-arch-support-in-openjdk-1.8.patch
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b02
+- updated to u40-b02
+- adapted aarch64 patches
+
+* Wed Aug 27 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.40-1.b01
+- updated to u40-b01
+- adapted java-1.8.0-openjdk-accessible-toolkit.patch
+- adapted system-lcms.patch
+- removed patch8 set-active-window.patch
+- removed patch9 javadoc-error-jdk-8029145.patch
+- removed patch10 javadoc-error-jdk-8037484.patch
+- removed patch99 applet-hole.patch - itw 1.5.1 is able to ive without it
+
+* Tue Aug 19 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-19.b12
+- fixed desktop icons
+- Icon set to java-1.8.0
+- Development removed from policy tool
+
+* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-18.b12
+- fixed jstack
+
+* Mon Aug 18 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-17.b12
+- added build requires and requires for headles _datadir/javazi-1.8/tzdb.dat
+- restriction of tzdata provider, so we will be aware of another possible failure
+
+* Sat Aug 16 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org>
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
+
+* Thu Aug 14 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-15.b12
+- fixed provides/obsolates
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-14.b12
+- forced to build in fully versioned dir
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-13.b12
+- fixing tapset to support multipleinstalls
+- added more config/norepalce
+- policitool moved to jre
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-12.b12
+- bumped release to build by previous release.
+- forcing rebuild by jdk8
+- uncommenting forgotten comment on tzdb link
+
+* Tue Aug 12 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-11.b12
+- backporting old fixes:
+- get rid of jre-abrt, uniquesuffix, parallel install, jsa files,
+ config(norepalce) bug, -fstack-protector-strong, OrderWithRequires,
+ nss config, multilib arches, provides/requires excludes
+- some additional cosmetic changes
+
+* Tue Jul 22 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.11-8.b12
+- Modify aarch64-specific jvm.cfg to list server vm first
+
+* Mon Jul 21 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-7.b12
+- removed legacy aarch64 switches
+ - --with-jvm-variants=client and --disable-precompiled-headers
+
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-6.b12
+- added patch patch9999 enableArm64.patch to enable new hotspot
+
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-5.b12
+- Attempt to update aarch64 *jdk* to u11b12, by resticting aarch64 sources to hotpot
only
+
+* Tue Jul 15 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.11-1.b12
+- updated to security u11b12
+
+* Tue Jun 24 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-13.b13
+- Obsolete java-1.7.0-openjdk
+
+* Wed Jun 18 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-12.b13
+- Use system tzdata from tzdata-java
+
+* Thu Jun 12 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
+- Add patch from IcedTea to handle -j and -I correctly
+
+* Wed Jun 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-11.b13
+- Backport javadoc fixes from upstream
+- Related: rhbz#1107273
+
+* Sat Jun 07 2014 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.5-10.b13
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
+
+* Mon Jun 02 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-9.b13
+- Build with OpenJDK 8
+
+* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-8.b13
+- Backport fix for JDK-8012224
+
+* Wed May 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-7.b13
+- Require fontconfig and minimal fonts (xorg-x11-fonts-Type1) explicitly
+- Resolves rhbz#1101394
+
+* Fri May 23 2014 Dan Hork <dan[at]danny.cz> - 1:1.8.0.5-6.b13
+- Enable build on s390/s390x
+
+* Tue May 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-5.b13
+- Only check for debug symbols in libjvm if it exists.
+
+* Fri May 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
+- Include all sources in src.zip
+
+* Mon Apr 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-4.b13
+- Check for debug symbols in libjvm.so
+
+* Thu Apr 24 2014 Brent Baude <baude(a)us.ibm.com> - 1:1.8.0.5-3.b13
+- Add ppc64le support, bz# 1088344
+
+* Wed Apr 23 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-2.b13
+- Build with -fno-devirtualize
+- Don't strip debuginfo from files
+
+* Wed Apr 16 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
+- Instrument build with various sanitizers.
+
+* Tue Apr 15 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.5-1.b13
+- Update to the latest security release: OpenJDK8 u5 b13
+
+* Fri Mar 28 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-2.b132
+- Include version information in desktop files
+- Move desktop files from tarball to top level source
+
+* Tue Mar 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-1.0.b132
+- Switch from java8- style provides to java- style
+- Bump priority to reflect java version
+
+* Fri Mar 21 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.35.b132
+- Disable doclint for compatiblity
+- Patch contributed by Andrew John Hughes
+
+* Tue Mar 11 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.34.b132
+- Include jdeps and jjs for aarch64. These are present in b128.
+
+* Mon Mar 10 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.33.b132
+- Update aarch64 tarball to the latest upstream release
+
+* Fri Mar 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.32.b132
+- Fix `java -version` output
+
+* Fri Mar 07 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.31.b132
+- updated to rc4 aarch64 tarball
+- outdated removed: patch2031 system-lcmsAARCH64.patch patch2011
system-libjpeg-aarch64.patch
+ patch2021 system-libpng-aarch64.patch
+
+* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.30.b132
+- Update to b132
+
+* Thu Mar 06 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.29.b129
+- Fix typo in STRIP_POLICY
+
+* Mon Mar 03 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.28.b129
+- Remove redundant debuginfo files
+- Generate complete debug information for libjvm
+
+* Tue Feb 25 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.27.b129
+- Fix non-headless libraries
+
+* Tue Feb 25 2014 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Fix incorrect Requires
+
+* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Add -headless subpackage based on java-1.7.0-openjdk
+- Add abrt connector support
+- Add -accessibility subpackage
+
+* Thu Feb 13 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.26.b129
+- Update to b129.
+
+* Fri Feb 07 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.25.b126
+- Update to candidate Reference Implementation release.
+
+* Fri Jan 31 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.24.b123
+- Forward port more patches from java-1.7.0-openjdk
+
+* Mon Jan 20 2014 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.23.b123
+- Update to jdk8-b123
+
+* Thu Nov 14 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.22.b115
+- Update to jdk8-b115
+
+* Wed Oct 30 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.21.b106
+- added jre/lib/security/blacklisted.certs for aarch64
+- updated to preview_rc2 aarch64 tarball
+
+* Sun Oct 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.20.b106
+- Fix paths in tapsets to work on non-x86_64
+- Use system libjpeg
+
+* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.19.b106
+- Fix with_systemtap conditionals
+
+* Thu Sep 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.18.b106
+- Update to jdk8-b106
+
+* Tue Aug 13 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.17.b89x
+- Updated aarch64 to latest head
+- Dropped upstreamed patches
+
+* Wed Aug 07 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- The zero fix only applies on b89 tarball
+
+* Tue Aug 06 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- Add patch to fix zero on 32-bit build
+
+* Mon Aug 05 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.16.b89x
+- Added additional build fixes for aarch64
+
+* Sat Aug 03 2013 Fedora Release Engineering <rel-eng(a)lists.fedoraproject.org> -
1:1.8.0.0-0.16.b89x
+- Rebuilt for
https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild
+
+* Fri Aug 02 2013 Deepak Bhole <dbhole(a)redhat.com> - 1:1.8.0.0-0.15.b89
+- Added a missing includes patch (#302/%%{name}-arm64-missing-includes.patch)
+- Added --disable-precompiled-headers for arm64 build
+
+* Mon Jul 29 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.14.b89
+- added patch 301 - removeMswitchesFromx11.patch
+
+* Fri Jul 26 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.13.b89
+- added new aarch64 tarball
+
+* Thu Jul 25 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.12.b89
+- ifarchaarch64 then --with-jvm-variants=client
+
+* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.11.b89
+- prelink dependence excluded also for aaech64
+- arm64 added to jitarches
+- added source100 config.guess to repalce the outdated one in-tree
+- added source101 config.sub to repalce the outdated one in-tree
+- added patch2011 system-libjpegAARCH64.patch (as aarch64-port is little bit diferent)
+- added patch2031 system-lcmsAARCH64.patch (as aarch64-port is little bit diferent)
+- added gcc-c++ build depndece so builddep will result to better situation
+
+* Tue Jul 23 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.10.b89
+- moved to latest working osurces
+
+* Tue Jul 23 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.10.b89
+- Moved to hg clone for generating sources.
+
+* Sun Jul 21 2013 Jiri Vanek <jvanek(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- added aarch 64 tarball, proposed usage of clone instead of tarballs
+
+* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- Switch to xz for compression
+- Fixes RHBZ#979823
+
+* Mon Jul 15 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.9.b89
+- Priority should be 0 until openjdk8 is released by upstream
+- Fixes RHBZ#964409
+
+* Mon Jun 3 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.8.b89
+- Fix incorrect permissions on ct.sym
+
+* Mon May 20 2013 Omair Majid <omajid(a)redhat.com> - 1:1.8.0.0-0.7.b89
+- Fix incorrect permissions on jars
+
+* Fri May 10 2013 Adam Williamson <awilliam(a)redhat.com>
+- update scriptlets to follow current guidelines for updating icon cache
+
+* Tue Apr 30 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.5.b87
+- Update to b87
+- Remove all rhino support; use nashorn instead
+- Remove upstreamed/unapplied patches
+
+* Tue Apr 23 2013 Karsten Hopp <karsten(a)redhat.com> 1:1.8.0.0-0.4.b79
+- update java-1.8.0-openjdk-ppc-zero-hotspot patch
+- use power64 macro
+
+* Thu Mar 28 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.3.b79
+- Add build fix for zero
+- Drop gstabs fixes; enable full debug info instead
+
+* Wed Mar 13 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.2.b79
+- Fix alternatives priority
+
+* Tue Mar 12 2013 Omair Majid <omajid(a)redhat.com> 1:1.8.0.0-0.1.b79.f19
+- Update to jdk8-b79
+- Initial version for Fedora 19
+
+* Tue Sep 04 2012 Andrew John Hughes <gnu.andrew(a)redhat.com> - 1:1.8.0.0-b53.1
+- Initial build from java-1.7.0-openjdk RPM