Hello Mikael,
This is how I get the sources

hg clone http://hg.openjdk.java.net/jdk10/jdk10
cd jdk10
bash get_source.sh

I checked my current build and this is what I see (note the 9

AC_DEFUN([BOOTJDK_CHECK_BUILD_JDK],
[
      ....
        # Extra M4 quote needed to protect [] in grep expression.
        [FOUND_CORRECT_VERSION=`echo $BUILD_JDK_VERSION | $EGREP
'\"9([\.+-].*)?\"'`]
        if test "x$FOUND_CORRECT_VERSION" = x; then
          AC_MSG_NOTICE([Potential Build JDK found at $BUILD_JDK is
incorrect JDK version ($BUILD_JDK_VERSION); ignoring])
          AC_MSG_NOTICE([(Your Build JDK must be version 9)])
          BUILD_JDK_FOUND=no
      ....
])

To be sure I wasn't going insane I ran the above (hg clone
http://hg.openjdk.java.net/jdk10/jdk10) in a new directory

Then I noticed something your URL is
http://hg.openjdk.java.net/jdk/jdk10
Mine is (note the extra 10 after .net/jdk)
http://hg.openjdk.java.net/jdk10/jdk10

Maybe I misread something but this is highly confusing as this is what is
in the build docs

I just figured it out as well. I build it from your tree ( note .net/jdk
not ./net/jdk10 http://hg.openjdk.java.net/jdk/jdk10)
<http://hg.openjdk.java.net/jdk/jdk10)and>it works perfectly  thanks again.
For Mips You must apply patch ( I did it by hand)
Here is the link for that as well:
https://groups.google.com/forum/#!topic/linux.debian.bugs.dist/Tmgse0HIzDc


Make images works and runs on the qemu.

Thanks for this project  and the support I truly appreciate it.
Description: Use sigset_t to store the signals used by the JVM
 On mips there are 128 signals so uint64_t is not big enough to store all of
 them. Replace the current method of storing the signals with a sigset_t which
 will work on all architectures.
Author: James Cowgill <[email protected]>

diff -u b/hotspot/src/os/linux/vm/jsig.c b/hotspot/src/os/linux/vm/jsig.c
--- b/hotspot/src/os/linux/vm/jsig.c
+++ b/hotspot/src/os/linux/vm/jsig.c
@@ -41,13 +41,8 @@
 #define true 1
 #define false 0
 
-#define MASK(sig) ((uint64_t)1 << (sig-1))  // 0 is not a signal.
-// Check whether all signals fit into jvmsigs. -1 as MASK shifts by -1.
-#if (64 < NSIG-1)
-#error "Not all signals can be encoded in jvmsigs. Adapt its type!"
-#endif
 static struct sigaction sact[NSIG]; /* saved signal handlers */
-static uint64_t jvmsigs = 0; /* signals used by jvm */
+static sigset_t jvmsigs; /* signals used by jvm */
 
 /* used to synchronize the installation of signal handlers */
 static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
@@ -65,6 +60,11 @@
 static bool jvm_signal_installing = false;
 static bool jvm_signal_installed = false;
 
+static __attribute__((constructor)) void jvmsigs_init(void)
+{
+    sigemptyset(&jvmsigs);
+}
+
 static void signal_lock() {
   pthread_mutex_lock(&mutex);
   /* When the jvm is installing its set of signal handlers, threads
@@ -110,7 +110,7 @@
 
   signal_lock();
 
-  sigused = (sig < NSIG) && ((MASK(sig) & jvmsigs) != 0);
+  sigused = (sig < NSIG) && sigismember(&jvmsigs, sig);
   if (jvm_signal_installed && sigused) {
     /* jvm has installed its signal handler for this signal. */
     /* Save the handler. Don't really install it. */
@@ -127,7 +127,7 @@
     save_signal_handler(sig, oldhandler);
 
     /* Record the signals used by jvm */
-    jvmsigs |= MASK(sig);
+    sigaddset(&jvmsigs, sig);
 
     signal_unlock();
     return oldhandler;
@@ -168,7 +168,7 @@
 
   signal_lock();
 
-  sigused = (sig < NSIG) && ((MASK(sig) & jvmsigs) != 0);
+  sigused = (sig < NSIG) && sigismember(&jvmsigs, sig);
   if (jvm_signal_installed && sigused) {
     /* jvm has installed its signal handler for this signal. */
     /* Save the handler. Don't really install it. */
@@ -191,7 +191,7 @@
     }
 
     /* Record the signals used by jvm */
-    jvmsigs |= MASK(sig);
+    sigaddset(&jvmsigs, sig);
 
     signal_unlock();
     return res;
@@ -223,7 +223,7 @@
 
 struct sigaction *JVM_get_signal_action(int sig) {
   /* Does race condition make sense here? */
-  if ((MASK(sig) & jvmsigs) != 0) {
+  if (sigismember(&jvmsigs, sig)) {
     return &sact[sig];
   }
   return NULL;
only in patch2:
unchanged:
--- a/hotspot/src/os/linux/vm/os_linux.cpp
+++ b/hotspot/src/os/linux/vm/os_linux.cpp
@@ -4206,14 +4206,16 @@ bool os::Linux::signal_handlers_are_inst
 
 // For signal-chaining
 struct sigaction sigact[NSIG];
-uint64_t sigs = 0;
-#if (64 < NSIG-1)
-#error "Not all signals can be encoded in sigs. Adapt its type!"
-#endif
+sigset_t sigs;
 bool os::Linux::libjsig_is_loaded = false;
 typedef struct sigaction *(*get_signal_t)(int);
 get_signal_t os::Linux::get_signal_action = NULL;
 
+static __attribute__((constructor)) void sigs_init()
+{
+    sigemptyset(&sigs);
+}
+
 struct sigaction* os::Linux::get_chained_signal_action(int sig) {
   struct sigaction *actp = NULL;
 
@@ -4288,7 +4290,7 @@ bool os::Linux::chained_handler(int sig,
 }
 
 struct sigaction* os::Linux::get_preinstalled_handler(int sig) {
-  if ((((uint64_t)1 << (sig-1)) & sigs) != 0) {
+  if (sigismember(&sigs, sig)) {
     return &sigact[sig];
   }
   return NULL;
@@ -4297,7 +4299,7 @@ struct sigaction* os::Linux::get_preinst
 void os::Linux::save_preinstalled_handler(int sig, struct sigaction& oldAct) {
   assert(sig > 0 && sig < NSIG, "vm signal out of expected range");
   sigact[sig] = oldAct;
-  sigs |= (uint64_t)1 << (sig-1);
+  sigaddset(&sigs, sig);
 }
 
 // for diagnostic

Reply via email to