← Back to team overview

openjdk team mailing list archive

Bug#901410: openjdk-11: Please include sparc64 build fixes

 

Source: openjdk-11
Version: 11~17-2
Severity: normal
Tags: patch upstream
User: debian-sparc@xxxxxxxxxxxxxxxx
Usertags: sparc64

Hello!

The two attached patches fix the openjdk-11 build on sparc64:

- JDK-8203301 - https://bugs.openjdk.java.net/browse/JDK-8203301
- JDK-8203787 - https://bugs.openjdk.java.net/browse/JDK-8203787

The latter of the two bugs has already been fixed upstream, the first
patch needs a second reviewer but I assume I can push the fix for the
Flight Recorder regression this week once I have a second ack.

Adrian

--
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer - glaubitz@xxxxxxxxxx
`. `'   Freie Universitaet Berlin - glaubitz@xxxxxxxxxxxxxxxxxxx
  `-    GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913
# HG changeset patch
# User glaubitz
# Date 1528818309 -7200
#      Tue Jun 12 17:45:09 2018 +0200
# Node ID 8e5f28a9bab3fe554a2dc2c2e8970258f27d927a
# Parent  04f4e983c2f77d935641f89668aa3c4ccf8bffdd
8203301: Linux-sparc fails to build after JDK-8199712 (Flight Recorder)

diff -r 04f4e983c2f7 -r 8e5f28a9bab3 src/hotspot/cpu/sparc/vm_version_ext_sparc.cpp
--- a/src/hotspot/cpu/sparc/vm_version_ext_sparc.cpp	Tue Jun 12 07:52:30 2018 -0700
+++ b/src/hotspot/cpu/sparc/vm_version_ext_sparc.cpp	Tue Jun 12 17:45:09 2018 +0200
@@ -31,10 +31,13 @@
 int   VM_Version_Ext::_no_of_threads = 0;
 int   VM_Version_Ext::_no_of_cores = 0;
 int   VM_Version_Ext::_no_of_sockets = 0;
+#if defined(SOLARIS)
 kid_t VM_Version_Ext::_kcid = -1;
+#endif
 char  VM_Version_Ext::_cpu_name[CPU_TYPE_DESC_BUF_SIZE] = {0};
 char  VM_Version_Ext::_cpu_desc[CPU_DETAILED_DESC_BUF_SIZE] = {0};
 
+#if defined(SOLARIS)
 // get cpu information. It takes into account if the kstat chain id
 // has been changed and update the info if necessary.
 bool VM_Version_Ext::initialize_cpu_information(void) {
@@ -144,6 +147,13 @@
   kstat_close(kc);
   return true;
 }
+#elif defined(LINUX)
+// get cpu information.
+bool VM_Version_Ext::initialize_cpu_information(void) {
+  // Not yet implemented.
+  return false;
+}
+#endif
 
 int VM_Version_Ext::number_of_threads(void) {
   initialize_cpu_information();
diff -r 04f4e983c2f7 -r 8e5f28a9bab3 src/hotspot/cpu/sparc/vm_version_ext_sparc.hpp
--- a/src/hotspot/cpu/sparc/vm_version_ext_sparc.hpp	Tue Jun 12 07:52:30 2018 -0700
+++ b/src/hotspot/cpu/sparc/vm_version_ext_sparc.hpp	Tue Jun 12 17:45:09 2018 +0200
@@ -27,8 +27,11 @@
 
 #include "utilities/macros.hpp"
 #include "vm_version_sparc.hpp"
+
+#if defined(SOLARIS)
 #include <kstat.h>
 #include <sys/processor.h>
+#endif
 
 #define CPU_INFO        "cpu_info"
 #define CPU_TYPE        "fpu_type"
@@ -45,7 +48,9 @@
   static int               _no_of_threads;
   static int               _no_of_cores;
   static int               _no_of_sockets;
+#if defined(SOLARIS)
   static kid_t             _kcid;
+#endif
   static char              _cpu_name[CPU_TYPE_DESC_BUF_SIZE];
   static char              _cpu_desc[CPU_DETAILED_DESC_BUF_SIZE];
 
diff -r 04f4e983c2f7 -r 8e5f28a9bab3 src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.cpp
--- a/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.cpp	Tue Jun 12 07:52:30 2018 -0700
+++ b/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.cpp	Tue Jun 12 17:45:09 2018 +0200
@@ -35,6 +35,13 @@
   return frame(last_Java_sp(), frame::unpatchable, _anchor.last_Java_pc());
 }
 
+bool JavaThread::pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava) {
+  ucontext_t* uc = (ucontext_t*) ucontext;
+  *fr_addr = frame((intptr_t*)uc->uc_mcontext.mc_i7, frame::unpatchable,
+                   (address)uc->uc_mcontext.mc_gregs[MC_PC]);
+  return true;
+}
+
 // For Forte Analyzer AsyncGetCallTrace profiling support - thread is
 // currently interrupted by SIGPROF
 bool JavaThread::pd_get_top_frame_for_signal_handler(frame* fr_addr,
diff -r 04f4e983c2f7 -r 8e5f28a9bab3 src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.hpp
--- a/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.hpp	Tue Jun 12 07:52:30 2018 -0700
+++ b/src/hotspot/os_cpu/linux_sparc/thread_linux_sparc.hpp	Tue Jun 12 17:45:09 2018 +0200
@@ -85,8 +85,9 @@
     _base_of_stack_pointer = sp;
   }
 
-  bool pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext,
-    bool isInJava);
+  bool pd_get_top_frame_for_signal_handler(frame* fr_addr, void* ucontext, bool isInJava);
+
+  bool pd_get_top_frame_for_profiling(frame* fr_addr, void* ucontext, bool isInJava);
 
   // These routines are only used on cpu architectures that
   // have separate register stacks (Itanium).
# HG changeset patch
# User glaubitz
# Date 1528196521 -7200
#      Tue Jun 05 13:02:01 2018 +0200
# Node ID ee87876734c930d1dac3adedbcd5830177621e23
# Parent  4d6a5c267541768d62248d81e64cfeb94eeb8f20
8203787: Hotspot build broken on linux-sparc after 8202377
Reviewed-by: dholmes, eosterlund

diff -r 4d6a5c267541 -r ee87876734c9 src/hotspot/share/opto/library_call.cpp
--- a/src/hotspot/share/opto/library_call.cpp	Tue Jun 05 09:29:15 2018 +0200
+++ b/src/hotspot/share/opto/library_call.cpp	Tue Jun 05 13:02:01 2018 +0200
@@ -29,8 +29,9 @@
 #include "classfile/vmSymbols.hpp"
 #include "compiler/compileBroker.hpp"
 #include "compiler/compileLog.hpp"
+#include "gc/shared/barrierSet.hpp"
+#include "jfr/support/jfrIntrinsics.hpp"
 #include "memory/resourceArea.hpp"
-#include "jfr/support/jfrIntrinsics.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "opto/addnode.hpp"
 #include "opto/arraycopynode.hpp"
diff -r 4d6a5c267541 -r ee87876734c9 src/hotspot/share/opto/macroArrayCopy.cpp
--- a/src/hotspot/share/opto/macroArrayCopy.cpp	Tue Jun 05 09:29:15 2018 +0200
+++ b/src/hotspot/share/opto/macroArrayCopy.cpp	Tue Jun 05 13:02:01 2018 +0200
@@ -23,6 +23,7 @@
  */
 
 #include "precompiled.hpp"
+#include "gc/shared/barrierSet.hpp"
 #include "opto/arraycopynode.hpp"
 #include "oops/objArrayKlass.hpp"
 #include "opto/convertnode.hpp"