From e0121aeccf9c28af287eec45e42e8cd14da5be1c Mon Sep 17 00:00:00 2001 From: Andrew John Hughes Date: Wed, 30 Jan 2019 14:07:13 +0000 Subject: [PATCH] Update to aarch64-shenandoah-jdk8u192-b12. Remove patches included upstream - JDK-8031668/PR2842 - JDK-8148351/PR2842 - JDK-6260348/PR3066 - JDK-8061305/PR3335/RH1423421 - JDK-8188030/PR3459/RH1484079 - JDK-8205104/PR3539/RH1548475 - JDK-8185723/PR3553 - JDK-8186461/PR3557 - JDK-8201509/PR3579 - JDK-8075942/PR3602 - JDK-8203182/PR3603 - JDK-8206406/PR3610/RH1597825 - JDK-8206425 - JDK-8036003 - JDK-8201495/PR2415 - JDK-8150954/PR2866/RH1176206 Re-generate patches (mostly due to upstream build changes) - JDK-8073139/PR1758/RH1191652 - JDK-8143245/PR3548 (due to JDK-8202600) - JDK-8197429/PR3546/RH1536622 (due to JDK-8189170) - JDK-8199936/PR3533 - JDK-8199936/PR3591 - JDK-8207057/PR3613 - JDK-8210761/RH1632174 (due to JDK-8207402) - PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509) - PR3593 (due to JDK-8081202) - RH1566890/CVE-2018-3639 (due to JDK-8189170) - RH1649664 (due to JDK-8196516) --- .gitignore | 1 + java-1.8.0-openjdk.spec | 105 +++---- ..._respecting_desktop_caret_blink_rate.patch | 150 ---------- ...unexpectedly_resolves_symbolic_links.patch | 22 -- ..._native_debug_symbols_configure_flag.patch | 249 ---------------- ..._when_method_name_ends_with_property.patch | 33 --- ...s_its_arch_is_ppc64_not_ppc64le_root.patch | 26 +- ...ion_in_sun_java2d_pisces_Dasher_goto.patch | 95 ------- ...ero_build_requires_disabled_warnings.patch | 12 +- ...link_for_compiler_do_not_change_path.patch | 65 ----- ...-rh1176206-screenshot_xcomposite_jdk.patch | 160 ----------- jdk8160748-aarch64_ideal_reg.patch | 39 +++ ...53-zero_segfaults_on_power_pc_32_bit.patch | 27 -- ...spe_instructions_on_linux_powerpcspe.patch | 32 --- ..._when_some_minimal_fonts_are_present.patch | 21 -- jdk8189170-aarch64_primordial_thread.patch | 30 ++ ...ack_guard_causes_segfaults_on_x86_32.patch | 265 +++++++++++++++--- ...on_x86_linux_as_well_as_x86_mac_os_x.patch | 61 ++-- ...86_linux_as_well_as_x86_mac_os_x_jdk.patch | 10 +- ...f_max_heap_size_for_boot_JDK_on_s390.patch | 21 -- ...mic_copy64_inline_assembler_is_wrong.patch | 36 --- ...ization_of_sunpkcs11_signature_fails.patch | 131 --------- ...-pass_extra_ldflags_to_hotspot_build.patch | 116 -------- ...tructed_objects_on_stubCodeDesc_list.patch | 65 ----- ...onally_when_no_debuginfo_is_stripped.patch | 73 ----- ..._debug_info_for_assembler_files_root.patch | 71 +++-- ..._being_compiled_without_optimization.patch | 19 +- ...drexd_for_atomic_reads_on_armv7_zero.patch | 6 +- ...rguments_as_size_t_not_equals_to_int.patch | 92 +++--- ...sk_speculation_control_CVE_2018_3639.patch | 12 +- ...ies_compiled_with_no_strict_overflow.patch | 14 +- sources | 2 +- 32 files changed, 508 insertions(+), 1553 deletions(-) delete mode 100644 jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch delete mode 100644 jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch delete mode 100644 jdk8036003-add_with_native_debug_symbols_configure_flag.patch delete mode 100644 jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch delete mode 100644 jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch delete mode 100644 jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch delete mode 100644 jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch create mode 100644 jdk8160748-aarch64_ideal_reg.patch delete mode 100644 jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch delete mode 100644 jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch delete mode 100644 jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch create mode 100644 jdk8189170-aarch64_primordial_thread.patch delete mode 100644 jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch delete mode 100644 jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch delete mode 100644 jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch delete mode 100644 jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch delete mode 100644 jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch delete mode 100644 jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch diff --git a/.gitignore b/.gitignore index 95356b2..629c2fd 100644 --- a/.gitignore +++ b/.gitignore @@ -129,3 +129,4 @@ /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b12.tar.xz /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b13.tar.xz /aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u191-b14.tar.xz +/aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz diff --git a/java-1.8.0-openjdk.spec b/java-1.8.0-openjdk.spec index 61708b0..bca8ae5 100644 --- a/java-1.8.0-openjdk.spec +++ b/java-1.8.0-openjdk.spec @@ -226,7 +226,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-jdk8u191-b14 +%global shenandoah_revision aarch64-shenandoah-jdk8u192-b12 # Define old aarch64/jdk8u tree variables for compatibility %global project %{shenandoah_project} %global repo %{shenandoah_repo} @@ -971,7 +971,7 @@ Provides: java-%{javaver}-%{origin}-accessibility = %{epoch}:%{version}-%{releas Name: java-%{javaver}-%{origin} Version: %{javaver}.%{updatever}.%{buildver} -Release: 1%{?dist} +Release: 0%{?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 @@ -1119,6 +1119,10 @@ Patch103: pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_ Patch105: jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch # AArch64: PR3519: Fix further functions with a missing return value (AArch64) Patch106: pr3519-fix_further_functions_with_a_missing_return_value.patch +# AArch64: JDK-8160748: [AArch64] Inconsistent types for ideal_reg +Patch107: jdk8160748-aarch64_ideal_reg.patch +# AArch64: JDK-8189170: [AArch64] Add option to disable stack overflow checking in primordial thread for use with JNI_CreateJavaJVM +Patch108: jdk8189170-aarch64_primordial_thread.patch ############################################# # @@ -1178,47 +1182,6 @@ Patch624: jdk8210425-rh1632174-02-compile_with_o2_and_ffp_contract_off_as_for_fd # Zero part of the fix for (arm/s390 arches) Patch625: jdk8210425-rh1632174-03-compile_with_o2_and_ffp_contract_off_as_for_fdlibm_zero.patch -############################################# -# -# Patches appearing in 8u192 -# -# This section includes patches which are present -# in the listed OpenJDK 8u release and should be -# able to be removed once that release is out -# and used by this RPM. -############################################# -# S8031668, PR2842: TOOLCHAIN_FIND_COMPILER unexpectedly resolves symbolic links -Patch506: jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch -# S8148351, PR2842: Only display resolved symlink for compiler, do not change path -Patch507: jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch -# S6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate -Patch526: jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch -# 8061305, PR3335, RH1423421: Javadoc crashes when method name ends with "Property" -Patch538: jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch -# 8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are present -Patch560: jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch -# 8205104, PR3539, RH1548475: Pass EXTRA_LDFLAGS to HotSpot build -Patch562: jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch -# 8185723, PR3553: Zero: segfaults on Power PC 32-bit -Patch565: jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch -# 8186461, PR3557: Zero's atomic_copy64() should use SPE instructions on linux-powerpcspe -Patch566: jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch -# 8201509, PR3579: Zero: S390 31bit atomic_copy64 inline assembler is wrong -Patch569: jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch -# 8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo -Patch578: jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch -# 8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails -Patch579: jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch -# 8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed objects on StubCodeDesc::_list -Patch580: jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.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: jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch -# 8036003: Add --with-native-debug-symbols=[none|internal|external|zipped] -Patch205: jdk8036003-add_with_native_debug_symbols_configure_flag.patch -# s390: JDK-8201495, PR2415: JVM -Xmx requirement is too high on s390 -Patch100: jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch - ############################################# # # Patches appearing in 8u202 @@ -1228,8 +1191,6 @@ Patch100: jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.pa # able to be removed once that release is out # and used by this RPM. ############################################# -# S8150954, RH1176206, PR2866: Taking screenshots on x11 composite desktop produces wrong result -Patch508: jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch # 8207057, PR3613: Enable debug information for assembly code files Patch206: jdk8207057-pr3613-no_debug_info_for_assembler_files_hotspot.patch Patch207: jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch @@ -1611,8 +1572,6 @@ sh %{SOURCE12} %patch203 # Debugging fixes -%patch204 -%patch205 %patch206 %patch207 %patch210 @@ -1625,12 +1584,13 @@ sh %{SOURCE12} %patch7 # s390 build fixes -%patch100 %patch102 %patch103 # AArch64 fixes %patch106 +%patch107 +%patch108 # x86 fixes %patch105 @@ -1643,9 +1603,6 @@ sh %{SOURCE12} # Upstreamable fixes %patch502 %patch504 -%patch506 -%patch507 -%patch508 %patch512 %patch513 %patch514 @@ -1656,20 +1613,13 @@ sh %{SOURCE12} %patch519 %patch400 %patch523 -%patch526 %patch528 %patch529 %patch530 -%patch538 -%patch560 %patch561 -%patch562 %patch563 %patch564 -%patch565 -%patch566 %patch567 -%patch569 %patch571 %patch572 %patch573 @@ -1677,9 +1627,6 @@ sh %{SOURCE12} %patch575 %patch576 %patch577 -%patch578 -%patch579 -%patch580 %patch620 %patch621 %patch622 @@ -2340,7 +2287,41 @@ require "copy_jdk_configs.lua" %endif %changelog -* Mon Jan 14 2019 Andrew Hughes - 1:1.8.0.191.b14-1 +* Wed Jan 30 2019 Andrew Hughes - 1:1.8.0.192.b12-0 +- Update to aarch64-shenandoah-jdk8u192-b12. +- Remove patches included upstream + - JDK-8031668/PR2842 + - JDK-8148351/PR2842 + - JDK-6260348/PR3066 + - JDK-8061305/PR3335/RH1423421 + - JDK-8188030/PR3459/RH1484079 + - JDK-8205104/PR3539/RH1548475 + - JDK-8185723/PR3553 + - JDK-8186461/PR3557 + - JDK-8201509/PR3579 + - JDK-8075942/PR3602 + - JDK-8203182/PR3603 + - JDK-8206406/PR3610/RH1597825 + - JDK-8206425 + - JDK-8036003 + - JDK-8201495/PR2415 + - JDK-8150954/PR2866/RH1176206 +- Re-generate patches (mostly due to upstream build changes) + - JDK-8073139/PR1758/RH1191652 + - JDK-8143245/PR3548 (due to JDK-8202600) + - JDK-8197429/PR3546/RH1536622 (due to JDK-8189170) + - JDK-8199936/PR3533 + - JDK-8199936/PR3591 + - JDK-8207057/PR3613 + - JDK-8210761/RH1632174 (due to JDK-8207402) + - PR3559 (due to JDK-8185723/JDK-8186461/JDK-8201509) + - PR3593 (due to JDK-8081202) + - RH1566890/CVE-2018-3639 (due to JDK-8189170) + - RH1649664 (due to JDK-8196516) +- Add 8160748 for AArch64 which is missing from upstream 8u version. +- Add port of 8189170 to AArch64 which is missing from upstream 8u version. + +* Mon Jan 28 2019 Andrew Hughes - 1:1.8.0.191.b14-1 - Add 8131048 & 8164920 (PR3574/RH1498936) to provide a CRC32 intrinsic for PPC64. * Thu Jan 24 2019 Andrew Hughes - 1:1.8.0.191.b14-0 diff --git a/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch b/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch deleted file mode 100644 index 06be502..0000000 --- a/jdk6260348-pr3066-gtk_laf_jtextcomponent_not_respecting_desktop_caret_blink_rate.patch +++ /dev/null @@ -1,150 +0,0 @@ -# HG changeset patch -# User ssadetsky -# Date 1467220169 -3600 -# Wed Jun 29 18:09:29 2016 +0100 -# Node ID 9fffaa63c49d93bff70b96af9a86b7635bce44be -# Parent d0462c26152fc8bd5f79db7f1670777e807ef2b3 -6260348, PR3066: GTK+ L&F JTextComponent not respecting desktop caret blink rate -Reviewed-by: alexsch, azvegint - -diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java ---- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Tue Jun 28 19:44:50 2016 +0100 -+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKEngine.java Wed Jun 29 18:09:29 2016 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2005, 2007, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2005, 2015, 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 -@@ -93,7 +93,9 @@ - */ - static enum Settings { - GTK_FONT_NAME, -- GTK_ICON_SIZES -+ GTK_ICON_SIZES, -+ GTK_CURSOR_BLINK, -+ GTK_CURSOR_BLINK_TIME - } - - /* Custom regions are needed for representing regions that don't exist -diff -r d0462c26152f -r 9fffaa63c49d src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java ---- openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Tue Jun 28 19:44:50 2016 +0100 -+++ openjdk/jdk/src/share/classes/com/sun/java/swing/plaf/gtk/GTKLookAndFeel.java Wed Jun 29 18:09:29 2016 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2002, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2002, 2015, 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 -@@ -371,7 +371,17 @@ - int vProgWidth = 22 - (progXThickness * 2); - int vProgHeight = 80 - (progYThickness * 2); - -- Integer caretBlinkRate = Integer.valueOf(500); -+ Integer caretBlinkRate; -+ if (Boolean.FALSE.equals(GTKEngine.INSTANCE.getSetting( -+ GTKEngine.Settings.GTK_CURSOR_BLINK))) { -+ caretBlinkRate = Integer.valueOf(0); -+ } else { -+ caretBlinkRate = (Integer) GTKEngine.INSTANCE.getSetting( -+ GTKEngine.Settings.GTK_CURSOR_BLINK_TIME); -+ if (caretBlinkRate == null) { -+ caretBlinkRate = Integer.valueOf(500); -+ } -+ } - Insets zeroInsets = new InsetsUIResource(0, 0, 0, 0); - - Double defaultCaretAspectRatio = new Double(0.025); -diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.c ---- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jun 28 19:44:50 2016 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.c Wed Jun 29 18:09:29 2016 +0100 -@@ -1316,9 +1316,6 @@ - { - result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE] = - (*fp_gtk_entry_new)(); -- -- GtkSettings* settings = fp_gtk_widget_get_settings(result); -- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); - } - result = gtk2_widgets[_GTK_COMBO_BOX_TEXT_FIELD_TYPE]; - break; -@@ -1363,10 +1360,6 @@ - { - gtk2_widgets[_GTK_ENTRY_TYPE] = - (*fp_gtk_entry_new)(); -- -- GtkSettings* settings = -- fp_gtk_widget_get_settings(gtk2_widgets[_GTK_ENTRY_TYPE]); -- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); - } - result = gtk2_widgets[_GTK_ENTRY_TYPE]; - break; -@@ -1558,9 +1551,6 @@ - { - result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE] = - (*fp_gtk_spin_button_new)(NULL, 0, 0); -- -- GtkSettings* settings = fp_gtk_widget_get_settings(result); -- fp_g_object_set(settings, "gtk-cursor-blink", FALSE, NULL); - } - result = gtk2_widgets[_GTK_SPIN_BUTTON_TYPE]; - break; -@@ -2510,14 +2500,20 @@ - - return result; - } --/* -+ - jobject get_integer_property(JNIEnv *env, GtkSettings* settings, const gchar* key) - { -- gint intval = NULL; -- -+ gint intval = NULL; - (*fp_g_object_get)(settings, key, &intval, NULL); - return create_Integer(env, intval); --}*/ -+} -+ -+jobject get_boolean_property(JNIEnv *env, GtkSettings* settings, const gchar* key) -+{ -+ gint intval = NULL; -+ (*fp_g_object_get)(settings, key, &intval, NULL); -+ return create_Boolean(env, intval); -+} - - jobject gtk2_get_setting(JNIEnv *env, Setting property) - { -@@ -2529,6 +2525,10 @@ - return get_string_property(env, settings, "gtk-font-name"); - case GTK_ICON_SIZES: - return get_string_property(env, settings, "gtk-icon-sizes"); -+ case GTK_CURSOR_BLINK: -+ return get_boolean_property(env, settings, "gtk-cursor-blink"); -+ case GTK_CURSOR_BLINK_TIME: -+ return get_integer_property(env, settings, "gtk-cursor-blink-time"); - } - - return NULL; -diff -r d0462c26152f -r 9fffaa63c49d src/solaris/native/sun/awt/gtk2_interface.h ---- openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Tue Jun 28 19:44:50 2016 +0100 -+++ openjdk/jdk/src/solaris/native/sun/awt/gtk2_interface.h Wed Jun 29 18:09:29 2016 +0100 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 2005, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 2005, 2015, 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 -@@ -140,7 +140,9 @@ - typedef enum _Setting - { - GTK_FONT_NAME, -- GTK_ICON_SIZES -+ GTK_ICON_SIZES, -+ GTK_CURSOR_BLINK, -+ GTK_CURSOR_BLINK_TIME - } Setting; - - /* GTK types, here to eliminate need for GTK headers at compile time */ diff --git a/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch b/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.patch deleted file mode 100644 index faaa309..0000000 --- a/jdk8031668-pr2842-01-toolchain_find_compiler_unexpectedly_resolves_symbolic_links.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/jdk8036003-add_with_native_debug_symbols_configure_flag.patch b/jdk8036003-add_with_native_debug_symbols_configure_flag.patch deleted file mode 100644 index b7b8a05..0000000 --- a/jdk8036003-add_with_native_debug_symbols_configure_flag.patch +++ /dev/null @@ -1,249 +0,0 @@ - -# 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/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch b/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch deleted file mode 100644 index 384c52a..0000000 --- a/jdk8061305-pr3335-rh1423421-javadoc_crashes_when_method_name_ends_with_property.patch +++ /dev/null @@ -1,33 +0,0 @@ -# HG changeset patch -# User ksrini -# Date 1414764176 25200 -# Fri Oct 31 07:02:56 2014 -0700 -# Node ID 9fd9a50e7994a9659c5ef21296d0baee4c2eecff -# Parent fd59a2d4313440077fce3fbf39174755a15d285a -8061305: Javadoc crashes when method name ends with "Property" -Reviewed-by: jjg - -diff --git jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java ---- jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java -+++ jdk8/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/VisibleMemberMap.java -@@ -656,6 +656,9 @@ - // properties aren't named setA* or getA* - private final Pattern pattern = Pattern.compile("[sg]et\\p{Upper}.*"); - private boolean isPropertyMethod(MethodDoc method) { -+ if (!configuration.javafx) { -+ return false; -+ } - if (!method.name().endsWith("Property")) { - return false; - } -@@ -667,7 +670,9 @@ - if (pattern.matcher(method.name()).matches()) { - return false; - } -- -+ if (method.typeParameters().length > 0) { -+ return false; -+ } - return 0 == method.parameters().length - && !"void".equals(method.returnType().simpleTypeName()); - } diff --git a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch index 6511281..67fc620 100644 --- a/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch +++ b/jdk8073139-pr1758-rh1191652-ppc64_le_says_its_arch_is_ppc64_not_ppc64le_root.patch @@ -8,6 +8,19 @@ Reviewed-by: erikj, goetz, dholmes Contributed-by: Andrew Hughes , Alexander Smundak +diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4 +--- openjdk.orig///common/autoconf/flags.m4 ++++ openjdk///common/autoconf/flags.m4 +@@ -549,6 +549,9 @@ + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" + fi + fi ++ if test "x$OPENJDK_TARGET_CPU" = xppc64le; then ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DABI_ELFv2" ++ fi + + # Setup target OS define. Use OS target name but in upper case. + OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'` diff --git openjdk.orig///common/autoconf/jdk-options.m4 openjdk///common/autoconf/jdk-options.m4 --- openjdk.orig///common/autoconf/jdk-options.m4 +++ openjdk///common/autoconf/jdk-options.m4 @@ -32,16 +45,3 @@ diff --git openjdk.orig///common/autoconf/platform.m4 openjdk///common/autoconf/ VAR_CPU_ARCH=ppc VAR_CPU_BITS=64 VAR_CPU_ENDIAN=little -diff --git openjdk.orig///common/autoconf/toolchain.m4 openjdk///common/autoconf/toolchain.m4 ---- openjdk.orig///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/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch b/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch deleted file mode 100644 index bd2a40e..0000000 --- a/jdk8075942-pr3602-rh1582032-arrayindexoutOfboundsException_in_sun_java2d_pisces_Dasher_goto.patch +++ /dev/null @@ -1,95 +0,0 @@ -# HG changeset patch -# User prr -# Date 1429299166 25200 -# Fri Apr 17 12:32:46 2015 -0700 -# Node ID 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6 -# Parent 533117ae5b7587c8d9c0612581682ab984475430 -8075942, PR3602: ArrayIndexOutOfBoundsException in sun.java2d.pisces.Dasher.goTo -Reviewed-by: flar, lbourges - -diff --git openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java ---- openjdk.orig/jdk/src/share/classes/sun/java2d/pisces/Dasher.java -+++ openjdk/jdk/src/share/classes/sun/java2d/pisces/Dasher.java -@@ -146,7 +146,7 @@ - if (dashOn) { - if (starting) { - firstSegmentsBuffer = Helpers.widenArray(firstSegmentsBuffer, -- firstSegidx, type - 2); -+ firstSegidx, type - 2 + 1); - firstSegmentsBuffer[firstSegidx++] = type; - System.arraycopy(pts, off, firstSegmentsBuffer, firstSegidx, type - 2); - firstSegidx += type - 2; -diff --git a/test/javopenjdk.orig/jdk/awt/BasicStroke/DashStrokeTest.java openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java -new file mode 100644 ---- /dev/null -+++ openjdk/jdk/test/java/awt/BasicStroke/DashStrokeTest.java -@@ -0,0 +1,69 @@ -+/* -+ * Copyright (c) 2015, 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. -+ * -+ * @test -+ * @bug 8075942 -+ * @summary test there is no exception rendering a dashed stroke -+ * @run DashStrokeTest -+ * @run -Dsun.java2d.renderer=sun.java2d.pisces.PiscesRenderingEngine -+ */ -+ -+import java.awt.BasicStroke; -+import java.awt.Color; -+import java.awt.Graphics2D; -+import java.awt.Stroke; -+import java.awt.geom.GeneralPath; -+import java.awt.image.BufferedImage; -+ -+ -+public class DashStrokeTest { -+ -+ public static void main(String[] args) { -+ -+ GeneralPath shape = new GeneralPath(); -+ int[] pointTypes = {0, 0, 1, 1, 0, 1, 1, 0}; -+ double[] xpoints = {428, 420, 400, 400, 400, 400, 420, 733}; -+ double[] ypoints = {180, 180, 180, 160, 30, 10, 10, 10}; -+ shape.moveTo(xpoints[0], ypoints[0]); -+ for (int i = 1; i < pointTypes.length; i++) { -+ if (pointTypes[i] == 1 && i < pointTypes.length - 1) { -+ shape.quadTo(xpoints[i], ypoints[i], -+ xpoints[i + 1], ypoints[i + 1]); -+ } else { -+ shape.lineTo(xpoints[i], ypoints[i]); -+ } -+ } -+ -+ BufferedImage image = new -+ BufferedImage(1000, 1000, BufferedImage.TYPE_INT_ARGB); -+ Graphics2D g2 = image.createGraphics(); -+ -+ Color color = new Color(124, 0, 124, 255); -+ g2.setColor(color); -+ Stroke stroke = new BasicStroke(1.0f, -+ BasicStroke.CAP_BUTT, -+ BasicStroke.JOIN_BEVEL, -+ 10.0f, new float[] {9, 6}, 0.0f); -+ g2.setStroke(stroke); -+ g2.draw(shape); -+ } -+} diff --git a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch index eccb110..b0a88ea 100644 --- a/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch +++ b/jdk8143245-pr3548-zero_build_requires_disabled_warnings.patch @@ -60,12 +60,12 @@ diff --git openjdk.orig/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp openjdk/h switch (type) { case T_VOID: ftype = &ffi_type_void; -diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +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.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp +++ openjdk/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp @@ -1,6 +1,6 @@ /* - * Copyright (c) 2003, 2013, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2018, Oracle and/or its affiliates. All rights reserved. - * Copyright 2007, 2008, 2009, 2010 Red Hat, Inc. + * Copyright 2016 Red Hat, Inc. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. @@ -126,14 +126,6 @@ diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp openj } void os::Linux::set_fpu_control_word(int fpu) { -@@ -408,6 +418,7 @@ - - extern "C" { - int SpinPause() { -+ return -1; // silence compile warnings - } - - diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp +++ openjdk/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp diff --git a/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch b/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.patch deleted file mode 100644 index 1812e19..0000000 --- a/jdk8148351-pr2842-02-only_display_resolved_symlink_for_compiler_do_not_change_path.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/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch b/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch deleted file mode 100644 index 8b62ae6..0000000 --- a/jdk8150954-pr2866-rh1176206-screenshot_xcomposite_jdk.patch +++ /dev/null @@ -1,160 +0,0 @@ - -# 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 -+ - #include "awt_p.h" - #include "awt_GraphicsEnv.h" - #define XK_MISCELLANY -@@ -49,11 +52,46 @@ - #include - #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/jdk8160748-aarch64_ideal_reg.patch b/jdk8160748-aarch64_ideal_reg.patch new file mode 100644 index 0000000..b3e6ea6 --- /dev/null +++ b/jdk8160748-aarch64_ideal_reg.patch @@ -0,0 +1,39 @@ +# HG changeset patch +# User kbarrett +# Date 1547614745 0 +# Wed Jan 16 04:59:05 2019 +0000 +# Node ID bca8195a3bc70df281a73d9a40032c673971676c +# Parent 09abae195e9a7e134a1cfd9b375a6f4d95091de7 +8160748: [AArch64] Inconsistent types for ideal_reg +Summary: Made ideal_reg consistently uint. +Reviewed-by: kvn, iveresov + +diff --git openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad +--- openjdk.orig/hotspot/src/cpu/aarch64/vm/aarch64.ad ++++ openjdk/hotspot/src/cpu/aarch64/vm/aarch64.ad +@@ -1,6 +1,6 @@ + // ++// Copyright (c) 2003, 2017, Oracle and/or its affiliates. All rights reserved. + // Copyright (c) 2013, Red Hat Inc. +-// Copyright (c) 2003, 2012, Oracle and/or its affiliates. + // All rights reserved. + // DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + // +@@ -3449,7 +3449,7 @@ + } + + // Vector ideal reg. +-const int Matcher::vector_ideal_reg(int len) { ++const uint Matcher::vector_ideal_reg(int len) { + switch(len) { + case 8: return Op_VecD; + case 16: return Op_VecX; +@@ -3458,7 +3458,7 @@ + return 0; + } + +-const int Matcher::vector_shift_count_ideal_reg(int size) { ++const uint Matcher::vector_shift_count_ideal_reg(int size) { + return Op_VecX; + } + diff --git a/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch b/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch deleted file mode 100644 index f8ee50a..0000000 --- a/jdk8185723-pr3553-zero_segfaults_on_power_pc_32_bit.patch +++ /dev/null @@ -1,27 +0,0 @@ -# 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" diff --git a/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch b/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch deleted file mode 100644 index cc8020c..0000000 --- a/jdk8186461-pr3557-zeros_atomic_copy64_should_use_spe_instructions_on_linux_powerpcspe.patch +++ /dev/null @@ -1,32 +0,0 @@ -# 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" diff --git a/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch b/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch deleted file mode 100644 index 8564c81..0000000 --- a/jdk8188030-pr3459-rh1484079-awt_java_apps_fail_to_start_when_some_minimal_fonts_are_present.patch +++ /dev/null @@ -1,21 +0,0 @@ -# HG changeset patch -# User neugens -# Date 1507735508 -3600 -# Wed Oct 11 16:25:08 2017 +0100 -# Node ID 5b91bf11d0f41a6124ffb0fcd8870507b50bd734 -# Parent 7b1a2f967cd8e950fe7dc47d716af13d36239a38 -8188030, PR3459, RH1484079: AWT java apps fail to start when some minimal fonts are present -Summary: Handle CFF fonts -Reviewed-by: andrew, prr - -diff --git a/src/solaris/native/sun/awt/fontpath.c b/src/solaris/native/sun/awt/fontpath.c ---- openjdk/jdk/src/solaris/native/sun/awt/fontpath.c -+++ openjdk/jdk/src/solaris/native/sun/awt/fontpath.c -@@ -1233,6 +1233,7 @@ - && (strcmp((char*)fontformat, "TrueType") != 0) - #if defined(__linux__) || defined(_AIX) - && (strcmp((char*)fontformat, "Type 1") != 0) -+ && (strcmp((char*)fontformat, "CFF") != 0) - #endif - ) { - continue; diff --git a/jdk8189170-aarch64_primordial_thread.patch b/jdk8189170-aarch64_primordial_thread.patch new file mode 100644 index 0000000..876cfdf --- /dev/null +++ b/jdk8189170-aarch64_primordial_thread.patch @@ -0,0 +1,30 @@ +# HG changeset patch +# User dbuck +# Date 1547622839 0 +# Wed Jan 16 07:13:59 2019 +0000 +# Node ID 34c6b4b813caf9b3a6fd1859596a87a24a49c423 +# Parent bca8195a3bc70df281a73d9a40032c673971676c +8189170: [AArch64] Add option to disable stack overflow checking in primordial thread for use with JNI_CreateJavaJVM +Reviewed-by: dcubed + +diff --git openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +--- openjdk.orig/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp ++++ openjdk/hotspot/src/os_cpu/linux_aarch64/vm/os_linux_aarch64.cpp +@@ -1,5 +1,5 @@ + /* +- * Copyright (c) 1999, 2011, Oracle and/or its affiliates. All rights reserved. ++ * Copyright (c) 1999, 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 +@@ -550,8 +550,8 @@ + // pthread_attr_getstack() + + static void current_stack_region(address * bottom, size_t * size) { +- if (os::Linux::is_initial_thread()) { +- // initial thread needs special handling because pthread_getattr_np() ++ if (os::is_primordial_thread()) { ++ // primordial thread needs special handling because pthread_getattr_np() + // may return bogus value. + *bottom = os::Linux::initial_thread_stack_bottom(); + *size = os::Linux::initial_thread_stack_size(); diff --git a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch index fc60cd3..6d7f743 100644 --- a/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch +++ b/jdk8197429-pr3546-rh1536622-increased_stack_guard_causes_segfaults_on_x86_32.patch @@ -1,14 +1,16 @@ -diff -r eecfc14e66ee src/os/linux/vm/os_linux.cpp ---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp Mon Jan 22 16:25:24 2018 +0000 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Feb 21 13:52:31 2018 +0000 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2016, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 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 -@@ -674,6 +674,10 @@ +# HG changeset patch +# User aph +# Date 1530894306 -3600 +# Fri Jul 06 17:25:06 2018 +0100 +# Node ID 1485461a0fd1ff977a6acb8f2ed1069aaaf3b07e +# Parent d7bcbcfde5057ad066ad2fb55a87d19a5827ddee +8197429: Increased stack guard causes segfaults on x86-32 +Reviewed-by: dholmes + +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 +@@ -724,6 +724,10 @@ } } @@ -19,17 +21,10 @@ diff -r eecfc14e66ee src/os/linux/vm/os_linux.cpp bool os::Linux::manually_expand_stack(JavaThread * t, address addr) { assert(t!=NULL, "just checking"); assert(t->osthread()->expanding_stack(), "expand should be set"); -diff -r eecfc14e66ee src/os/linux/vm/os_linux.hpp ---- openjdk/hotspot/src/os/linux/vm/os_linux.hpp Mon Jan 22 16:25:24 2018 +0000 -+++ openjdk/hotspot/src/os/linux/vm/os_linux.hpp Wed Feb 21 13:52:31 2018 +0000 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2013, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 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 -@@ -245,6 +245,8 @@ +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 +@@ -249,6 +249,8 @@ static int safe_cond_timedwait(pthread_cond_t *_cond, pthread_mutex_t *_mutex, const struct timespec *_abstime); private: @@ -38,17 +33,10 @@ diff -r eecfc14e66ee src/os/linux/vm/os_linux.hpp typedef int (*sched_getcpu_func_t)(void); typedef int (*numa_node_to_cpus_func_t)(int node, unsigned long *buffer, int bufferlen); typedef int (*numa_max_node_func_t)(void); -diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp ---- openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Mon Jan 22 16:25:24 2018 +0000 -+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp Wed Feb 21 13:52:31 2018 +0000 -@@ -1,5 +1,5 @@ - /* -- * Copyright (c) 1999, 2014, Oracle and/or its affiliates. All rights reserved. -+ * Copyright (c) 1999, 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 -@@ -892,6 +892,25 @@ +diff --git openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +@@ -892,6 +892,27 @@ void os::workaround_expand_exec_shield_cs_limit() { #if defined(IA32) size_t page_size = os::vm_page_size(); @@ -65,16 +53,18 @@ diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp + * in Java code. + * + */ -+ if (os::Linux::is_initial_thread()) { ++ if (os::is_primordial_thread()) { + address limit = Linux::initial_thread_stack_bottom(); -+ limit += (StackYellowPages + StackRedPages) * page_size; ++ if (! DisablePrimordialThreadGuardPages) { ++ limit += (StackYellowPages + StackRedPages) * page_size; ++ } + os::Linux::expand_stack_to(limit); + } + /* * Take the highest VA the OS will give us and exec * -@@ -910,6 +929,16 @@ +@@ -910,6 +931,16 @@ char* hint = (char*) (Linux::initial_thread_stack_bottom() - ((StackYellowPages + StackRedPages + 1) * page_size)); char* codebuf = os::attempt_reserve_memory_at(page_size, hint); @@ -91,3 +81,206 @@ diff -r eecfc14e66ee src/os_cpu/linux_x86/vm/os_linux_x86.cpp if ( (codebuf == NULL) || (!os::commit_memory(codebuf, page_size, true)) ) { return; // No matter, we tried, best effort. } +diff --git openjdk.orig/hotspot/test/runtime/StackGap/T.java openjdk/hotspot/test/runtime/StackGap/T.java +new file mode 100644 +--- /dev/null ++++ openjdk/hotspot/test/runtime/StackGap/T.java +@@ -0,0 +1,33 @@ ++/* ++ * Copyright (c) 2018, Red Hat, Inc. 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. ++ */ ++ ++public class T { ++ ++ public static void test(int n) { ++ if (n == 0) return; ++ System.out.println (n); ++ test (n - 1); ++ ++ } ++ ++} +diff --git openjdk.orig/hotspot/test/runtime/StackGap/exestack-gap.c openjdk/hotspot/test/runtime/StackGap/exestack-gap.c +new file mode 100644 +--- /dev/null ++++ openjdk/hotspot/test/runtime/StackGap/exestack-gap.c +@@ -0,0 +1,82 @@ ++/* ++ * Copyright (c) 2018, Red Hat, Inc. 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 ++#include ++#include ++ ++JNIEnv* create_vm(JavaVM **jvm, char *extra_option) ++{ ++ JNIEnv* env; ++ JavaVMInitArgs args; ++ JavaVMOption options[4]; ++ args.version = JNI_VERSION_1_8; ++ args.nOptions = 3 + (extra_option != NULL); ++ options[0].optionString = "-Xss2048k"; ++ char classpath[4096]; ++ snprintf(classpath, sizeof classpath, ++ "-Djava.class.path=%s", getenv("CLASSPATH")); ++ options[1].optionString = classpath; ++ options[2].optionString = "-XX:+UnlockExperimentalVMOptions"; ++ if (extra_option) { ++ options[3].optionString = extra_option; ++ } ++ args.options = &options[0]; ++ args.ignoreUnrecognized = 0; ++ int rv; ++ rv = JNI_CreateJavaVM(jvm, (void**)&env, &args); ++ if (rv < 0) return NULL; ++ return env; ++} ++ ++void run(char *extra_arg) { ++ JavaVM *jvm; ++ jclass T_class; ++ jmethodID test_method; ++ JNIEnv *env = create_vm(&jvm, extra_arg); ++ if (env == NULL) ++ exit(1); ++ T_class = (*env)->FindClass(env, "T"); ++ if ((*env)->ExceptionCheck(env) == JNI_TRUE) { ++ (*env)->ExceptionDescribe(env); ++ exit(1); ++ } ++ test_method = (*env)->GetStaticMethodID(env, T_class, "test", "(I)V"); ++ if ((*env)->ExceptionCheck(env) == JNI_TRUE) { ++ (*env)->ExceptionDescribe(env); ++ exit(1); ++ } ++ (*env)->CallStaticVoidMethod(env, T_class, test_method, 1000); ++} ++ ++ ++int main(int argc, char **argv) ++{ ++ if (argc > 1) { ++ run(argv[1]); ++ } else { ++ run(NULL); ++ } ++ ++ return 0; ++} +diff --git openjdk.orig/hotspot/test/runtime/StackGap/testme.sh openjdk/hotspot/test/runtime/StackGap/testme.sh +new file mode 100644 +--- /dev/null ++++ openjdk/hotspot/test/runtime/StackGap/testme.sh +@@ -0,0 +1,73 @@ ++# Copyright (c) 2014, 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. ++#!/bin/sh ++ ++# ++# @test testme.sh ++# @bug 8197429 ++# @summary Linux kernel stack guard should not cause segfaults on x86-32 ++# @compile T.java ++# @run shell testme.sh ++# ++ ++if [ "${TESTSRC}" = "" ] ++then ++ TESTSRC=${PWD} ++ echo "TESTSRC not set. Using "${TESTSRC}" as default" ++fi ++echo "TESTSRC=${TESTSRC}" ++## Adding common setup Variables for running shell tests. ++. ${TESTSRC}/../../test_env.sh ++ ++if [ "${VM_OS}" != "linux" ] ++then ++ echo "Test only valid for Linux" ++ exit 0 ++fi ++ ++gcc_cmd=`which gcc` ++if [ "x$gcc_cmd" = "x" ]; then ++ echo "WARNING: gcc not found. Cannot execute test." 2>&1 ++ exit 0; ++fi ++ ++CFLAGS="-m${VM_BITS}" ++ ++LD_LIBRARY_PATH=.:${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE}:/usr/lib:$LD_LIBRARY_PATH ++export LD_LIBRARY_PATH ++ ++cp ${TESTSRC}${FS}exestack-gap.c . ++ ++# Copy the result of our @compile action: ++cp ${TESTCLASSES}${FS}T.class . ++ ++echo "Compilation flag: ${COMP_FLAG}" ++# Note pthread may not be found thus invoke creation will fail to be created. ++# Check to ensure you have a /usr/lib/libpthread.so if you don't please look ++# for /usr/lib/`uname -m`-linux-gnu version ensure to add that path to below compilation. ++ ++$gcc_cmd -DLINUX ${CFLAGS} -o stack-gap \ ++ -I${COMPILEJAVA}/include -I${COMPILEJAVA}/include/linux \ ++ -L${COMPILEJAVA}/jre/lib/${VM_CPU}/${VM_TYPE} \ ++ -ljvm -lpthread exestack-gap.c ++ ++./stack-gap || exit $? ++./stack-gap -XX:+DisablePrimordialThreadGuardPages || exit $? diff --git a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch index 900e0c3..533ea2d 100644 --- a/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch +++ b/jdk8199936-pr3533-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x.patch @@ -7,10 +7,35 @@ 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/flags.m4 openjdk///common/autoconf/flags.m4 +--- openjdk.orig///common/autoconf/flags.m4 ++++ openjdk///common/autoconf/flags.m4 +@@ -389,6 +389,21 @@ + AC_SUBST($2CXXSTD_CXXFLAG) + fi + ++ # ++ # NOTE: check for -mstackrealign needs to be below potential addition of -m32 ++ # ++ 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 ++ # This is also required on Linux systems which use libraries compiled with SSE instructions ++ REALIGN_CFLAG="-mstackrealign" ++ FLAGS_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 ++ + if test "x$CFLAGS" != "x${ADDED_CFLAGS}"; then + AC_MSG_WARN([Ignoring CFLAGS($CFLAGS) found in environment. Use --with-extra-cflags]) + fi 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 @@ +@@ -112,7 +112,8 @@ RC:=@HOTSPOT_RC@ EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \ @@ -23,7 +48,7 @@ diff --git openjdk.orig///common/autoconf/hotspot-spec.gmk.in openjdk///common/a 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 @@ +@@ -334,6 +334,7 @@ NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@ NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@ @@ -31,35 +56,3 @@ diff --git openjdk.orig///common/autoconf/spec.gmk.in openjdk///common/autoconf/ 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" diff --git a/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch index e287590..7ac077b 100644 --- a/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch +++ b/jdk8199936-pr3591-enable_mstackrealign_on_x86_linux_as_well_as_x86_mac_os_x_jdk.patch @@ -6,11 +6,11 @@ # 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], [], +diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4 +--- openjdk.orig///common/autoconf/flags.m4 ++++ openjdk///common/autoconf/flags.m4 +@@ -401,6 +401,8 @@ + FLAGS_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}" diff --git a/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch b/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch deleted file mode 100644 index d42d05b..0000000 --- a/jdk8201495-zero_reduce_limits_of_max_heap_size_for_boot_JDK_on_s390.patch +++ /dev/null @@ -1,21 +0,0 @@ - -# 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/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch b/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch deleted file mode 100644 index 132c225..0000000 --- a/jdk8201509-pr3579-zero_S390_31bit_atomic_copy64_inline_assembler_is_wrong.patch +++ /dev/null @@ -1,36 +0,0 @@ -# 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" diff --git a/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch b/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch deleted file mode 100644 index 031a60c..0000000 --- a/jdk8203182-pr3603-rh1568033_release_session_if_initialization_of_sunpkcs11_signature_fails.patch +++ /dev/null @@ -1,131 +0,0 @@ -# HG changeset patch -# User igerasim -# Date 1528992969 25200 -# Thu Jun 14 09:16:09 2018 -0700 -# Node ID d9b0b4bd2526818afa73b60da77403245554caa8 -# Parent 1f4b038b9550afaf88a70cee4cf9c1422ecd86d6 -8203182, PR3603: Release session if initialization of SunPKCS11 Signature fails -Summary: Ensure session is properly released in P11Signature class -Reviewed-by: valeriep -Contributed-by: Martin Balao - -diff --git openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java ---- openjdk.orig/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java -+++ openjdk/jdk/src/share/classes/sun/security/pkcs11/P11Signature.java -@@ -309,47 +309,51 @@ - session = token.killSession(session); - return; - } -- // "cancel" operation by finishing it -- // XXX make sure all this always works correctly -- if (mode == M_SIGN) { -- try { -- if (type == T_UPDATE) { -- token.p11.C_SignFinal(session.id(), 0); -- } else { -- byte[] digest; -- if (type == T_DIGEST) { -- digest = md.digest(); -- } else { // T_RAW -- digest = buffer; -+ try { -+ // "cancel" operation by finishing it -+ // XXX make sure all this always works correctly -+ if (mode == M_SIGN) { -+ try { -+ if (type == T_UPDATE) { -+ token.p11.C_SignFinal(session.id(), 0); -+ } else { -+ byte[] digest; -+ if (type == T_DIGEST) { -+ digest = md.digest(); -+ } else { // T_RAW -+ digest = buffer; -+ } -+ token.p11.C_Sign(session.id(), digest); - } -- token.p11.C_Sign(session.id(), digest); -+ } catch (PKCS11Exception e) { -+ throw new ProviderException("cancel failed", e); - } -- } catch (PKCS11Exception e) { -- throw new ProviderException("cancel failed", e); -+ } else { // M_VERIFY -+ try { -+ byte[] signature; -+ if (keyAlgorithm.equals("DSA")) { -+ signature = new byte[40]; -+ } else { -+ signature = new byte[(p11Key.length() + 7) >> 3]; -+ } -+ if (type == T_UPDATE) { -+ token.p11.C_VerifyFinal(session.id(), signature); -+ } else { -+ byte[] digest; -+ if (type == T_DIGEST) { -+ digest = md.digest(); -+ } else { // T_RAW -+ digest = buffer; -+ } -+ token.p11.C_Verify(session.id(), digest, signature); -+ } -+ } catch (PKCS11Exception e) { -+ // will fail since the signature is incorrect -+ // XXX check error code -+ } - } -- } else { // M_VERIFY -- try { -- byte[] signature; -- if (keyAlgorithm.equals("DSA")) { -- signature = new byte[40]; -- } else { -- signature = new byte[(p11Key.length() + 7) >> 3]; -- } -- if (type == T_UPDATE) { -- token.p11.C_VerifyFinal(session.id(), signature); -- } else { -- byte[] digest; -- if (type == T_DIGEST) { -- digest = md.digest(); -- } else { // T_RAW -- digest = buffer; -- } -- token.p11.C_Verify(session.id(), digest, signature); -- } -- } catch (PKCS11Exception e) { -- // will fail since the signature is incorrect -- // XXX check error code -- } -+ } finally { -+ session = token.releaseSession(session); - } - } - -@@ -368,6 +372,8 @@ - } - initialized = true; - } catch (PKCS11Exception e) { -+ // release session when initialization failed -+ session = token.releaseSession(session); - throw new ProviderException("Initialization failed", e); - } - if (bytesProcessed != 0) { -@@ -529,6 +535,8 @@ - } - bytesProcessed += len; - } catch (PKCS11Exception e) { -+ initialized = false; -+ session = token.releaseSession(session); - throw new ProviderException(e); - } - break; -@@ -576,6 +584,8 @@ - bytesProcessed += len; - byteBuffer.position(ofs + len); - } catch (PKCS11Exception e) { -+ initialized = false; -+ session = token.releaseSession(session); - throw new ProviderException("Update failed", e); - } - break; diff --git a/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch b/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.patch deleted file mode 100644 index 9b40a7f..0000000 --- a/jdk8205104-pr3539-rh1548475-pass_extra_ldflags_to_hotspot_build.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/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch b/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch deleted file mode 100644 index 0f38126..0000000 --- a/jdk8206406-pr3610-rh1597825-tubcodedesc_constructor_publishes_partially_constructed_objects_on_stubCodeDesc_list.patch +++ /dev/null @@ -1,65 +0,0 @@ -# HG changeset patch -# User aph -# Date 1531146945 -3600 -# Mon Jul 09 15:35:45 2018 +0100 -# Node ID 95b72537801cc9946c27ad27f07e3f0790a21b08 -# Parent f6341f4635dacb56678264d29a88cd052b74036b -8206406, PR3610, RH1597825: StubCodeDesc constructor publishes partially-constructed objects on StubCodeDesc::_list -Reviewed-by: dholmes - -diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp ---- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp -+++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.cpp -@@ -34,12 +34,12 @@ - - // Implementation of StubCodeDesc - --StubCodeDesc* StubCodeDesc::_list = NULL; --int StubCodeDesc::_count = 0; -+StubCodeDesc* volatile StubCodeDesc::_list = NULL; -+int StubCodeDesc::_count = 0; - - - StubCodeDesc* StubCodeDesc::desc_for(address pc) { -- StubCodeDesc* p = _list; -+ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list); - while (p != NULL && !p->contains(pc)) p = p->_next; - // p == NULL || p->contains(pc) - return p; -@@ -47,7 +47,7 @@ - - - StubCodeDesc* StubCodeDesc::desc_for_index(int index) { -- StubCodeDesc* p = _list; -+ StubCodeDesc* p = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list); - while (p != NULL && p->index() != index) p = p->_next; - return p; - } -diff --git openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp ---- openjdk.orig/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp -+++ openjdk/hotspot/src/share/vm/runtime/stubCodeGenerator.hpp -@@ -38,7 +38,7 @@ - - class StubCodeDesc: public CHeapObj { - protected: -- static StubCodeDesc* _list; // the list of all descriptors -+ static StubCodeDesc* volatile _list; // the list of all descriptors - static int _count; // length of list - - StubCodeDesc* _next; // the next element in the linked list -@@ -69,13 +69,13 @@ - - StubCodeDesc(const char* group, const char* name, address begin) { - assert(name != NULL, "no name specified"); -- _next = _list; -+ _next = (StubCodeDesc*)OrderAccess::load_ptr_acquire(&_list); - _group = group; - _name = name; - _index = ++_count; // (never zero) - _begin = begin; - _end = NULL; -- _list = this; -+ OrderAccess::release_store_ptr(&_list, this); - }; - - const char* group() const { return _group; } diff --git a/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch b/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch deleted file mode 100644 index adbf1f0..0000000 --- a/jdk8206425-gnu_debuglink_sections_added_unconditionally_when_no_debuginfo_is_stripped.patch +++ /dev/null @@ -1,73 +0,0 @@ -# HG changeset patch -# User sgehwolf -# Date 1530808022 -7200 -# Thu Jul 05 18:27:02 2018 +0200 -# Node ID 5ba59d58d976db456c4455640111e8107b8d80e8 -# Parent ad057f2e3211cd18bc56550d8a2c400d92ec35b1 -8206425: .gnu_debuglink sections added unconditionally when no debuginfo is stripped -Summary: Only add .gnu_debuglink sections when there is some stripping done. -Reviewed-by: erikj, dholmes - -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 -@@ -57,14 +57,15 @@ - $(LFLAGS_JSIG) $(JSIG_DEBUG_CFLAGS) $(EXTRA_CFLAGS) -o $@ $< -ldl - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) -+ ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ -- ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(STRIP) $@ - else - ifeq ($(STRIP_POLICY),min_strip) -+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJSIG_DEBUGINFO) $@ - $(QUIETLY) $(STRIP) -g $@ -+ endif - # implied else here is no stripping at all -- endif - endif - ifeq ($(ZIP_DEBUGINFO_FILES),1) - $(ZIPEXE) -q -y $(LIBJSIG_DIZ) $(LIBJSIG_DEBUGINFO) -diff --git 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 -@@ -100,14 +100,15 @@ - -lthread_db - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBSAPROC_DEBUGINFO) -+ ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ -- ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(STRIP) $@ - else - ifeq ($(STRIP_POLICY),min_strip) -+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBSAPROC_DEBUGINFO) $@ - $(QUIETLY) $(STRIP) -g $@ -+ endif - # implied else here is no stripping at all -- endif - endif - ifeq ($(ZIP_DEBUGINFO_FILES),1) - $(ZIPEXE) -q -y $(LIBSAPROC_DIZ) $(LIBSAPROC_DEBUGINFO) -diff --git 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 -@@ -358,14 +358,15 @@ - - ifeq ($(ENABLE_FULL_DEBUG_SYMBOLS),1) - $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJVM_DEBUGINFO) -+ ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ -- ifeq ($(STRIP_POLICY),all_strip) - $(QUIETLY) $(STRIP) $@ - else - ifeq ($(STRIP_POLICY),min_strip) -+ $(QUIETLY) $(OBJCOPY) --add-gnu-debuglink=$(LIBJVM_DEBUGINFO) $@ - $(QUIETLY) $(STRIP) -g $@ -+ endif - # implied else here is no stripping at all -- endif - endif - ifeq ($(ZIP_DEBUGINFO_FILES),1) - $(ZIPEXE) -q -y $(LIBJVM_DIZ) $(LIBJVM_DEBUGINFO) diff --git a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch index 7f57c0a..e4a007c 100644 --- a/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch +++ b/jdk8207057-pr3613-no_debug_info_for_assembler_files_root.patch @@ -1,34 +1,29 @@ ---- 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) +diff --git openjdk.orig///common/autoconf/flags.m4 openjdk///common/autoconf/flags.m4 +--- openjdk.orig///common/autoconf/flags.m4 ++++ openjdk///common/autoconf/flags.m4 +@@ -282,9 +282,11 @@ + if test "x$OPENJDK_TARGET_CPU_BITS" = "x64" && test "x$DEBUG_LEVEL" = "xfastdebug"; then + CFLAGS_DEBUG_SYMBOLS="-g1" + CXXFLAGS_DEBUG_SYMBOLS="-g1" ++ ASFLAGS_DEBUG_SYMBOLS="-g1" + else + CFLAGS_DEBUG_SYMBOLS="-g" + CXXFLAGS_DEBUG_SYMBOLS="-g" ++ ASFLAGS_DEBUG_SYMBOLS="-g" + fi + elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then + CFLAGS_DEBUG_SYMBOLS="-g -xs" +@@ -295,6 +297,7 @@ + fi + AC_SUBST(CFLAGS_DEBUG_SYMBOLS) + AC_SUBST(CXXFLAGS_DEBUG_SYMBOLS) + 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 + # Optimization levels + if test "x$TOOLCHAIN_TYPE" = xsolstudio; then +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 @@ -414,6 +414,7 @@ # Options for generating debug symbols ENABLE_DEBUG_SYMBOLS:=@ENABLE_DEBUG_SYMBOLS@ @@ -37,3 +32,21 @@ CXXFLAGS_DEBUG_SYMBOLS:=@CXXFLAGS_DEBUG_SYMBOLS@ ZIP_DEBUGINFO_FILES:=@ZIP_DEBUGINFO_FILES@ STRIP_POLICY:=@STRIP_POLICY@ +diff --git openjdk.orig///make/common/NativeCompilation.gmk openjdk///make/common/NativeCompilation.gmk +--- openjdk.orig///make/common/NativeCompilation.gmk ++++ openjdk///make/common/NativeCompilation.gmk +@@ -351,12 +351,14 @@ + # Always add debug symbols + $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS) + $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS) ++ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS) + else + # Programs don't get the debug symbols added in the old build. It's not clear if + # this is intentional. + ifeq ($$($1_PROGRAM),) + $1_EXTRA_CFLAGS+=$(CFLAGS_DEBUG_SYMBOLS) + $1_EXTRA_CXXFLAGS+=$(CXXFLAGS_DEBUG_SYMBOLS) ++ $1_EXTRA_ASFLAGS+=$(ASFLAGS_DEBUG_SYMBOLS) + endif + endif + endif diff --git a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch index 5f30e59..be2650b 100644 --- a/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch +++ b/jdk8210761-rh1632174-libjsig_is_being_compiled_without_optimization.patch @@ -1,7 +1,16 @@ +# HG changeset patch +# User sgehwolf +# Date 1537541916 -7200 +# Fri Sep 21 16:58:36 2018 +0200 +# Node ID 4010c90156d1bfeaf988dbfeb01520f2e3a66ea8 +# Parent 54afe70c50b6a6685763d00883e5173c0ba3a19d +8210761: libjsig is being compiled without optimization +Reviewed-by: erikj, ihse + 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) +@@ -51,10 +51,15 @@ JSIG_DEBUG_CFLAGS = -g endif @@ -11,10 +20,10 @@ diff --git openjdk.orig/hotspot/make/linux/makefiles/jsig.make openjdk/hotspot/m +endif + $(LIBJSIG): $(JSIGSRCDIR)/jsig.c $(LIBJSIG_MAPFILE) - @echo Making signal interposition lib... - $(QUIETLY) $(CC) $(SYMFLAG) $(ARCHFLAG) $(SHARED_FLAG) $(PICFLAG) \ + @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) + ifneq ($(STRIP_POLICY),no_strip) + $(QUIETLY) $(OBJCOPY) --only-keep-debug $@ $(LIBJSIG_DEBUGINFO) diff --git a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch index 48211dc..1c322fa 100644 --- a/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch +++ b/pr3559-use_ldrexd_for_atomic_reads_on_armv7_zero.patch @@ -15,9 +15,9 @@ diff --git openjdk.orig/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp openj --- 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)); + "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" diff --git a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch index b9ae9ab..2700f3c 100644 --- a/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch +++ b/pr3593-s390_use_z_format_specifier_for_size_t_arguments_as_size_t_not_equals_to_int.patch @@ -1,6 +1,6 @@ -diff -r cf43a852f486 src/share/vm/asm/codeBuffer.cpp ---- openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp Wed Jan 13 05:30:26 2016 +0000 +diff --git openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp +--- openjdk.orig/hotspot/src/share/vm/asm/codeBuffer.cpp ++++ openjdk/hotspot/src/share/vm/asm/codeBuffer.cpp @@ -977,7 +977,7 @@ for (int n = (int) CodeBuffer::SECT_FIRST; n < (int) CodeBuffer::SECT_LIMIT; n++) { CodeSection* sect = code_section(n); @@ -10,10 +10,10 @@ diff -r cf43a852f486 src/share/vm/asm/codeBuffer.cpp n, sect->limit() - sect->start(), sect->limit() - sect->end()); } xtty->print_cr(""); -diff -r cf43a852f486 src/share/vm/code/codeCache.cpp ---- openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/code/codeCache.cpp Wed Jan 13 05:30:26 2016 +0000 -@@ -191,7 +191,7 @@ +diff --git openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp openjdk/hotspot/src/share/vm/code/codeCache.cpp +--- openjdk.orig/hotspot/src/share/vm/code/codeCache.cpp ++++ openjdk/hotspot/src/share/vm/code/codeCache.cpp +@@ -192,7 +192,7 @@ } if (PrintCodeCacheExtension) { ResourceMark rm; @@ -22,21 +22,21 @@ diff -r cf43a852f486 src/share/vm/code/codeCache.cpp (intptr_t)_heap->low_boundary(), (intptr_t)_heap->high(), (address)_heap->high() - (address)_heap->low_boundary()); } -diff -r cf43a852f486 src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp ---- openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp Wed Jan 13 05:30:26 2016 +0000 -@@ -556,7 +556,7 @@ +diff --git openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +--- openjdk.orig/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/g1/g1StringDedupTable.cpp +@@ -598,7 +598,7 @@ " [Table]\n" - " [Memory Usage: "G1_STRDEDUP_BYTES_FORMAT_NS"]\n" - " [Size: "SIZE_FORMAT", Min: "SIZE_FORMAT", Max: "SIZE_FORMAT"]\n" -- " [Entries: "UINTX_FORMAT", Load: "G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " UINTX_FORMAT ", Added: "UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n" -+ " [Entries: "UINTX_FORMAT", Load: "G1_STRDEDUP_PERCENT_FORMAT_NS", Cached: " SIZE_FORMAT ", Added: "UINTX_FORMAT", Removed: "UINTX_FORMAT"]\n" - " [Resize Count: "UINTX_FORMAT", Shrink Threshold: "UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS"), Grow Threshold: "UINTX_FORMAT"("G1_STRDEDUP_PERCENT_FORMAT_NS")]\n" - " [Rehash Count: "UINTX_FORMAT", Rehash Threshold: "UINTX_FORMAT", Hash Seed: 0x%x]\n" - " [Age Threshold: "UINTX_FORMAT"]", -diff -r cf43a852f486 src/share/vm/memory/blockOffsetTable.cpp ---- openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp Wed Jan 13 05:30:26 2016 +0000 + " [Memory Usage: " G1_STRDEDUP_BYTES_FORMAT_NS "]\n" + " [Size: " SIZE_FORMAT ", Min: " SIZE_FORMAT ", Max: " SIZE_FORMAT "]\n" +- " [Entries: " UINTX_FORMAT ", Load: " G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " UINTX_FORMAT ", Added: " UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n" ++ " [Entries: " UINTX_FORMAT ", Load: " G1_STRDEDUP_PERCENT_FORMAT_NS ", Cached: " SIZE_FORMAT ", Added: " UINTX_FORMAT ", Removed: " UINTX_FORMAT "]\n" + " [Resize Count: " UINTX_FORMAT ", Shrink Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS "), Grow Threshold: " UINTX_FORMAT "(" G1_STRDEDUP_PERCENT_FORMAT_NS ")]\n" + " [Rehash Count: " UINTX_FORMAT ", Rehash Threshold: " UINTX_FORMAT ", Hash Seed: 0x%x]\n" + " [Age Threshold: " UINTX_FORMAT "]", +diff --git openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/blockOffsetTable.cpp ++++ openjdk/hotspot/src/share/vm/memory/blockOffsetTable.cpp @@ -57,7 +57,7 @@ gclog_or_tty->print_cr("BlockOffsetSharedArray::BlockOffsetSharedArray: "); gclog_or_tty->print_cr(" " @@ -46,10 +46,23 @@ diff -r cf43a852f486 src/share/vm/memory/blockOffsetTable.cpp " rs end(): " INTPTR_FORMAT, p2i(rs.base()), rs.size(), p2i(rs.base() + rs.size())); gclog_or_tty->print_cr(" " -diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp ---- openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp Wed Jan 13 05:30:26 2016 +0000 -@@ -1285,14 +1285,14 @@ +diff --git openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp +--- openjdk.orig/hotspot/src/share/vm/memory/collectorPolicy.cpp ++++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp +@@ -1055,7 +1055,8 @@ + size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size); + assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu", msp.initial_gen0_size(), expected)); + assert(FLAG_IS_ERGO(NewSize) && NewSize == expected, +- err_msg("NewSize should have been set ergonomically to %zu, but was %zu", expected, NewSize)); ++ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT ", but was " UINTX_FORMAT, ++ expected, NewSize)); + } + + private: +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 +@@ -1291,14 +1291,14 @@ } if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty @@ -67,7 +80,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp " max_heap: " SIZE_FORMAT, min_heap_size(), InitialHeapSize, max_heap); } -@@ -1308,7 +1308,7 @@ +@@ -1314,7 +1314,7 @@ FLAG_SET_ERGO(uintx, NewSize, MIN2(preferred_max_new_size, (size_t)NewSize)); if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty @@ -76,7 +89,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp } } // Unless explicitly requested otherwise, size old gen -@@ -1318,7 +1318,7 @@ +@@ -1324,7 +1324,7 @@ FLAG_SET_ERGO(uintx, OldSize, MIN2((size_t)(NewRatio*NewSize), max_heap - NewSize)); if (PrintGCDetails && Verbose) { // Too early to use gclog_or_tty @@ -85,7 +98,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp } } } -@@ -1834,7 +1834,7 @@ +@@ -2043,7 +2043,7 @@ if (PrintGCDetails && Verbose) { // Cannot use gclog_or_tty yet. @@ -94,7 +107,7 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp } FLAG_SET_ERGO(uintx, InitialHeapSize, (uintx)reasonable_initial); } -@@ -1844,7 +1844,7 @@ +@@ -2053,7 +2053,7 @@ set_min_heap_size(MIN2((uintx)reasonable_minimum, InitialHeapSize)); if (PrintGCDetails && Verbose) { // Cannot use gclog_or_tty yet. @@ -103,10 +116,10 @@ diff -r cf43a852f486 src/share/vm/runtime/arguments.cpp } } } -diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp ---- openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 03:43:29 2016 +0000 -+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp Wed Jan 13 05:30:26 2016 +0000 -@@ -1382,12 +1382,21 @@ +diff --git openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp +--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions.hpp ++++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions.hpp +@@ -1389,12 +1389,21 @@ #define INTPTR_FORMAT_W(width) "%" #width PRIxPTR @@ -128,16 +141,3 @@ diff -r cf43a852f486 src/share/vm/utilities/globalDefinitions.hpp #define INTX_FORMAT "%" PRIdPTR #define UINTX_FORMAT "%" PRIuPTR -diff -r 388e9d0905e6 src/share/vm/memory/collectorPolicy.cpp ---- openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Mon Apr 11 11:33:18 2016 +0000 -+++ openjdk/hotspot/src/share/vm/memory/collectorPolicy.cpp Tue Apr 12 04:12:50 2016 +0100 -@@ -1056,7 +1056,8 @@ - size_t expected = msp.scale_by_NewRatio_aligned(initial_heap_size); - assert(msp.initial_gen0_size() == expected, err_msg("%zu != %zu", msp.initial_gen0_size(), expected)); - assert(FLAG_IS_ERGO(NewSize) && NewSize == expected, -- err_msg("NewSize should have been set ergonomically to %zu, but was %zu", expected, NewSize)); -+ err_msg("NewSize should have been set ergonomically to " SIZE_FORMAT ", but was " UINTX_FORMAT, -+ expected, NewSize)); - } - - private: diff --git a/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch b/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch index e29bdb9..d8f3a5a 100644 --- a/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch +++ b/rh1566890_speculative_store_bypass_so_added_more_per_task_speculation_control_CVE_2018_3639.patch @@ -1,7 +1,7 @@ -# 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 @@ +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 +@@ -103,6 +103,8 @@ # include # include @@ -10,7 +10,7 @@ PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC #ifndef _GNU_SOURCE -@@ -4892,6 +4894,31 @@ +@@ -4997,6 +4999,31 @@ } } @@ -39,6 +39,6 @@ + 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 + // this is called _before_ most of the global arguments have been parsed void os::init(void) { char dummy; /* used to get a guess on initial stack address */ diff --git a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch index 53fa41c..e319492 100644 --- a/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch +++ b/rh1649664-awt2dlibraries_compiled_with_no_strict_overflow.patch @@ -1,7 +1,7 @@ -diff -r 1fe56343ecc8 make/lib/Awt2dLibraries.gmk ---- openjdk/jdk/make/lib/Awt2dLibraries.gmk Tue Jan 12 21:01:12 2016 +0000 -+++ openjdk/jdk/make/lib/Awt2dLibraries.gmk Thu Jan 14 00:47:01 2016 +0000 -@@ -904,6 +904,12 @@ +diff --git openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk openjdk/jdk/make/lib/Awt2dLibraries.gmk +--- openjdk.orig/jdk/make/lib/Awt2dLibraries.gmk ++++ openjdk/jdk/make/lib/Awt2dLibraries.gmk +@@ -891,6 +891,12 @@ BUILD_LIBFONTMANAGER_ExtensionSubtables.cpp_CXXFLAGS := -fno-strict-aliasing endif @@ -11,6 +11,6 @@ diff -r 1fe56343ecc8 make/lib/Awt2dLibraries.gmk + BUILD_LIBFONTMANAGER_IndicRearrangementProcessor2.cpp_CXXFLAGS := -fno-strict-overflow +endif + - $(eval $(call SetupNativeCompilation,BUILD_LIBFONTMANAGER, \ - LIBRARY := fontmanager, \ - OUTPUT_DIR := $(INSTALL_LIBRARIES_HERE), \ + # LDFLAGS clarification: + # Filter relevant linker flags disallowing unresolved symbols as we cannot + # build-time decide to which library to link against (libawt_headless or diff --git a/sources b/sources index 34cf8d8..de3a0a2 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-jdk8u191-b14.tar.xz) = d2f3e618bf8fa8d8991f2db32b665d52170642fd375926f84b0cc40a7896278847f6374fcb6d095f681b72a170ac7189ec3501907c5ca0d3d454a09397eedcfa +SHA512 (aarch64-port-jdk8u-shenandoah-aarch64-shenandoah-jdk8u192-b12.tar.xz) = 5fde4f3b2f8b903d650290f0745e8f4a8036d0dcec3642d66b0a5851eeaa6be40e2fd613916ecf27b7135b8038cab1d29968973678fd33d894fca7dd5ebb03f2