Update patches with latest upstream status.

- 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
    backport.
- 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.
This commit is contained in:
Severin Gehwolf 2018-08-31 18:00:19 +02:00
parent 95d132a01b
commit 1cd817df23
17 changed files with 602 additions and 318 deletions

View File

@ -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

View File

@ -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();
+}

87
8165852-pr3468.patch Normal file
View File

@ -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");
}

View File

@ -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

View File

@ -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

View File

@ -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 $<

View File

@ -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

View File

@ -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

View File

@ -961,7 +961,7 @@ Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}.%{buildver}
Release: 1%{?dist}
Release: 2%{?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
@ -1040,20 +1040,6 @@ Source101: config.sub
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
@ -1068,10 +1054,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
@ -1080,23 +1076,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)
@ -1115,10 +1097,6 @@ 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
@ -1146,8 +1124,8 @@ 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-hotspot-assembler-debuginfo.patch
# s390: JDK-8203030, Type fixing for s390
Patch102: 8203030-size_t-fixes.patch
#############################################
#
@ -1155,9 +1133,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"
@ -1165,7 +1143,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
@ -1180,8 +1158,26 @@ 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
# 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
#############################################
#
@ -1190,6 +1186,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
#############################################
#
@ -1546,6 +1546,8 @@ sh %{SOURCE12}
%patch204
%patch205
%patch206
%patch207
%patch210
%patch300
@ -1576,8 +1578,6 @@ sh %{SOURCE12}
%patch506
%patch507
%patch508
%patch509
%patch511
%patch512
%patch513
%patch514
@ -1727,7 +1727,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} \
@ -1760,10 +1760,7 @@ cat hotspot-spec.gmk
# 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 )
@ -2271,6 +2268,31 @@ require "copy_jdk_configs.lua"
%endif
%changelog
* Tue Sep 18 2018 Severin Gehwolf <sgehwolf@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@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

View File

@ -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 */

View File

@ -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)

View File

@ -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);
}