Commit 166ad037 authored by Timo Teräs's avatar Timo Teräs Committed by Natanael Copa
Browse files

testing/openjdk8: new aport

ref #4515

openjdk8 and openjdk7 cannot coexist currently due to automatic
so dependencies. both packages should be fixed to not provide
conflicting so deps (or maybe needs abuild change?)
parent 33696ff4
# Contributor: Timo Teras <timo.teras@iki.fi>
# Maintainer: Timo Teras <timo.teras@iki.fi>
pkgname=openjdk8
_java_ver=8
_jdk_update=66
_jdk_build=02
pkgver=$_java_ver.$_jdk_update.$_jdk_build
pkgrel=0
pkgdesc="Sun OpenJDK 8"
url="http://openjdk.java.net"
arch="x86_64"
license="custom"
depends="$pkgname-jre"
options="sover-namecheck"
makedepends="bash findutils tar zip file paxmark gawk util-linux libxslt
autoconf automake linux-headers sed
openjdk7 ca-certificates
nss-dev cups-dev jpeg-dev giflib-dev libpng-dev libxt-dev
lcms2-dev libxp-dev libxtst-dev libxinerama-dev zlib-dev
libxrender-dev alsa-lib-dev freetype-dev fontconfig-dev
gtk+2.0-dev krb5-dev attr-dev pcsc-lite-dev lksctp-tools-dev"
install=""
case $CARCH in
x86) _jarch=i386;;
x86_64) _jarch=amd64;;
arm*) _jarch=arm;;
esac
INSTALL_BASE=/usr/lib/jvm/java-1.8-openjdk
BOOTSTRAP_JAVA_HOME=/usr/lib/jvm/java-1.7-openjdk
_jrelib="$INSTALL_BASE/jre/lib/$_jarch"
# exclude xawt from ldpath to avoid duplicate provides for libmawt.so
# (also in headless). in future this should be a virtual provides.
ldpath="$_jrelib:$_jrelib/native_threads:$_jrelib/headless:$_jrelib/server:$_jrelib/jli"
somask="libjvm.so"
subpackages="$pkgname-jre-lib:jrelib $pkgname-jre $pkgname-jre-base:jrebase
$pkgname-doc:doc"
_dropsurl=http://hg.openjdk.java.net/jdk8u/jdk8u
_dropsver=jdk${_java_ver}u${_jdk_update}-b${_jdk_build}
source="saveas-$_dropsurl/archive/${_dropsver}.tar.bz2/jdk8u-$_dropsver.tar.bz2
saveas-$_dropsurl/corba/archive/${_dropsver}.tar.bz2/corba-$_dropsver.tar.bz2
saveas-$_dropsurl/jaxp/archive/${_dropsver}.tar.bz2/jaxp-$_dropsver.tar.bz2
saveas-$_dropsurl/jaxws/archive/${_dropsver}.tar.bz2/jaxws-$_dropsver.tar.bz2
saveas-$_dropsurl/jdk/archive/${_dropsver}.tar.bz2/jdk-$_dropsver.tar.bz2
saveas-$_dropsurl/langtools/archive/${_dropsver}.tar.bz2/langtools-$_dropsver.tar.bz2
saveas-$_dropsurl/nashorn/archive/${_dropsver}.tar.bz2/nashorn-$_dropsver.tar.bz2
saveas-$_dropsurl/hotspot/archive/${_dropsver}.tar.bz2/hotspot-$_dropsver.tar.bz2
icedtea-hotspot-musl.patch
icedtea-hotspot-noagent-musl.patch
icedtea-hotspot-uclibc-fixes.patch
icedtea-jdk-execinfo.patch
icedtea-jdk-fix-ipv6-init.patch
icedtea-jdk-musl.patch
icedtea-jdk-includes.patch
fix-libjvm-load.patch
"
_builddir="$srcdir/jdk8u-$_dropsver"
prepare() {
cd "$_builddir"
update_config_sub || return 1
local module
for module in corba hotspot jdk jaxws jaxp langtools nashorn; do
ln -s ../${module}-${_dropsver} ${module}
done
for patch in $source; do
case $patch in
*.patch)
msg "Applying patch $patch"
busybox patch -p1 < "$srcdir"/$patch || return 1
;;
esac
done
}
build() {
cd "$_builddir"
unset JAVA_HOME
export MAKEFLAGS=${MAKEFLAGS/-j*}
sh ./configure \
--build=$CBUILD \
--host=$CHOST \
--target=$CTARGET \
--prefix=$INSTALL_BASE \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--infodir=/usr/share/info \
--localstatedir=/var \
--with-update-version="${_jdk_update}" \
--with-build-number="b${_jdk_build}" \
--with-user-release-suffix="alpine-r${pkgrel}" \
--enable-unlimited-crypto \
--with-zlib=system \
--disable-freetype-bundling \
--with-boot-jdk="$BOOTSTRAP_JAVA_HOME" \
|| return 1
make DEBUG_BINARIES=true || return 1
make docs || return 1
# agent was patched off; make empty sa-jdi.jar to make image builder happy
local build
for build in build/* ; do
touch $build/jdk/lib/sa-jdi.jar
done
make images || return 1
}
list_paxables() {
file "$@" 2> /dev/null | grep -E 'ELF.*(executable|shared object)' | sed -e 's/: .*$//'
}
pax_mark_vm() {
local paxflags="-mp"
[ "$CARCH" = "x86" ] && paxflags="-msp"
for paxable in $(list_paxables "${1}"/bin/* "${1}"/jre/bin/*); do
echo "PaX mark $paxflags ${paxable}"
paxmark $paxflags "${paxable}"
done
}
package() {
mkdir -p "$pkgdir"/$INSTALL_BASE
cp -a "$_builddir"/build/*/images/j2sdk-image/* "$pkgdir"/$INSTALL_BASE
rm "$pkgdir"/$INSTALL_BASE/src.zipa
find "$pkgdir"/$INSTALL_BASE -iname "*.diz" -delete
find "$pkgdir"/$INSTALL_BASE -iname "*.debuginfo" -delete
pax_mark_vm "$pkgdir"/$INSTALL_BASE
}
jrelib() {
pkgdesc="OpenJDK 8 Java Runtime (class libraries)"
arch="noarch"
depends=""
for A in jre/lib/images jre/lib/*.jar jre/lib/security \
jre/lib/ext/*.jar jre/lib/cmm jre/ASSEMBLY_EXCEPTION \
jre/THIRD_PARTY_README jre/LICENSE ; do
dirname=${A%/*}
mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
done
}
jrebase() {
pkgdesc="OpenJDK 8 Java Runtime (no GUI support)"
depends="$pkgname-jre-lib java-common"
# manually provide this to avoid clash with libgcj's libjvm.so
provides="so:openjdk8:libjvm.so=0"
mkdir -p "$subpkgdir"/$INSTALL_BASE/bin
for A in java orbd rmid servertool unpack200 keytool \
pack200 rmiregistry tnameserv ; do
mv "$pkgdir"/$INSTALL_BASE/bin/$A "$subpkgdir"/$INSTALL_BASE/bin
done
# rest of the jre subdir (which were not taken by -jre subpkg)
mv "$pkgdir"/$INSTALL_BASE/jre "$subpkgdir"/$INSTALL_BASE
pax_mark_vm "$subpkgdir"/$INSTALL_BASE
}
jre() {
pkgdesc="OpenJDK 8 Java Runtime"
# manually depend to avoid clash with libgcj's libjvm.so
depends="so:openjdk8:libjvm.so=0"
mkdir -p "$subpkgdir"
for A in jre/bin/policytool \
bin/appletviewer \
bin/policytool \
jre/lib/$_jarch/libawt_xawt.so \
jre/lib/$_jarch/libsplashscreen.so ; do
dirname=${A%/*}
mkdir -p "$subpkgdir"/$INSTALL_BASE/$dirname
mv "$pkgdir"/$INSTALL_BASE/$A "$subpkgdir"/$INSTALL_BASE/$dirname
done
pax_mark_vm "$subpkgdir"/$INSTALL_BASE
}
doc() {
default_doc
mkdir -p "$subpkgdir"/$INSTALL_BASE/
mv "$pkgdir"/$INSTALL_BASE/man "$subpkgdir"/$INSTALL_BASE/
}
md5sums="1d115662e175470270e89a4da8e0fce2 jdk8u-jdk8u66-b02.tar.bz2
e14d8f51b9ca30d798094a2867f3f5d0 corba-jdk8u66-b02.tar.bz2
6bd5ae187272a209439d1a95ac6c9025 jaxp-jdk8u66-b02.tar.bz2
15e6a93009bdc73194e7118988d5ab8d jaxws-jdk8u66-b02.tar.bz2
74f2cf3815659b83993c4187e7fc4f6b jdk-jdk8u66-b02.tar.bz2
de5c9b5fdbcd75028b71ed667d4b99d2 langtools-jdk8u66-b02.tar.bz2
7da4e88349cfc45ee9726eaa4386be03 nashorn-jdk8u66-b02.tar.bz2
b49a7b7f2db5b07306b7b5739e87ccc0 hotspot-jdk8u66-b02.tar.bz2
f87dd2c4c3c97fc3ac33080a65ca9e14 icedtea-hotspot-musl.patch
a5841507a216890bd8419d496bb118c3 icedtea-hotspot-noagent-musl.patch
43023861c5f6efc3139a834aa3ec0476 icedtea-hotspot-uclibc-fixes.patch
bdea7060a067faf1c2de5f4eb6e8525d icedtea-jdk-execinfo.patch
250b0807b59762670954b132e8f8dfba icedtea-jdk-fix-ipv6-init.patch
fc1dc983dc562eda399c9d7eabd3b299 icedtea-jdk-musl.patch
fc7d3cc1f5a5615574fd1e416144a042 icedtea-jdk-includes.patch
9b95183ae088ac2520ac66ae587619e4 fix-libjvm-load.patch"
sha256sums="f4dbc2d8f184d60b2caee56c86e29a3fae6025ee6606079e9e8a607402b631f9 jdk8u-jdk8u66-b02.tar.bz2
7cd14a32a00f9051a7c37d2c263626b97463ef7874df34175a8807bc15d2ac60 corba-jdk8u66-b02.tar.bz2
c9b1c7f21d5bc335b4bedb327267b68ea5b90bef2ed3938c9de08d5f5ca3de43 jaxp-jdk8u66-b02.tar.bz2
e46c6ad5b1f7661913953acb140affc25d281bcee61b50c6a79f6c4b189c4d88 jaxws-jdk8u66-b02.tar.bz2
dc7f945fa7f428583ca6423b5a3f70f24016cb2f5c56e3f3b24647b4f6af9e15 jdk-jdk8u66-b02.tar.bz2
853ba30f863cafd0556ca8056bf6eab16f7a63960c0e205efc729f727849a7b5 langtools-jdk8u66-b02.tar.bz2
ab76632148a1ecba96e96e2e0409a41f7301396c8bfd863e55b883848923fdf2 nashorn-jdk8u66-b02.tar.bz2
3950387e65b38cf599ee890a07ba28a5d1f6f1a861902dae7bd26379df7e334e hotspot-jdk8u66-b02.tar.bz2
a7922430cb767c8a4baae232c8b2e5f377aeb7cfde0c9901cd7774f078e7f92e icedtea-hotspot-musl.patch
9223d4a1ae20b51bcb901ace115a2cd5f15b05655ea076c05f4c7f2c66f341e5 icedtea-hotspot-noagent-musl.patch
0ef7592b8f2c954eda0a6cf4dc4a4010942f35ea426f44e34412be6c9a949745 icedtea-hotspot-uclibc-fixes.patch
a35d40f24098747cdb73d9c3742cfb4aecafa0f72c9dfdfe2cb460f9706ff665 icedtea-jdk-execinfo.patch
632683ec88a6fb250ef043aae9cace605d0c669b7058f8c47b62b09b03ecc6c5 icedtea-jdk-fix-ipv6-init.patch
d3fcf4779a23181178e722a93290921f5c61ed7220d3a431953a53c24f89e562 icedtea-jdk-musl.patch
38590e411b7bf9b99f5168709b975e1c432ef600915800c709a6617504e2c13a icedtea-jdk-includes.patch
47028d87c9a65df8d0103b39bf54b2b22de7db7c52a5de1058f88f4c5ea24f0d fix-libjvm-load.patch"
sha512sums="ddbae784fbae51b49f3308eeb3995458fb43d563a8699ef8cb3d7d3775ed58a60c1cf11339ab520bdb6300709236f28444059b2f3f5bf551faac6748a02e6779 jdk8u-jdk8u66-b02.tar.bz2
fbaa4207a24e90f55aa3e0584598b7f4cf3baa7d565fb04699abb47fc8ff720c1c6a956b1e0296076f988517e13f3ca446aca8c60e0351a4ea25f108f954aaa1 corba-jdk8u66-b02.tar.bz2
b258f72216202844ac25415bb5c14caf34efb110e7684d7d392b30fca1df19d064e91c3bef35e16acd1d0be6ed1dc36158cb7922cad191408883f9e241b075a5 jaxp-jdk8u66-b02.tar.bz2
50d1a2243cea941e25a0de16010cb51db8333386b1ae9d97e8a88f9e15fcdb6fc42fc88232b632b7f56747dcb451e51decb84b4b6021a65b712f2523b64ea623 jaxws-jdk8u66-b02.tar.bz2
1a73ca36c69e96843e3f57d8bfe0e52eee5f4c325188da6f7272e074c0b70044105ed3cad252af456b58a8c3c6f15afb41149b813ad9d5deaf098e2977688ec7 jdk-jdk8u66-b02.tar.bz2
983df030b486f08101992a6a2c8b923e6bf445e347b96be4825f0149776fafcf536b8758db7c15034d81d10d63b7df8ac4f2be5ec8b03863cc9e6236080ec7d0 langtools-jdk8u66-b02.tar.bz2
72173e970526e680fa4ee9e972f27c5d04e8bb0c64240914c670723fe89efbc94d80f196085968f8975ca74ce9b6fe02633224454465a5d51a2e4082306b4677 nashorn-jdk8u66-b02.tar.bz2
e8fbbf79272ef2153a7bb4e49ada886d0505ccd3964d9ab0c6290e2b88ffde10af2be68e3b7a48a205968c5261167729db3468fad73ea2df71a51ad8ccd6727d hotspot-jdk8u66-b02.tar.bz2
994e8a79a0a23f26d633bf2ce9dad62198c699892f6e7729cc6e509481330399bb2ba736514b516fd2b3dd125fd6c74a127ae7f16d643c3f6a69776737cdb933 icedtea-hotspot-musl.patch
d930edbb830957729031228196720fa2d50747655a9289097103d36f852ab11b7198e18805bd89c6a438c3ccf224be48cda5f994b193ab1f81a72aada0df2b16 icedtea-hotspot-noagent-musl.patch
822eee0dc4d3ba677a289dfeb3668b536d2d626708390a9d9702fb4144a481fd443a215a0d2041c6026113837aafa4ba0b5e9ead8589d2da6717a238bbc95a5a icedtea-hotspot-uclibc-fixes.patch
f6365cfafafa008bd6c1bf0ccec01a63f8a39bd1a8bc87baa492a27234d47793ba02d455e5667a873ef50148df3baaf6a8421e2da0b15faac675867da714dd5f icedtea-jdk-execinfo.patch
48533f87fc2cf29d26b259be0df51087d2fe5b252e72d00c6ea2f4add7b0fb113141718c116279c5905e03f64a1118082e719393786811367cf4d472b5d36774 icedtea-jdk-fix-ipv6-init.patch
2fd75bb52e7c9e3b56a383b72ee519d395413b000aef94ad00b106a692a199de34967bac1120164cebce5f71d302413742922a55cc6479b2d33258aaf7d03c1b icedtea-jdk-musl.patch
7df0db85039da8cbde49093ec3299f6804370f4134554a9c26c130a4e9e0b35409a3be833f3e90764ed16718683daffb6447261db8e5988f2e0519f649aedbc6 icedtea-jdk-includes.patch
978539ba0b1f1694cda6a3a1542a4373861cbfb4dc414a3b796cd8841ecf6e12248c746b5efe2c031c85a3b0684101b29e8a5f4ff70e77c1a3f3cd7f5cb148ce fix-libjvm-load.patch"
musl needs LD_LIBRARY_PATH set because when .so is opened with dlopen(/abs/path)
it does not qualify for providing symbols for NEEDED dependency.
--- src/jdk/src/solaris/bin/java_md_solinux.c.orig
+++ src/jdk/src/solaris/bin/java_md_solinux.c
@@ -291,6 +291,8 @@
char *dmllp = NULL;
char *p; /* a utility pointer */
+ return JNI_TRUE;
+
#ifdef AIX
/* We always have to set the LIBPATH on AIX because ld doesn't support $ORIGIN. */
return JNI_TRUE;
--- openjdk.orig/hotspot/src/os/linux/vm/jvm_linux.cpp
+++ openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp
@@ -154,7 +154,9 @@
#ifdef SIGSTKFLT
"STKFLT", SIGSTKFLT, /* Stack fault. */
#endif
+#ifdef SIGCLD
"CLD", SIGCLD, /* Same as SIGCHLD (System V). */
+#endif
"CHLD", SIGCHLD, /* Child status has changed (POSIX). */
"CONT", SIGCONT, /* Continue (POSIX). */
"STOP", SIGSTOP, /* Stop, unblockable (POSIX). */
--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.inline.hpp
+++ openjdk/hotspot/src/os/linux/vm/os_linux.inline.hpp
@@ -52,7 +52,7 @@
#include <unistd.h>
#include <sys/socket.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <netdb.h>
inline void* os::thread_local_storage_at(int index) {
--- 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
@@ -73,7 +73,6 @@
# include <pwd.h>
# include <poll.h>
# include <ucontext.h>
-# include <fpu_control.h>
#ifdef AMD64
#define REG_SP REG_RSP
@@ -532,6 +531,9 @@
ShouldNotReachHere();
}
+
+#define _FPU_GETCW(cw) __asm__ __volatile__ ("fnstcw %0" : "=m" (*&cw))
+#define _FPU_SETCW(cw) __asm__ __volatile__ ("fldcw %0" : : "m" (*&cw))
void os::Linux::init_thread_fpu_state(void) {
#ifndef AMD64
--- openjdk.orig/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/threadLS_linux_x86.hpp
@@ -32,7 +32,9 @@
// map stack pointer to thread pointer - see notes in threadLS_linux_x86.cpp
#define SP_BITLENGTH 32
#define PAGE_SHIFT 12
+ #ifndef PAGE_SIZE
#define PAGE_SIZE (1UL << PAGE_SHIFT)
+ #endif
static Thread* _sp_map[1UL << (SP_BITLENGTH - PAGE_SHIFT)];
public:
--- src/hotspot.orig/make/linux/makefiles/defs.make
+++ src/hotspot/make/linux/makefiles/defs.make
@@ -292,6 +292,9 @@
# Serviceability Binaries
# No SA Support for PPC, IA64, ARM or zero
+# or if thread_db.h missing (musl)
+
+ifneq ($(wildcard /usr/include/thread_db.h),)
ADD_SA_BINARIES/x86 = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
$(EXPORT_LIB_DIR)/sa-jdi.jar
ADD_SA_BINARIES/sparc = $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.$(LIBRARY_SUFFIX) \
@@ -304,6 +307,10 @@
ADD_SA_BINARIES/x86 += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
ADD_SA_BINARIES/sparc += $(EXPORT_JRE_LIB_ARCH_DIR)/libsaproc.debuginfo
endif
+endif
+else
+ADD_SA_BINARIES/x86 =
+ADD_SA_BINARIES/sparc =
endif
ADD_SA_BINARIES/ppc =
ADD_SA_BINARIES/ia64 =
--- src/hotspot.orig/make/linux/makefiles/sa.make
+++ src/hotspot/make/linux/makefiles/sa.make
@@ -61,7 +61,8 @@
# also, we don't build SA on Itanium or zero.
all:
- if [ -d $(AGENT_DIR) -a "$(SRCARCH)" != "ia64" \
+ if [ -d $(AGENT_DIR) -a -f /usr/include/thread_db.h \
+ -a "$(SRCARCH)" != "ia64" \
-a "$(SRCARCH)" != "zero" ] ; then \
$(MAKE) -f sa.make $(GENERATED)/sa-jdi.jar; \
fi
--- src/hotspot.orig/make/linux/makefiles/saproc.make
+++ src/hotspot/make/linux/makefiles/saproc.make
@@ -61,10 +61,13 @@
# if $(AGENT_DIR) does not exist, we don't build SA
# also, we don't build SA on Itanium or zero.
+# check for thread_db.h too (musl does not have it).
+ifneq ($(wildcard /usr/include/thread_db.h),)
ifneq ($(wildcard $(AGENT_DIR)),)
ifneq ($(filter-out ia64 zero,$(SRCARCH)),)
BUILDLIBSAPROC = $(LIBSAPROC)
+endif
endif
endif
--- openjdk.orig/hotspot/src/os/linux/vm/os_linux.cpp
+++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp
@@ -112,7 +112,6 @@
# include <string.h>
# include <syscall.h>
# include <sys/sysinfo.h>
-# include <gnu/libc-version.h>
# include <sys/ipc.h>
# include <sys/shm.h>
# include <link.h>
@@ -632,6 +631,13 @@
// detecting pthread library
void os::Linux::libpthread_init() {
+#if 1
+ // Hard code Alpine Linux supported uclibc/musl compatible settings
+ os::Linux::set_glibc_version("glibc 2.9");
+ os::Linux::set_libpthread_version("NPTL");
+ os::Linux::set_is_NPTL();
+ os::Linux::set_is_floating_stack();
+#else
// Save glibc and pthread version strings. Note that _CS_GNU_LIBC_VERSION
// and _CS_GNU_LIBPTHREAD_VERSION are supported in glibc >= 2.3.2. Use a
// generic name for earlier versions.
@@ -690,6 +696,7 @@
if (os::Linux::is_NPTL() || os::Linux::supports_variable_stack_size()) {
os::Linux::set_is_floating_stack();
}
+#endif
}
/////////////////////////////////////////////////////////////////////////////
@@ -2951,11 +2958,7 @@
// If we are running with earlier version, which did not have symbol versions,
// we should use the base version.
void* os::Linux::libnuma_dlsym(void* handle, const char *name) {
- void *f = dlvsym(handle, name, "libnuma_1.1");
- if (f == NULL) {
- f = dlsym(handle, name);
- }
- return f;
+ return dlsym(handle, name);
}
bool os::Linux::libnuma_init() {
@@ -5312,7 +5315,25 @@
// Linux doesn't yet have a (official) notion of processor sets,
// so just return the system wide load average.
int os::loadavg(double loadavg[], int nelem) {
+#ifdef __UCLIBC__
+ FILE *LOADAVG;
+ double avg[3] = { 0.0, 0.0, 0.0 };
+ int i, res = -1;;
+
+ if ((LOADAVG = fopen("/proc/loadavg", "r"))) {
+ fscanf(LOADAVG, "%lf %lf %lf", &avg[0], &avg[1], &avg[2]);
+ res = 0;
+ fclose(LOADAVG);
+ }
+
+ for (i = 0; (i < nelem) && (i < 3); i++) {
+ loadavg[i] = avg[i];
+ }
+
+ return res;
+#else
return ::getloadavg(loadavg, nelem);
+#endif
}
void os::pause() {
--- openjdk.orig/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
+++ openjdk/hotspot/src/share/vm/utilities/globalDefinitions_gcc.hpp
@@ -253,7 +253,7 @@
#elif defined(__APPLE__)
inline int g_isnan(double f) { return isnan(f); }
#elif defined(LINUX) || defined(_ALLBSD_SOURCE)
-inline int g_isnan(float f) { return isnanf(f); }
+inline int g_isnan(float f) { return isnan(f); }
inline int g_isnan(double f) { return isnan(f); }
#else
#error "missing platform-specific definition here"
@@ -267,8 +267,8 @@
// Checking for finiteness
-inline int g_isfinite(jfloat f) { return finite(f); }
-inline int g_isfinite(jdouble f) { return finite(f); }
+inline int g_isfinite(jfloat f) { return isfinite(f); }
+inline int g_isfinite(jdouble f) { return isfinite(f); }
// Wide characters
--- openjdk.orig/jdk/src/solaris/native/sun/xawt/XToolkit.c
+++ openjdk/jdk/src/solaris/native/sun/xawt/XToolkit.c
@@ -27,7 +27,7 @@
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
#include <execinfo.h>
#endif
@@ -689,7 +689,7 @@
return ret;
}
-#ifdef __linux__
+#if defined(__linux__) && defined(__GLIBC__) && ! defined(__UCLIBC__)
void print_stack(void)
{
void *array[10];
--- openjdk/jdk/src/solaris/native/java/net/net_util_md.c.orig
+++ openjdk/jdk/src/solaris/native/java/net/net_util_md.c
@@ -561,7 +561,7 @@
static struct localinterface *localifs = 0;
static int localifsSize = 0; /* size of array */
-static int nifs = 0; /* number of entries used in array */
+static int nifs = -1; /* number of entries used in array */
/* not thread safe: make sure called once from one thread */
@@ -573,6 +573,10 @@
int index, x1, x2, x3;
unsigned int u0,u1,u2,u3,u4,u5,u6,u7,u8,u9,ua,ub,uc,ud,ue,uf;
+ if (nifs >= 0)
+ return ;
+ nifs = 0;
+
if ((f = fopen("/proc/net/if_inet6", "r")) == NULL) {
return ;
}
@@ -601,7 +605,7 @@
localifs = (struct localinterface *) realloc (
localifs, sizeof (struct localinterface)* (localifsSize+5));
if (localifs == 0) {
- nifs = 0;
+ nifs = -1;
fclose (f);
return;
}
@@ -624,9 +628,7 @@
static int getLocalScopeID (char *addr) {
struct localinterface *lif;
int i;
- if (localifs == 0) {
- initLocalIfs();
- }
+ initLocalIfs();
for (i=0, lif=localifs; i<nifs; i++, lif++) {
if (memcmp (addr, lif->localaddr, 16) == 0) {
return lif->index;
--- src/jdk.orig/src/aix/native/java/net/aix_close.c
+++ src/jdk/src/aix/native/java/net/aix_close.c
@@ -50,7 +50,7 @@
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
/*
* Stack allocated by thread when doing blocking operation
--- src/jdk.orig/src/aix/native/sun/nio/ch/AixNativeThread.c
+++ src/jdk/src/aix/native/sun/nio/ch/AixNativeThread.c
@@ -32,7 +32,7 @@
#include "sun_nio_ch_NativeThread.h"
#include <pthread.h>
-#include <sys/signal.h>
+#include <signal.h>
/* Also defined in src/aix/native/java/net/aix_close.c */
#define INTERRUPT_SIGNAL (SIGRTMAX - 1)
--- src/jdk.orig/src/aix/native/sun/nio/ch/AixPollPort.c
+++ src/jdk/src/aix/native/sun/nio/ch/AixPollPort.c
@@ -34,7 +34,7 @@
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
-#include <sys/poll.h>
+#include <poll.h>
#include <sys/pollset.h>
#include <fcntl.h>
#include <stddef.h>
--- src/jdk.orig/src/macosx/javavm/export/jvm_md.h
+++ src/jdk/src/macosx/javavm/export/jvm_md.h
@@ -60,7 +60,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
-#include <sys/signal.h>
+#include <signal.h>
/* O Flags */
--- src/jdk.orig/src/solaris/javavm/export/jvm_md.h
+++ src/jdk/src/solaris/javavm/export/jvm_md.h
@@ -65,7 +65,7 @@
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
-#include <sys/signal.h>
+#include <signal.h>
/* O Flags */
--- src/jdk.orig/src/solaris/native/java/net/PlainSocketImpl.c
+++ src/jdk/src/solaris/native/java/net/PlainSocketImpl.c
@@ -28,7 +28,7 @@
#include <sys/types.h>
#include <sys/socket.h>
#if defined(__linux__) && !defined(USE_SELECT)
-#include <sys/poll.h>
+#include <poll.h>
#endif
#include <netinet/tcp.h> /* Defines TCP_NODELAY, needed for 2.6 */
#include <netinet/in.h>
--- src/jdk.orig/src/solaris/native/java/net/bsd_close.c
+++ src/jdk/src/solaris/native/java/net/bsd_close.c
@@ -36,7 +36,7 @@
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>
/*
* Stack allocated by thread when doing blocking operation
--- src/jdk.orig/src/solaris/native/java/net/linux_close.c
+++ src/jdk/src/solaris/native/java/net/linux_close.c
@@ -34,7 +34,7 @@
#include <sys/uio.h>
#include <unistd.h>
#include <errno.h>
-#include <sys/poll.h>
+#include <poll.h>