Merge pathces from rhel7

This commit is contained in:
Jiri Vanek 2018-06-11 17:11:26 +02:00
parent e1efe6b8af
commit 0b5ec94011
21 changed files with 916 additions and 88 deletions

123
8165489-pr3589.patch Normal file
View File

@ -0,0 +1,123 @@
# HG changeset patch
# User mdoerr
# Date 1473159687 -7200
# Tue Sep 06 13:01:27 2016 +0200
# Node ID 7f6e1069a5719c8908b53774d3560ce851c7cd70
# Parent b8fc1e640c4c7f38ca94131279cb67c4d3de6961
8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
Summary: Add missing barrier, sharing code with Unsafe_GetObject.
Reviewed-by: kbarrett, mgerdin, pliden, tschatzl
diff --git openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp openjdk/hotspot/src/share/vm/prims/unsafe.cpp
--- openjdk.orig/hotspot/src/share/vm/prims/unsafe.cpp
+++ openjdk/hotspot/src/share/vm/prims/unsafe.cpp
@@ -199,37 +199,40 @@
// Get/SetObject must be special-cased, since it works with handles.
+// We could be accessing the referent field in a reference
+// object. If G1 is enabled then we need to register non-null
+// referent with the SATB barrier.
+
+#if INCLUDE_ALL_GCS
+static bool is_java_lang_ref_Reference_access(oop o, jlong offset) {
+ if (offset == java_lang_ref_Reference::referent_offset && o != NULL) {
+ Klass* k = o->klass();
+ if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
+ assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
+ return true;
+ }
+ }
+ return false;
+}
+#endif
+
+static void ensure_satb_referent_alive(oop o, jlong offset, oop v) {
+#if INCLUDE_ALL_GCS
+ if (UseG1GC && v != NULL && is_java_lang_ref_Reference_access(o, offset)) {
+ G1SATBCardTableModRefBS::enqueue(v);
+ }
+#endif
+}
+
// The xxx140 variants for backward compatibility do not allow a full-width offset.
UNSAFE_ENTRY(jobject, Unsafe_GetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint offset))
UnsafeWrapper("Unsafe_GetObject");
if (obj == NULL) THROW_0(vmSymbols::java_lang_NullPointerException());
GET_OOP_FIELD(obj, offset, v)
- jobject ret = JNIHandles::make_local(env, v);
-#if INCLUDE_ALL_GCS
- // We could be accessing the referent field in a reference
- // object. If G1 is enabled then we need to register a non-null
- // referent with the SATB barrier.
- if (UseG1GC) {
- bool needs_barrier = false;
- if (ret != NULL) {
- if (offset == java_lang_ref_Reference::referent_offset) {
- oop o = JNIHandles::resolve_non_null(obj);
- Klass* k = o->klass();
- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
- assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
- needs_barrier = true;
- }
- }
- }
+ ensure_satb_referent_alive(p, offset, v);
- if (needs_barrier) {
- oop referent = JNIHandles::resolve(ret);
- G1SATBCardTableModRefBS::enqueue(referent);
- }
- }
-#endif // INCLUDE_ALL_GCS
- return ret;
+ return JNIHandles::make_local(env, v);
UNSAFE_END
UNSAFE_ENTRY(void, Unsafe_SetObject140(JNIEnv *env, jobject unsafe, jobject obj, jint offset, jobject x_h))
@@ -262,32 +265,10 @@
UNSAFE_ENTRY(jobject, Unsafe_GetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset))
UnsafeWrapper("Unsafe_GetObject");
GET_OOP_FIELD(obj, offset, v)
- jobject ret = JNIHandles::make_local(env, v);
-#if INCLUDE_ALL_GCS
- // We could be accessing the referent field in a reference
- // object. If G1 is enabled then we need to register non-null
- // referent with the SATB barrier.
- if (UseG1GC) {
- bool needs_barrier = false;
- if (ret != NULL) {
- if (offset == java_lang_ref_Reference::referent_offset && obj != NULL) {
- oop o = JNIHandles::resolve(obj);
- Klass* k = o->klass();
- if (InstanceKlass::cast(k)->reference_type() != REF_NONE) {
- assert(InstanceKlass::cast(k)->is_subclass_of(SystemDictionary::Reference_klass()), "sanity");
- needs_barrier = true;
- }
- }
- }
+ ensure_satb_referent_alive(p, offset, v);
- if (needs_barrier) {
- oop referent = JNIHandles::resolve(ret);
- G1SATBCardTableModRefBS::enqueue(referent);
- }
- }
-#endif // INCLUDE_ALL_GCS
- return ret;
+ return JNIHandles::make_local(env, v);
UNSAFE_END
UNSAFE_ENTRY(void, Unsafe_SetObject(JNIEnv *env, jobject unsafe, jobject obj, jlong offset, jobject x_h))
@@ -312,6 +293,9 @@
} else {
(void)const_cast<oop&>(v = *(volatile oop*) addr);
}
+
+ ensure_satb_referent_alive(p, offset, v);
+
OrderAccess::acquire();
return JNIHandles::make_local(env, v);
UNSAFE_END

View File

@ -0,0 +1,121 @@
# HG changeset patch
# User kaddepalli
# Date 1517818481 -19800
# Mon Feb 05 13:44:41 2018 +0530
# Node ID b77308735540644d4710244e3c88865067f2905a
# Parent 39bfc94b1f4265b645c2970a58389acc779dafe9
8171000, PR3542, RH1402819: Robot.createScreenCapture() crashes in wayland mode
Reviewed-by: serb, mhalder
diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
--- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
@@ -394,77 +394,48 @@
XRectangle bbox; /* bounding box of grabbed area */
list_ptr regions;/* list of regions to read from */
{
- image_region_type *reg;
- int32_t dst_x, dst_y; /* where in pixmap to write (UL) */
- int32_t diff;
-
- XImage *reg_image,*ximage ;
- int32_t srcRect_x,srcRect_y,srcRect_width,srcRect_height ;
- int32_t rem ;
- int32_t bytes_per_line;
- int32_t bitmap_unit;
-
- bitmap_unit = sizeof (long);
- if (format == ZPixmap)
- bytes_per_line = width*depth/8;
- else
- bytes_per_line = width/8;
-
-
- /* Find out how many more bytes are required for padding so that
- ** bytes per scan line will be multiples of bitmap_unit bits */
- if (format == ZPixmap) {
- rem = (bytes_per_line*8)%bitmap_unit;
- if (rem)
- bytes_per_line += (rem/8 + 1);
- }
+ XImage *ximage ;
ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
(uint32_t)width,(uint32_t)height,8,0);
- bytes_per_line = ximage->bytes_per_line;
-
- if (format == ZPixmap)
- ximage->data = malloc(height*bytes_per_line);
- else
- ximage->data = malloc(height*bytes_per_line*depth);
-
+ ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char));
ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
- for (reg = (image_region_type *) first_in_list( regions); reg;
+ for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
reg = (image_region_type *) next_in_list( regions))
{
- int32_t rect;
- struct my_XRegion *vis_reg;
- vis_reg = (struct my_XRegion *)(reg->visible_region);
- for (rect = 0;
- rect < vis_reg->numRects;
- rect++)
+ struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region);
+ for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
{
- /** ------------------------------------------------------------------------
- Intersect bbox with visible part of region giving src rect & output
- location. Width is the min right side minus the max left side.
- Similar for height. Offset src rect so x,y are relative to
- origin of win, not the root-relative visible rect of win.
- ------------------------------------------------------------------------ **/
- srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
- - MAX( vis_reg->rects[rect].x1, bbox.x);
+ /** ------------------------------------------------------------------------
+ Intersect bbox with visible part of region giving src rect & output
+ location. Width is the min right side minus the max left side.
+ Similar for height. Offset src rect so x,y are relative to
+ origin of win, not the root-relative visible rect of win.
+ ------------------------------------------------------------------------ **/
+ int32_t srcRect_width = MIN( vis_reg->rects[rect].x2, bbox.width + bbox.x)
+ - MAX( vis_reg->rects[rect].x1, bbox.x);
+
+ int32_t srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
+ - MAX( vis_reg->rects[rect].y1, bbox.y);
- srcRect_height = MIN( vis_reg->rects[rect].y2, bbox.height + bbox.y)
- - MAX( vis_reg->rects[rect].y1, bbox.y);
+ int32_t diff = bbox.x - vis_reg->rects[rect].x1;
+ int32_t srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
+ int32_t dst_x = MAX( 0, -diff) ;
- diff = bbox.x - vis_reg->rects[rect].x1;
- srcRect_x = MAX( 0, diff) + (vis_reg->rects[rect].x1 - reg->x_rootrel - reg->border);
- dst_x = MAX( 0, -diff) ;
- diff = bbox.y - vis_reg->rects[rect].y1;
- srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
- dst_y = MAX( 0, -diff) ;
- reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
- (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
- TransferImage(disp,reg_image,srcRect_width,
- srcRect_height,reg,ximage,dst_x,dst_y) ;
- XDestroyImage(reg_image);
- }
+ diff = bbox.y - vis_reg->rects[rect].y1;
+ int32_t srcRect_y = MAX( 0, diff) + (vis_reg->rects[rect].y1 - reg->y_rootrel - reg->border);
+ int32_t dst_y = MAX( 0, -diff) ;
+ XImage* reg_image = XGetImage(disp,reg->win,srcRect_x,srcRect_y,
+ (uint32_t) srcRect_width, (uint32_t) srcRect_height,AllPlanes,format) ;
+
+ if (reg_image) {
+ TransferImage(disp,reg_image,srcRect_width,
+ srcRect_height,reg,ximage,dst_x,dst_y) ;
+ XDestroyImage(reg_image);
+ }
+ }
}
return ximage ;
}

21
8184309-pr3596.patch Normal file
View File

@ -0,0 +1,21 @@
# HG changeset patch
# User ysuenaga
# Date 1527498573 -3600
# Mon May 28 10:09:33 2018 +0100
# Node ID ef176cb429c49d1c330d9575938f66b04e3fb730
# Parent 6915dc9ae18cce5625d3a3fc74b37da70a5b4215
8184309, PR3596: Build warnings from GCC 7.1 on Fedora 26
Reviewed-by: kbarrett, vlivanov
diff --git openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp openjdk/hotspot/src/share/vm/code/dependencies.cpp
--- openjdk.orig/hotspot/src/share/vm/code/dependencies.cpp
+++ openjdk/hotspot/src/share/vm/code/dependencies.cpp
@@ -525,7 +525,7 @@
xtty->object("x", arg.metadata_value());
}
} else {
- char xn[10]; sprintf(xn, "x%d", j);
+ char xn[12]; sprintf(xn, "x%d", j);
if (arg.is_oop()) {
xtty->object(xn, arg.oop_value());
} else {

27
8185723-pr3553.patch Normal file
View File

@ -0,0 +1,27 @@
# HG changeset patch
# User aph
# Date 1501690960 -3600
# Wed Aug 02 17:22:40 2017 +0100
# Node ID 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
# Parent 4e2adbc3d2b512f6b2bf318d2db60f4d1903f8c7
8185723, PR3553: Zero: segfaults on Power PC 32-bit
Reviewed-by: roland
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -38,10 +38,10 @@
static void atomic_copy64(volatile void *src, volatile void *dst) {
#if defined(PPC32)
double tmp;
- asm volatile ("lfd %0, 0(%1)\n"
- "stfd %0, 0(%2)\n"
- : "=f"(tmp)
- : "b"(src), "b"(dst));
+ asm volatile ("lfd %0, %2\n"
+ "stfd %0, %1\n"
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
+ : "Q"(*(volatile double*)src));
#elif defined(S390) && !defined(_LP64)
double tmp;
asm volatile ("ld %0, 0(%1)\n"

32
8186461-pr3557.patch Normal file
View File

@ -0,0 +1,32 @@
# HG changeset patch
# User glaubitz
# Date 1524889690 -3600
# Sat Apr 28 05:28:10 2018 +0100
# Node ID be1379a186ba527b32c93a83e04c9600735fe44b
# Parent 91ab2eac9856ec86c16c0bedd32e0b87974ead6f
8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on linux-powerpcspe
Reviewed-by: aph
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -36,12 +36,18 @@
// Atomically copy 64 bits of data
static void atomic_copy64(volatile void *src, volatile void *dst) {
-#if defined(PPC32)
+#if defined(PPC32) && !defined(__SPE__)
double tmp;
asm volatile ("lfd %0, %2\n"
"stfd %0, %1\n"
: "=&f"(tmp), "=Q"(*(volatile double*)dst)
: "Q"(*(volatile double*)src));
+#elif defined(PPC32) && defined(__SPE__)
+ long tmp;
+ asm volatile ("evldd %0, %2\n"
+ "evstdd %0, %1\n"
+ : "=&r"(tmp), "=Q"(*(volatile long*)dst)
+ : "Q"(*(volatile long*)src));
#elif defined(S390) && !defined(_LP64)
double tmp;
asm volatile ("ld %0, 0(%1)\n"

59
8187577-pr3578.patch Normal file
View File

@ -0,0 +1,59 @@
# HG changeset patch
# User poonam
# Date 1525279722 -3600
# Wed May 02 17:48:42 2018 +0100
# Node ID ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
# Parent 5460c427c0dcb335f510cbc2ea1d76c6921b1aaa
8187577, PR3578: JVM crash during gc doing concurrent marking
Summary: Inform G1's SATB that a klass has been resurrected and it should not be unloaded
Reviewed-by: coleenp, tschatzl, kbarrett
diff --git openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
--- openjdk.orig/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
+++ openjdk/hotspot/src/share/vm/prims/jvmtiGetLoadedClasses.cpp
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2003, 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
@@ -27,6 +27,9 @@
#include "memory/universe.inline.hpp"
#include "prims/jvmtiGetLoadedClasses.hpp"
#include "runtime/thread.hpp"
+#if INCLUDE_ALL_GCS
+#include "gc_implementation/g1/g1SATBCardTableModRefBS.hpp"
+#endif
// The closure for GetLoadedClasses
@@ -35,6 +38,20 @@
Stack<jclass, mtInternal> _classStack;
JvmtiEnv* _env;
+// Tell the GC to keep this klass alive
+static void ensure_klass_alive(oop o) {
+ // A klass that was previously considered dead can be looked up in the
+ // CLD/SD, and its _java_mirror or _class_loader can be stored in a root
+ // or a reachable object making it alive again. The SATB part of G1 needs
+ // to get notified about this potential resurrection, otherwise the marking
+ // might not find the object.
+#if INCLUDE_ALL_GCS
+ if (UseG1GC && o != NULL) {
+ G1SATBCardTableModRefBS::enqueue(o);
+ }
+#endif
+}
+
public:
LoadedClassesClosure(JvmtiEnv* env) {
_env = env;
@@ -43,6 +60,7 @@
void do_klass(Klass* k) {
// Collect all jclasses
_classStack.push((jclass) _env->jni_reference(k->java_mirror()));
+ ensure_klass_alive(k->java_mirror());
}
int extract(jclass* result_list) {

View File

@ -0,0 +1,35 @@
# HG changeset patch
# User prr
# Date 1518454604 28800
# Mon Feb 12 08:56:44 2018 -0800
# Node ID 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
# Parent b77308735540644d4710244e3c88865067f2905a
8197546: Fix for 8171000 breaks Solaris + Linux builds
Reviewed-by: serb, jdv
diff --git openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
--- openjdk.orig/jdk/src/solaris/native/sun/awt/multiVis.c
+++ openjdk/jdk/src/solaris/native/sun/awt/multiVis.c
@@ -395,6 +395,8 @@
list_ptr regions;/* list of regions to read from */
{
XImage *ximage ;
+ image_region_type* reg;
+ int32_t rect;
ximage = XCreateImage(disp,fakeVis,(uint32_t) depth,format,0,NULL,
(uint32_t)width,(uint32_t)height,8,0);
@@ -402,11 +404,11 @@
ximage->data = calloc(ximage->bytes_per_line*height*((format==ZPixmap)? 1 : depth), sizeof(char));
ximage->bits_per_pixel = depth; /** Valid only if format is ZPixmap ***/
- for (image_region_type* reg = (image_region_type *) first_in_list( regions); reg;
+ for (reg = (image_region_type *) first_in_list( regions); reg;
reg = (image_region_type *) next_in_list( regions))
{
struct my_XRegion *vis_reg = (struct my_XRegion *)(reg->visible_region);
- for (int32_t rect = 0; rect < vis_reg->numRects; rect++)
+ for (rect = 0; rect < vis_reg->numRects; rect++)
{
/** ------------------------------------------------------------------------
Intersect bbox with visible part of region giving src rect & output

View File

@ -0,0 +1,65 @@
# HG changeset patch
# User andrew
# Date 1526122977 -3600
# Sat May 12 12:02:57 2018 +0100
# Node ID 00ccc73498628a51a45301322e64ce2ad06e49be
# Parent aecf9f48f7b5c6148b62713a6b746301435b57cc
PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations
Summary: Enable -mstackrealign on x86 Linux as well as x86 Mac OS X
diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in openjdk///common/autoconf/hotspot-spec.gmk.in
--- openjdk.orig///common/autoconf/hotspot-spec.gmk.in
+++ openjdk///common/autoconf/hotspot-spec.gmk.in
@@ -110,7 +110,8 @@
RC:=@HOTSPOT_RC@
EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
- $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
+ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG) \
+ $(REALIGN_CFLAG)
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/spec.gmk.in
--- openjdk.orig///common/autoconf/spec.gmk.in
+++ openjdk///common/autoconf/spec.gmk.in
@@ -333,6 +333,7 @@
NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
+REALIGN_CFLAG=@REALIGN_CFLAG@
CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
CXX:=@FIXPATH@ @CCACHE@ @CXX@
diff --git openjdk.orig///common/autoconf/toolchain.m4 openjdk///common/autoconf/toolchain.m4
--- openjdk.orig///common/autoconf/toolchain.m4
+++ openjdk///common/autoconf/toolchain.m4
@@ -796,20 +796,16 @@
#
# NOTE: check for -mstackrealign needs to be below potential addition of -m32
#
- if test "x$OPENJDK_TARGET_CPU_BITS" = x32 && test "x$OPENJDK_TARGET_OS" = xmacosx; then
+ if test "x$OPENJDK_TARGET_CPU" = xx86 && test "x$OPENJDK_TARGET_OS" = xmacosx -o \
+ "x$OPENJDK_TARGET_OS" = xlinux; then
# On 32-bit MacOSX the OS requires C-entry points to be 16 byte aligned.
- # While waiting for a better solution, the current workaround is to use -mstackrealign.
- CFLAGS="$CFLAGS -mstackrealign"
- AC_MSG_CHECKING([if 32-bit compiler supports -mstackrealign])
- AC_LINK_IFELSE([AC_LANG_SOURCE([[int main() { return 0; }]])],
- [
- AC_MSG_RESULT([yes])
- ],
- [
- AC_MSG_RESULT([no])
- AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
- ]
+ # While waiting for a better solution, the current workaround is to use -mstackrealign
+ # This is also required on Linux systems which use libraries compiled with SSE instructions
+ REALIGN_CFLAG="-mstackrealign"
+ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
+ AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
)
+ AC_SUBST([REALIGN_CFLAG])
fi
C_FLAG_DEPS="-MMD -MF"

36
8201509-pr3579.patch Normal file
View File

@ -0,0 +1,36 @@
# HG changeset patch
# User mbalao
# Date 1525317412 -3600
# Thu May 03 04:16:52 2018 +0100
# Node ID de79964656fc652f2085dac4fe99bcc128b5a3b1
# Parent ffd5260fe5adcb26f87a14f1aaaf3e1a075d712a
8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
Summary: The inline assembler for the S390 (S390 and not _LP64) has src and dst reversed thereby corrupting data
Reviewed-by: shade
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -1,6 +1,6 @@
/*
* Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved.
- * Copyright 2007, 2008, 2010 Red Hat, Inc.
+ * Copyright 2007, 2008, 2010, 2018, 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
@@ -50,10 +50,10 @@
: "Q"(*(volatile long*)src));
#elif defined(S390) && !defined(_LP64)
double tmp;
- asm volatile ("ld %0, 0(%1)\n"
- "std %0, 0(%2)\n"
- : "=r"(tmp)
- : "a"(src), "a"(dst));
+ asm volatile ("ld %0, %2\n"
+ "std %0, %1\n"
+ : "=&f"(tmp), "=Q"(*(volatile double*)dst)
+ : "Q"(*(volatile double*)src));
#elif defined(__ARM_ARCH_7A__)
jlong tmp;
asm volatile ("ldrexd %0, [%1]\n"

View File

@ -72,14 +72,22 @@
%global targets all
%endif
%ifarch %{aarch64}
# Disable hardened build on AArch64 as it didn't bootcycle
%undefine _hardened_build
%global ourcppflags "-fstack-protector-strong"
%global ourldflags %{nil}
%else
# Filter out flags from the optflags macro that cause problems with the OpenJDK build
# We filter out -O flags so that the optimisation 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 ourcppflags %(echo %ourflags | sed -e 's|-fexceptions||') "-fstack-protector-strong"
%global ourldflags %{__global_ldflags}
%endif
# With disabled nss is NSS deactivated, so NSS_LIBDIR can contain the wrong path
# the initialisation must be here. Later the pkg-config have buggy behaviour
@ -919,7 +927,7 @@ Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{releas
Name: java-%{javaver}-%{origin}
Version: %{javaver}.%{updatever}
Release: 3.%{buildver}%{?dist}
Release: 5.%{buildver}%{?dist}
# java-1.5.0-ibm from jpackage.org set Epoch to 1 for unknown reasons
# and this change was brought into RHEL-4. java-1.5.0-ibm packages
# also included the epoch in their virtual provides. This created a
@ -1035,9 +1043,11 @@ Patch509: rh1176206-root.patch
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
# 8196516, RH1538767: libfontmanager.so needs to be built with LDFLAGS so as to allow
# linking with unresolved symbols.
Patch529: rhbz_1538767_fix_linking.patch
Patch530: rhbz_1538767_fix_linking.patch
#############################################
#
@ -1051,14 +1061,18 @@ Patch205: dont-add-unnecessary-debug-links.patch
Patch206: hotspot-assembler-debuginfo.patch
# Arch-specific upstreamable patches
# PR2415: JVM -Xmx requirement is too high on s390
# s390: PR2415: JVM -Xmx requirement is too high on s390
Patch100: %{name}-s390-java-opts.patch
# Type fixing for s390
# s390: Type fixing for s390
Patch102: %{name}-size_t.patch
# Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: s390-size_t_format_flags.patch
# Fix more cases of missing return statements on AArch64
Patch104: pr3458-rh1540242.patch
# s390: PR3593: Use "%z" for size_t on s390 as size_t != intptr_t
Patch103: pr3593-s390-size_t_format_flags.patch
# AArch64: Fix more cases of missing return statements
Patch104: pr3458-rh1540242-aarch64.patch
# x86: S8199936, PR3533: HotSpot generates code with unaligned stack, crashes on SSE operations (-mstackrealign workaround)
Patch105: 8199936-pr3533-workaround.patch
# Zero: Fix more cases of missing return statements
Patch106: pr3458-rh1540242-zero.patch
#############################################
#
@ -1087,11 +1101,32 @@ Patch400: 8154313.patch
Patch526: 6260348-pr3066.patch
# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with "Property"
Patch538: 8061305-pr3335-rh1423421.patch
Patch540: rhbz1548475-LDFLAGSusage.patch
# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are present
Patch560: 8188030-pr3459-rh1484079.patch
# 8197429, PR3456, RH153662{2,3}: 32 bit java app started via JNI crashes with larger stack sizes
Patch561: 8197429-pr3456-rh1536622.patch
# 8197429, PR3546, RH153662{2,3}: 32 bit java app started via JNI crashes with larger stack sizes
Patch561: 8197429-pr3546-rh1536622.patch
# PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build
Patch562: pr3539-rh1548475.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
# 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
# PR3559: Use ldrexd for atomic reads on ARMv7.
Patch567: pr3559.patch
# 8187577, PR3578: JVM crash during gc doing concurrent marking
Patch568: 8187577-pr3578.patch
# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong
Patch569: 8201509-pr3579.patch
# 8165489, PR3589: Missing G1 barrier in Unsafe_GetObjectVolatile
Patch570: 8165489-pr3589.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
#############################################
#
@ -1116,13 +1151,15 @@ Patch525: pr1834-rh1022017.patch
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
#############################################
#
# Non-OpenJDK fixes
Patch1000: enableCommentedOutSystemNss.patch
#
#############################################
Patch1000: enableCommentedOutSystemNss.patch
BuildRequires: autoconf
BuildRequires: automake
@ -1155,6 +1192,7 @@ 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
@ -1479,12 +1517,16 @@ sh %{SOURCE12}
%patch104
%endif
# x86 fixes
%patch105
# ppc64le fixes
%patch603
%patch601
%patch602
# Zero fixes.
%patch106
# Upstreamable fixes
%patch502
@ -1506,23 +1548,40 @@ sh %{SOURCE12}
%patch523
%patch526
%patch528
%patch529
%patch538
%patch540
%patch560
pushd %{top_level_dir_name}/jdk
%patch529 -p1
popd # openjdk
pushd openjdk/jdk
%patch530 -p1
popd
%patch561
%patch562
%patch563
%patch564
%patch565
%patch566
%patch567
%patch569
%patch571
%patch572
# RPM-only fixes
%patch525
%patch539
%patch540
# RHEL-only patches
%if ! 0%{?fedora} && 0%{?rhel} <= 7
%patch534
%endif
# Shenandoah-only patches
%if %{use_shenandoah_hotspot}
%else
%patch568
%patch570
%endif
%patch1000
# Extract systemtap tapsets
@ -2163,6 +2222,40 @@ require "copy_jdk_configs.lua"
%endif
%changelog
* Mon Jun 11 2018 Jiri Vanek <jvanek@redhat.com> - 1:1.8.0.172-5.b11
- Read jssecacerts file prior to trying either cacerts file (system or local) (PR3575)
- Resolves: rhbz#1567204
- Fix a number of bad bug identifiers (PR3546 should be PR3578, PR3456 should be PR3546)
- 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.
- 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@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
* Fri Jun 08 2018 Severin Gehwolf <sgehwolf@redhat.com> - 1:1.8.0.172-3.b11
- Bump release and rebuild for fixed gdb. See RHBZ#1589118.

View File

@ -9,15 +9,3 @@ diff --git a/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp b/src/os_cpu/linux
}
void _Copy_conjoint_jshorts_atomic(jshort* from, jshort* to, size_t count) {
diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -408,6 +408,7 @@
extern "C" {
int SpinPause() {
+ return 0;
}

View File

@ -0,0 +1,11 @@
diff --git a/src/os_cpu/linux_zero/vm/os_linux_zero.cpp b/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
--- openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
@@ -408,6 +408,7 @@
extern "C" {
int SpinPause() {
+ return 0;
}

116
pr3539-rh1548475.patch Normal file
View File

@ -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)
+LFLAGS_JSIG += -D_GNU_SOURCE -D_REENTRANT $(LDFLAGS_HASH_STYLE) $(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
@@ -130,7 +130,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

29
pr3559.patch Normal file
View File

@ -0,0 +1,29 @@
# HG changeset patch
# User aph
# Date 1338206478 14400
# Mon May 28 08:01:18 2012 -0400
# Node ID 6275d7b419091092752d5a1854194c98897892ba
# Parent be1379a186ba527b32c93a83e04c9600735fe44b
PR3559: Use ldrexd for atomic reads on ARMv7.
2012-05-28 Andrew Haley <aph@redhat.com>
* os_linux_zero.hpp (atomic_copy64): Use ldrexd for atomic reads
on ARMv7.
diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
--- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
+++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp
@@ -54,6 +54,12 @@
"std %0, 0(%2)\n"
: "=r"(tmp)
: "a"(src), "a"(dst));
+#elif defined(__ARM_ARCH_7A__)
+ jlong tmp;
+ asm volatile ("ldrexd %0, [%1]\n"
+ : "=r"(tmp)
+ : "r"(src), "m"(src));
+ *(jlong *) dst = tmp;
#else
*(jlong *) dst = *(jlong *) src;
#endif

25
pr3573.patch Normal file
View File

@ -0,0 +1,25 @@
# HG changeset patch
# User roland
# Date 1506520357 -7200
# Wed Sep 27 15:52:37 2017 +0200
# Node ID c307975d0800f8da5cc8e82cd8f1fdadbd745357
# Parent ab0c101fa16e4cd97ac8ceff4f5ff72e2f4d5776
[backport] fix TCK crash with shenandoah
diff --git a/src/share/vm/opto/shenandoahSupport.cpp b/src/share/vm/opto/shenandoahSupport.cpp
--- openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
+++ openjdk/hotspot/src/share/vm/opto/shenandoahSupport.cpp
@@ -472,9 +472,11 @@
Node* input = in(Memory);
if (input->Opcode() == Op_ShenandoahWBMemProj) {
Node* wb = input->in(0);
- if (wb->is_top()) return NULL; // Dead path.
+ const Type* in_type = phase->type(wb);
+ // is_top() test not sufficient here: we can come here after CCP
+ // in a dead branch of the graph that has not yet been removed.
+ if (in_type == Type::TOP) return NULL; // Dead path.
assert(wb->Opcode() == Op_ShenandoahWriteBarrier, "expect write barrier");
- const Type* in_type = phase->type(wb);
if (is_independent(in_type, _type)) {
if (phase->is_IterGVN()) {
phase->is_IterGVN()->rehash_node_delayed(wb);

42
pr3575-rh1567204.patch Normal file
View File

@ -0,0 +1,42 @@
# HG changeset patch
# User andrew
# Date 1525111445 -3600
# Mon Apr 30 19:04:05 2018 +0100
# Node ID 388fc8da23044317c160678ffa8ff541c216a255
# Parent 556adf3a76aa81bf3918d7d46554dae7cc1d5c5c
PR3575: System cacerts database handling should not affect jssecacerts
diff --git openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
--- openjdk.orig/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
+++ openjdk/jdk/src/share/classes/sun/security/ssl/TrustManagerFactoryImpl.java
@@ -162,7 +162,7 @@
* Try:
* javax.net.ssl.trustStore (if this variable exists, stop)
* jssecacerts
- * cacerts
+ * cacerts (system and local)
*
* If none exists, we use an empty keystore.
*/
@@ -174,14 +174,14 @@
storeFile = new File(storeFileName);
fis = getFileInputStream(storeFile);
} else {
- /* Check system cacerts DB first; /etc/pki/java/cacerts */
- storeFile = new File(sep + "etc" + sep + "pki" + sep
- + "java" + sep + "cacerts");
+ String javaHome = props.get("javaHome");
+ storeFile = new File(javaHome + sep + "lib" + sep
+ + "security" + sep +
+ "jssecacerts");
if ((fis = getFileInputStream(storeFile)) == null) {
- String javaHome = props.get("javaHome");
- storeFile = new File(javaHome + sep + "lib" + sep
- + "security" + sep +
- "jssecacerts");
+ /* Check system cacerts DB first; /etc/pki/java/cacerts */
+ storeFile = new File(sep + "etc" + sep + "pki" + sep
+ + "java" + sep + "cacerts");
if ((fis = getFileInputStream(storeFile)) == null) {
storeFile = new File(javaHome + sep + "lib" + sep
+ "security" + sep +

20
pr3591.patch Normal file
View File

@ -0,0 +1,20 @@
# HG changeset patch
# User andrew
# Date 1526489197 -3600
# Wed May 16 17:46:37 2018 +0100
# Node ID 64e87a408afd2b56d59dad73dee28d4b99463810
# Parent 00ccc73498628a51a45301322e64ce2ad06e49be
PR3591: Fix for bug 3533 doesn't add -mstackrealign to JDK code
diff --git openjdk.orig///common/autoconf/toolchain.m4 openjdk///common/autoconf/toolchain.m4
--- openjdk.orig///common/autoconf/toolchain.m4
+++ openjdk///common/autoconf/toolchain.m4
@@ -794,6 +794,8 @@
TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$REALIGN_CFLAG -Werror], [],
AC_MSG_ERROR([The selected compiler $CXX does not support -mstackrealign! Try to put another compiler in the path.])
)
+ CFLAGS_JDK="${CFLAGS_JDK} ${REALIGN_CFLAG}"
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${REALIGN_CFLAG}"
AC_SUBST([REALIGN_CFLAG])
fi

View File

@ -0,0 +1,44 @@
# ssbd2.patch
--- ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp~ 2018-05-02 13:02:51.924489199 -0400
+++ ./openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2018-05-02 13:04:57.274216581 -0400
@@ -102,6 +102,8 @@
# include <inttypes.h>
# include <sys/ioctl.h>
+#include <sys/prctl.h>
+
PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
#ifndef _GNU_SOURCE
@@ -4892,6 +4894,31 @@
}
}
+/* Per task speculation control */
+#ifndef PR_GET_SPECULATION_CTRL
+#define PR_GET_SPECULATION_CTRL 52
+#endif
+#ifndef PR_SET_SPECULATION_CTRL
+#define PR_SET_SPECULATION_CTRL 53
+#endif
+/* Speculation control variants */
+# undef PR_SPEC_STORE_BYPASS
+# define PR_SPEC_STORE_BYPASS 0
+/* Return and control values for PR_SET/GET_SPECULATION_CTRL */
+# undef PR_SPEC_NOT_AFFECTED
+# undef PR_SPEC_PRCTL
+# undef PR_SPEC_ENABLE
+# undef PR_SPEC_DISABLE
+# define PR_SPEC_NOT_AFFECTED 0
+# define PR_SPEC_PRCTL (1UL << 0)
+# define PR_SPEC_ENABLE (1UL << 1)
+# define PR_SPEC_DISABLE (1UL << 2)
+
+static void set_speculation() __attribute__((constructor));
+static void set_speculation() {
+ prctl(PR_SET_SPECULATION_CTRL, PR_SPEC_STORE_BYPASS, PR_SPEC_DISABLE, 0, 0);
+}
+
// this is called _before_ the most of global arguments have been parsed
void os::init(void) {
char dummy; /* used to get a guess on initial stack address */

View File

@ -1,59 +0,0 @@
# User jvanek
# https://bugzilla.redhat.com/show_bug.cgi?id=1548475
# java-1.8.0-openjdk: Partial build flags injection
# LFLAGS += $(EXTRA_CFLAGS) corrected to LFLAGS += $(EXTRA_CFLAGS) $(EXTRA_LDFLAGS)
--- openjdk/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
--- openjdk/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
--- openjdk/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
--- openjdk/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)
--- openjdk/hotspot/make/linux/makefiles/jsig.make
+++ openjdk/hotspot/make/linux/makefiles/jsig.make
@@ -44,7 +44,7 @@ LIBJSIG_MAPFILE = $(MAKEFILES_DIR)/mapfile-vers-jsig
# 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)
# DEBUG_BINARIES overrides everything, use full -g debug information
ifeq ($(DEBUG_BINARIES), true)