From 6d8c62429cf9606827d2cf2925b9bf26a878a4b5 Mon Sep 17 00:00:00 2001 From: Jung-uk Kim Date: Fri, 27 Jun 2014 18:41:19 +0000 Subject: [PATCH] Implement current and signal methods for sun.nio.ch.NativeThread. Note this fixes a test case in the following Apache Solr bug report. https://issues.apache.org/jira/browse/SOLR-6204 Reported by: Dawid Weiss --- java/openjdk6-jre/Makefile | 2 +- java/openjdk6/Makefile | 2 +- java/openjdk6/files/patch-set | 51 +++++++++++++++++++ java/openjdk7/Makefile | 1 + ...c-solaris-native-sun-nio-ch-NativeThread.c | 51 +++++++++++++++++++ java/openjdk8-jre/Makefile | 2 +- java/openjdk8/Makefile | 2 +- java/openjdk8/files/patch-bsd | 51 +++++++++++++++++++ 8 files changed, 158 insertions(+), 4 deletions(-) create mode 100644 java/openjdk7/files/patch-src-solaris-native-sun-nio-ch-NativeThread.c diff --git a/java/openjdk6-jre/Makefile b/java/openjdk6-jre/Makefile index 051f4402754c..c7c90243e91e 100644 --- a/java/openjdk6-jre/Makefile +++ b/java/openjdk6-jre/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -PORTREVISION= 2 +PORTREVISION= 3 CATEGORIES= java devel PKGNAMESUFFIX= -jre diff --git a/java/openjdk6/Makefile b/java/openjdk6/Makefile index 6b2b0ac61109..6b0b1bf285b2 100644 --- a/java/openjdk6/Makefile +++ b/java/openjdk6/Makefile @@ -3,7 +3,7 @@ PORTNAME= openjdk6 PORTVERSION= b31 -PORTREVISION?= 3 +PORTREVISION?= 4 PORTEPOCH= 1 CATEGORIES= java devel MASTER_SITES= ${MASTER_SITE_APACHE:S,%SUBDIR%/,ant/binaries/:ant,} \ diff --git a/java/openjdk6/files/patch-set b/java/openjdk6/files/patch-set index 555841a7e064..8703d9006f70 100644 --- a/java/openjdk6/files/patch-set +++ b/java/openjdk6/files/patch-set @@ -14576,6 +14576,57 @@ +#ifdef __cplusplus +} +#endif +--- jdk/src/solaris/native/sun/nio/ch/NativeThread.c ++++ jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -33,12 +33,20 @@ + #include "nio_util.h" + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) + #include + #include + + /* Also defined in src/solaris/native/java/net/linux_close.c */ + #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) ++#else ++#include ++#include ++ ++/* Also defined in src/solaris/native/java/net/bsd_close.c */ ++#define INTERRUPT_SIGNAL SIGIO ++#endif + + static void + nullHandler(int sig) +@@ -51,7 +59,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_init(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + + /* Install the null handler for INTERRUPT_SIGNAL. This might overwrite the + * handler previously installed by java/net/linux_close.c, but that's okay +@@ -74,7 +82,7 @@ + JNIEXPORT jlong JNICALL + Java_sun_nio_ch_NativeThread_current(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + return (long)pthread_self(); + #else + return -1; +@@ -84,7 +92,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_signal(JNIEnv *env, jclass cl, jlong thread) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + if (pthread_kill((pthread_t)thread, INTERRUPT_SIGNAL)) + JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed"); + #endif --- jdk/src/solaris/native/sun/nio/ch/Net.c +++ jdk/src/solaris/native/sun/nio/ch/Net.c @@ -65,17 +65,33 @@ diff --git a/java/openjdk7/Makefile b/java/openjdk7/Makefile index fdff8396ac25..a7cfb239a21e 100644 --- a/java/openjdk7/Makefile +++ b/java/openjdk7/Makefile @@ -3,6 +3,7 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${PORT_MINOR_VERSION}.${PORT_BUILD_NUMBER} +PORTREVISION= 1 PORTEPOCH= 1 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}u${JDK_MINOR_VERSION}/promoted/b${JDK_BUILD_NUMBER}/ \ diff --git a/java/openjdk7/files/patch-src-solaris-native-sun-nio-ch-NativeThread.c b/java/openjdk7/files/patch-src-solaris-native-sun-nio-ch-NativeThread.c new file mode 100644 index 000000000000..93216af25d73 --- /dev/null +++ b/java/openjdk7/files/patch-src-solaris-native-sun-nio-ch-NativeThread.c @@ -0,0 +1,51 @@ +--- jdk/src/solaris/native/sun/nio/ch/NativeThread.c ++++ jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -33,12 +33,20 @@ + #include "nio_util.h" + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) + #include + #include + + /* Also defined in src/solaris/native/java/net/linux_close.c */ + #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) ++#else ++#include ++#include ++ ++/* Also defined in src/solaris/native/java/net/bsd_close.c */ ++#define INTERRUPT_SIGNAL SIGIO ++#endif + + static void + nullHandler(int sig) +@@ -51,7 +59,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_init(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + + /* Install the null handler for INTERRUPT_SIGNAL. This might overwrite the + * handler previously installed by java/net/linux_close.c, but that's okay +@@ -74,7 +82,7 @@ + JNIEXPORT jlong JNICALL + Java_sun_nio_ch_NativeThread_current(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + return (long)pthread_self(); + #else + return -1; +@@ -84,7 +92,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_signal(JNIEnv *env, jclass cl, jlong thread) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + if (pthread_kill((pthread_t)thread, INTERRUPT_SIGNAL)) + JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed"); + #endif diff --git a/java/openjdk8-jre/Makefile b/java/openjdk8-jre/Makefile index 6de508eb3c8f..ff4c2e86856d 100644 --- a/java/openjdk8-jre/Makefile +++ b/java/openjdk8-jre/Makefile @@ -1,6 +1,6 @@ # $FreeBSD$ -PORTREVISION= 3 +PORTREVISION= 4 PKGNAMESUFFIX= ${JDK_MAJOR_VERSION}-jre COMMENT= Java Runtime Environment ${JDK_MAJOR_VERSION} diff --git a/java/openjdk8/Makefile b/java/openjdk8/Makefile index 8cf7e841fc77..dcb7a044f050 100644 --- a/java/openjdk8/Makefile +++ b/java/openjdk8/Makefile @@ -2,7 +2,7 @@ PORTNAME= openjdk PORTVERSION= ${JDK_MAJOR_VERSION}.${JDK_UPDATE_VERSION}.${JDK_BUILD_NUMBER:S/^0//} -PORTREVISION?= 7 +PORTREVISION?= 8 CATEGORIES= java devel MASTER_SITES= http://download.java.net/openjdk/jdk${JDK_MAJOR_VERSION}/promoted/b${JDK_BUILD_NUMBER}/:jdk \ https://adopt-openjdk.ci.cloudbees.com/job/jtreg/${JTREG_JENKINS_BUILD}/artifact/:jtreg \ diff --git a/java/openjdk8/files/patch-bsd b/java/openjdk8/files/patch-bsd index 6876b4010bbb..66e37ef3b7e1 100644 --- a/java/openjdk8/files/patch-bsd +++ b/java/openjdk8/files/patch-bsd @@ -9882,6 +9882,57 @@ return -1; } +--- jdk/src/solaris/native/sun/nio/ch/NativeThread.c ++++ jdk/src/solaris/native/sun/nio/ch/NativeThread.c +@@ -33,12 +33,20 @@ + #include "nio_util.h" + + +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) + #include + #include + + /* Also defined in src/solaris/native/java/net/linux_close.c */ + #define INTERRUPT_SIGNAL (__SIGRTMAX - 2) ++#else ++#include ++#include ++ ++/* Also defined in src/solaris/native/java/net/bsd_close.c */ ++#define INTERRUPT_SIGNAL SIGIO ++#endif + + static void + nullHandler(int sig) +@@ -51,7 +59,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_init(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + + /* Install the null handler for INTERRUPT_SIGNAL. This might overwrite the + * handler previously installed by java/net/linux_close.c, but that's okay +@@ -74,7 +82,7 @@ + JNIEXPORT jlong JNICALL + Java_sun_nio_ch_NativeThread_current(JNIEnv *env, jclass cl) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + return (long)pthread_self(); + #else + return -1; +@@ -84,7 +92,7 @@ + JNIEXPORT void JNICALL + Java_sun_nio_ch_NativeThread_signal(JNIEnv *env, jclass cl, jlong thread) + { +-#ifdef __linux__ ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) + if (pthread_kill((pthread_t)thread, INTERRUPT_SIGNAL)) + JNU_ThrowIOExceptionWithLastError(env, "Thread signal failed"); + #endif --- jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h +++ jdk/src/solaris/native/sun/nio/ch/sctp/Sctp.h @@ -67,7 +67,7 @@