Remove 1.6 from cvs. It was unlinked last release. okay sthen@
This commit is contained in:
parent
550ea43b07
commit
1bdfbb8039
@ -1,248 +0,0 @@
|
||||
# $OpenBSD: Makefile,v 1.53 2014/01/11 22:37:44 sthen Exp $
|
||||
|
||||
SHARED_ONLY= Yes
|
||||
ONLY_FOR_ARCHS= amd64 i386
|
||||
|
||||
BROKEN-i386= guarantee(get_thread() == thread) failed: must be the same thread, quickly
|
||||
# XXX if fixed, re-add i386 to ONLY_FOR_ARCHS-java in databases/db/Makefile.inc
|
||||
# XXX and remove the block that changes editors/libreoffice default flavour
|
||||
|
||||
COMMENT-main= Java2(TM) SE Dev Kit v${VERSION}
|
||||
COMMENT-jre= Java2(TM) SE Runtime Environment v${VERSION}
|
||||
VERSION= 1.6.0.${UPDATE}
|
||||
UPDATE= 32
|
||||
BUILD= b27
|
||||
PKGNAME= jdk-${VERSION}
|
||||
PKGNAME-main= jdk-${VERSION}
|
||||
REVISION-main= 6
|
||||
PKGNAME-jre= jre-${VERSION}
|
||||
REVISION-jre= 6
|
||||
|
||||
# see jaxp/jaxp.properties & jaxws/jaxws.properties
|
||||
# in ${WRKDIR} for names and download locations of extra distfiles
|
||||
|
||||
JDK_SRC= openjdk-6-src-${BUILD}-26_oct_2012.tar.gz
|
||||
PATCH_SET= openjdk-6u${UPDATE}-patch-set-20130113.zip
|
||||
PAXP_SRC= jaxp144_04.zip
|
||||
JAXWS_SRC= jdk6-jaxws2_1_6-2011_06_13.zip
|
||||
JAF_SRC= jdk6-jaf-b20.zip
|
||||
|
||||
DISTFILES= ${JDK_SRC} ${PATCH_SET}:1 ${PAXP_SRC}:2 ${JAXWS_SRC}:3 ${JAF_SRC}:4
|
||||
EXTRACT_ONLY= ${JDK_SRC} ${PATCH_SET}
|
||||
DIST_SUBDIR= jdk
|
||||
|
||||
CATEGORIES= devel/jdk java
|
||||
|
||||
MULTI_PACKAGES= -main -jre
|
||||
|
||||
FLAVORS= with_ipv6
|
||||
PSEUDO_FLAVORS= native_bootstrap
|
||||
FLAVOR?=
|
||||
|
||||
HOMEPAGE= http://openjdk.java.net/
|
||||
|
||||
MASTER_SITES= http://download.java.net/openjdk/jdk6/promoted/${BUILD}/ \
|
||||
http://openbsd.dead-parrot.de/distfiles/ \
|
||||
http://distfiles.nl/
|
||||
MASTER_SITES1= http://www.intricatesoftware.com/distfiles/ \
|
||||
http://openbsd.dead-parrot.de/distfiles/ \
|
||||
http://distfiles.nl/
|
||||
MASTER_SITES2= http://download.java.net/jaxp/openjdk/jdk6/ \
|
||||
http://icedtea.classpath.org/download/drops/ \
|
||||
http://openbsd.dead-parrot.de/distfiles/ \
|
||||
http://distfiles.nl/
|
||||
MASTER_SITES3= http://download.java.net/glassfish/components/jax-ws/openjdk/jdk6/ \
|
||||
http://icedtea.classpath.org/download/drops/ \
|
||||
http://openbsd.dead-parrot.de/distfiles/ \
|
||||
http://distfiles.nl/
|
||||
MASTER_SITES4= https://java.net/downloads/jax-ws/OpenJDK6/ \
|
||||
http://icedtea.classpath.org/download/drops/ \
|
||||
http://openbsd.dead-parrot.de/distfiles/ \
|
||||
http://distfiles.nl/
|
||||
MASTER_SITES5= ${MASTER_SITE_APACHE:=ant/binaries/} \
|
||||
http://archive.apache.org/dist/ant/binaries/
|
||||
MASTER_SITES6= http://spacehopper.org/mirrors/
|
||||
|
||||
MAINTAINER= Kurt Miller <kurt@openbsd.org>
|
||||
|
||||
# GPLv2 w/CLASSPATH exception
|
||||
PERMIT_PACKAGE_CDROM= Yes
|
||||
|
||||
USE_GROFF= Yes
|
||||
NO_TEST= Yes
|
||||
|
||||
BUILD_DEPENDS= archivers/zip \
|
||||
archivers/unzip \
|
||||
print/cups,-libs \
|
||||
x11/openmotif
|
||||
MODULES= converters/libiconv
|
||||
WANTLIB= X11 Xext Xi Xtst c freetype m pthread sndio stdc++ z
|
||||
|
||||
APACHE_ANT= apache-ant-1.8.4-bin.tar.gz
|
||||
SUPDISTFILES+= openjdk6-bootjdk-amd64-20130822.tar.gz:6 \
|
||||
openjdk6-bootjdk-i386-20130822.tar.gz:6 \
|
||||
${APACHE_ANT}:5
|
||||
|
||||
.if ${FLAVOR:Mnative_bootstrap}
|
||||
INSTALLED!= (pkg_info -e "jdk->=1.6,<1.7" -q && echo yes) || echo no
|
||||
.if ${INSTALLED:L} != "yes"
|
||||
ERRORS += "Fatal: This flavor requires an installed 1.6 jdk package"
|
||||
.endif
|
||||
BUILD_DEPENDS+= jdk->=1.6,<1.7:devel/jdk/1.6 \
|
||||
devel/apache-ant>=1.8.2
|
||||
ALT_BOOTDIR= ${LOCALBASE}/${JDKHOME}
|
||||
.else
|
||||
BOOT_JDK= openjdk6-bootjdk-${ARCH}-20130822.tar.gz
|
||||
.include <bsd.port.arch.mk>
|
||||
.if (${ARCH}==amd64) || (${ARCH}==i386)
|
||||
DISTFILES+= ${BOOT_JDK}:6
|
||||
.endif
|
||||
DISTFILES+= ${APACHE_ANT}:5
|
||||
EXTRACT_ONLY+= ${BOOT_JDK} ${APACHE_ANT}
|
||||
MAKE_ENV+= ANT_HOME=${WRKDIST}/apache-ant-1.8.4 \
|
||||
LD_LIBRARY_PATH=${WRKDIST}/bootjdk-libs
|
||||
ALT_BOOTDIR= ${WRKDIST}/bootjdk
|
||||
.endif
|
||||
|
||||
USE_GMAKE= Yes
|
||||
|
||||
DPB_PROPERTIES= parallel
|
||||
|
||||
# Don't call make -jN, instead pass MAKE_JOBS to HOTSPOT_BUILD_JOBS
|
||||
PARALLEL_BUILD= No
|
||||
|
||||
# Allow HOTSPOT_BUILD_JOBS to be overridden
|
||||
HOTSPOT_BUILD_JOBS?= ${MAKE_JOBS}
|
||||
|
||||
MAKE_ENV+= ALT_BOOTDIR=${ALT_BOOTDIR} \
|
||||
ALT_FREETYPE_HEADERS_PATH=${X11BASE}/include \
|
||||
ALT_FREETYPE_LIB_PATH=${X11BASE}/lib \
|
||||
ALT_MOTIF_DIR="${LOCALBASE}" \
|
||||
ALT_DROPS_DIR=${FULLDISTDIR} \
|
||||
ALT_PACKAGE_PATH=${LOCALBASE} \
|
||||
ALT_X11_PATH=${X11BASE} \
|
||||
ALT_CACERTS_FILE=${FILESDIR}/cacerts \
|
||||
SKIP_FASTDEBUG_BUILD=true \
|
||||
NO_DOCS=true \
|
||||
MILESTONE=fcs \
|
||||
BUILD_NUMBER=${BUILD} \
|
||||
JDK_UPDATE_VERSION=${UPDATE} \
|
||||
CC="${CC}" \
|
||||
CXX="${CXX}" \
|
||||
DEFAULT_LIBPATH="/usr/lib:${X11BASE}/lib:${LOCALBASE}/lib" \
|
||||
USER="${USER}" \
|
||||
WARNINGS_ARE_ERRORS="" \
|
||||
HOTSPOT_BUILD_JOBS=${HOTSPOT_BUILD_JOBS}
|
||||
|
||||
.if !${FLAVOR:Mwith_ipv6}
|
||||
MAKE_ENV+= DONT_ENABLE_IPV6=YES
|
||||
.endif
|
||||
|
||||
JDKHOME= jdk-1.6.0
|
||||
JREHOME= jre-1.6.0
|
||||
|
||||
SUBST_VARS= JDKHOME JREHOME
|
||||
|
||||
.if ${MACHINE_ARCH} == "i386"
|
||||
PKG_ARGS+= -Dclient_vm=1
|
||||
.else
|
||||
PKG_ARGS+= -Dclient_vm=0
|
||||
.endif
|
||||
|
||||
# Deal with Sun's internal build structure
|
||||
WRKDIST= ${WRKDIR}
|
||||
OUTPUTDIR= ${WRKDIR}/build/bsd-${MACHINE_ARCH:S/i386/i586/}
|
||||
JDKIMAGEDIR= ${OUTPUTDIR}/j2sdk-image
|
||||
JREIMAGEDIR= ${OUTPUTDIR}/j2re-image
|
||||
|
||||
COPYDIRS= hotspot/agent/src/os/linux \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/amd64 \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/linux/x86 \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_amd64 \
|
||||
hotspot/agent/src/share/classes/sun/jvm/hotspot/runtime/linux_x86 \
|
||||
hotspot/src/os/linux/vm \
|
||||
hotspot/src/os_cpu/linux_x86/vm \
|
||||
hotspot/src/os_cpu/linux_zero/vm \
|
||||
hotspot/make/linux \
|
||||
hotspot/make/linux/makefiles \
|
||||
jdk/src/linux/doc/man \
|
||||
jdk/src/linux/doc/man/ja
|
||||
|
||||
COPYFILES= hotspot/agent/src/share/classes/sun/jvm/hotspot/LinuxVtblAccess.java \
|
||||
corba/make/common/Defs-linux.gmk \
|
||||
corba/make/common/shared/Defs-linux.gmk \
|
||||
jdk/make/com/sun/tools/attach/mapfile-linux \
|
||||
jdk/make/common/Defs-linux.gmk \
|
||||
jdk/make/common/shared/Defs-linux.gmk \
|
||||
jdk/make/java/nio/mapfile-linux \
|
||||
jdk/make/netbeans/common/architectures/name-Linux.properties \
|
||||
jdk/make/sun/awt/mapfile-vers-linux \
|
||||
jdk/make/tools/sharing/classlist.linux \
|
||||
jdk/src/solaris/classes/java/lang/UNIXProcess.java.linux \
|
||||
jdk/src/solaris/classes/sun/awt/fontconfigs/linux.fontconfig.properties \
|
||||
jdk/src/solaris/classes/sun/tools/attach/LinuxAttachProvider.java \
|
||||
jdk/src/solaris/classes/sun/tools/attach/LinuxVirtualMachine.java \
|
||||
jdk/src/solaris/hpi/include/largefile_linux.h \
|
||||
jdk/src/solaris/native/java/net/linux_close.c \
|
||||
jdk/src/solaris/native/sun/tools/attach/LinuxVirtualMachine.c
|
||||
|
||||
# create initial bsd src from linux src (except for threads_solaris.c)
|
||||
post-extract:
|
||||
@for d in ${COPYDIRS}; do \
|
||||
mkdir -p `echo ${WRKDIST}/$$d | sed 's/linux/bsd/g;'`; \
|
||||
cd ${WRKDIST}/$$d; \
|
||||
for f in *; do \
|
||||
if [ -f $$f ]; then \
|
||||
t=`echo ${WRKDIST}/$$d/$$f | sed 's/linux/bsd/g; s/Linux/Bsd/g'`; \
|
||||
sed 's/linux/bsd/g; s/Linux/Bsd/g' < $$f > $$t; \
|
||||
fi; \
|
||||
done; \
|
||||
done
|
||||
@for f in ${COPYFILES}; do \
|
||||
t=`echo $$f | sed 's/linux/bsd/g; s/Linux/Bsd/g'`; \
|
||||
sed 's/linux/bsd/g; s/Linux/Bsd/g' < ${WRKDIST}/$$f > ${WRKDIST}/$$t; \
|
||||
done
|
||||
@sed 's/solaris/bsd/g; s/Solaris/Bsd/g' \
|
||||
< ${WRKDIST}/jdk/src/solaris/hpi/native_threads/src/threads_solaris.c \
|
||||
> ${WRKDIST}/jdk/src/solaris/hpi/native_threads/src/threads_bsd.c
|
||||
@cp ${FILESDIR}/PLATFORM_API_BSDOS_PCM.c \
|
||||
${WRKDIR}/jdk/src/solaris/native/com/sun/media/sound
|
||||
@perl -pi -e 's|build-policy install-limited|build-policy install-unlimited|' \
|
||||
${WRKDIST}/jdk/make/javax/crypto/Makefile
|
||||
|
||||
pre-patch:
|
||||
@cd ${WRKDIR} && \
|
||||
${PATCH} -p0 -z .orig.u${UPDATE} --quiet < ${WRKDIR}/${PATCH_SET:R}
|
||||
|
||||
post-build:
|
||||
@rm -rf ${JDKIMAGEDIR}/man/ja ${JREIMAGEDIR}/man/ja
|
||||
|
||||
do-install:
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/${JDKHOME}
|
||||
cd ${JDKIMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${JDKHOME} -xf -
|
||||
${INSTALL_DATA_DIR} ${PREFIX}/${JREHOME}
|
||||
cd ${JREIMAGEDIR} && tar -cf - * | tar -C ${PREFIX}/${JREHOME} -xf -
|
||||
|
||||
.include <bsd.port.mk>
|
||||
|
||||
# The bootjdk is the jdk image with some parts deleted
|
||||
# and a copy of the system shared libs needed to run it.
|
||||
# The parts deleted are not needed for bootstrap and would
|
||||
# require more system shared libs to be saved.
|
||||
build-bootjdk: ${_BUILD_COOKIE}
|
||||
@rm -rf ${WRKDIR}/tmp
|
||||
@mkdir -p ${WRKDIR}/tmp/bootjdk
|
||||
@mkdir -p ${WRKDIR}/tmp/bootjdk-libs
|
||||
@cd ${JDKIMAGEDIR} && tar -cf - * | tar -C ${WRKDIR}/tmp/bootjdk -xf -
|
||||
@cd ${WRKDIR}/tmp/bootjdk/bin && rm appletviewer policytool
|
||||
@cd ${WRKDIR}/tmp/bootjdk/jre/lib/${ARCH} && rm libnpt.so libinstrument.so libsplashscreen.so xawt/libmawt.so
|
||||
@ldd ${WRKDIR}/tmp/bootjdk/bin/unpack200 | \
|
||||
grep rlib | cut -d"/" -f 2-20 | \
|
||||
xargs -I % cp /% ${WRKDIR}/tmp/bootjdk-libs
|
||||
@objdump -p ${WRKDIR}/tmp/bootjdk/jre/lib/${ARCH}/libfontmanager.so | \
|
||||
grep NEEDED | grep libfreetype | sed -e 's/[[:blank:]]*NEEDED[[:blank:]]*//' | \
|
||||
xargs -I % cp ${X11BASE}/lib/% ${WRKDIR}/tmp/bootjdk-libs
|
||||
@cd ${WRKDIR}/tmp && tar czf openjdk6-bootjdk-${ARCH}-$$(date +%Y%m%d).tar.gz bootjdk*
|
||||
@echo "New bootjdk is located at ${WRKDIR}/tmp/openjdk6-bootjdk-${ARCH}-$$(date +%Y%m%d).tar.gz"
|
@ -1,16 +0,0 @@
|
||||
SHA256 (jdk/apache-ant-1.8.4-bin.tar.gz) = Vi8iEuoI3k8/RvJeVFKuuquo6RMvXezVAh2k4HOUUVU=
|
||||
SHA256 (jdk/jaxp144_04.zip) = SQ9pYhjB/tnLGAaAr4g/4wm0FP7CMunOwZZF4SrQtDw=
|
||||
SHA256 (jdk/jdk6-jaf-b20.zip) = eMe1ydYnHojuRqut0BimHx6WRfiTbMjfFhfl9PUHQBI=
|
||||
SHA256 (jdk/jdk6-jaxws2_1_6-2011_06_13.zip) = IpBAVE55H0SQbo57b2+vUDxzCl2FQnUTXzklSQ1cO+M=
|
||||
SHA256 (jdk/openjdk-6-src-b27-26_oct_2012.tar.gz) = BEw4d7FZQP8E+KqBczfyh4oAzIlnSFRVfxoC8VsYAqA=
|
||||
SHA256 (jdk/openjdk-6u32-patch-set-20130113.zip) = Vz6NNneua+6oXPxULBDIp3Mm20KS5l+JQsAVbTaKAqE=
|
||||
SHA256 (jdk/openjdk6-bootjdk-amd64-20130822.tar.gz) = izqlux8hRo5txoMFN9M30ICVwFivGpTlD7sEg9GqkdM=
|
||||
SHA256 (jdk/openjdk6-bootjdk-i386-20130822.tar.gz) = TmOq6PAuIE9ATyWZRDUpJKBgjD49Dk3r6yEZKQriNYo=
|
||||
SIZE (jdk/apache-ant-1.8.4-bin.tar.gz) = 5425171
|
||||
SIZE (jdk/jaxp144_04.zip) = 5976385
|
||||
SIZE (jdk/jdk6-jaf-b20.zip) = 71243
|
||||
SIZE (jdk/jdk6-jaxws2_1_6-2011_06_13.zip) = 5512710
|
||||
SIZE (jdk/openjdk-6-src-b27-26_oct_2012.tar.gz) = 45789350
|
||||
SIZE (jdk/openjdk-6u32-patch-set-20130113.zip) = 155544
|
||||
SIZE (jdk/openjdk6-bootjdk-amd64-20130822.tar.gz) = 64600139
|
||||
SIZE (jdk/openjdk6-bootjdk-i386-20130822.tar.gz) = 66090198
|
@ -1,482 +0,0 @@
|
||||
/*
|
||||
* Copyright (c) 2009 Jacob Meuser <jakemsr@sdf.lonestar.org>
|
||||
*
|
||||
* Permission to use, copy, modify, and distribute this software for any
|
||||
* purpose with or without fee is hereby granted, provided that the above
|
||||
* copyright notice and this permission notice appear in all copies.
|
||||
*
|
||||
* THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
|
||||
* WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
|
||||
* MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
|
||||
* ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
|
||||
* WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
|
||||
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
|
||||
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*/
|
||||
|
||||
|
||||
/* sndio backend for DirectAudio */
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <poll.h>
|
||||
#include <sndio.h>
|
||||
|
||||
#include "DirectAudio.h"
|
||||
|
||||
#if USE_DAUDIO == TRUE
|
||||
|
||||
struct sndio_data {
|
||||
struct sio_hdl *hdl;
|
||||
struct sio_par par;
|
||||
int mode;
|
||||
long long realpos;
|
||||
long long softpos;
|
||||
};
|
||||
|
||||
static void
|
||||
sndio_movecb(void *arg, int delta)
|
||||
{
|
||||
struct sndio_data *d = arg;
|
||||
d->realpos += delta;
|
||||
}
|
||||
|
||||
static int
|
||||
sndio_check_handle(struct sndio_data *d, int isSource)
|
||||
{
|
||||
if (!d || !d->hdl ||
|
||||
(isSource ? d->mode != SIO_PLAY : d->mode != SIO_REC))
|
||||
return 0;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
INT32
|
||||
DAUDIO_GetDirectAudioDeviceCount()
|
||||
{
|
||||
/* keep it simple for now */
|
||||
return 1;
|
||||
}
|
||||
|
||||
INT32
|
||||
DAUDIO_GetDirectAudioDeviceDescription(INT32 mixerIndex,
|
||||
DirectAudioDeviceDescription* description)
|
||||
{
|
||||
if (mixerIndex != 0) {
|
||||
printf("invalid sndio mixerIndex\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* one device for now */
|
||||
description->deviceID = 0;
|
||||
|
||||
/* number of simultaneous connections: 1 for hardware, -1 (inf)
|
||||
* for aucat. no way to know the difference.
|
||||
*/
|
||||
description->maxSimulLines = -1;
|
||||
|
||||
strlcpy(description->name, "sndio device", DAUDIO_STRING_LENGTH);
|
||||
strlcpy(description->vendor, "OpenBSD", DAUDIO_STRING_LENGTH);
|
||||
strlcpy(description->version, "1", DAUDIO_STRING_LENGTH);
|
||||
strlcpy(description->description, "OpenBSD Audio", DAUDIO_STRING_LENGTH);
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
DAUDIO_GetFormats(INT32 mixerIndex, INT32 deviceID, int isSource,
|
||||
void* creator)
|
||||
{
|
||||
struct sio_hdl *hdl;
|
||||
struct sio_cap cap;
|
||||
int i, j, k;
|
||||
unsigned int n;
|
||||
|
||||
hdl = sio_open(NULL, isSource ? SIO_PLAY : SIO_REC, 0);
|
||||
if (hdl == NULL) {
|
||||
printf("could not get sndio handle to probe formats");
|
||||
return;
|
||||
}
|
||||
|
||||
if (!sio_getcap(hdl, &cap)) {
|
||||
printf("sio_getcap failed\n");
|
||||
return;
|
||||
}
|
||||
|
||||
for (n = 0; n < cap.nconf; n++) {
|
||||
for (i = 0; i < SIO_NENC; i++) {
|
||||
if (cap.confs[n].enc & (1 << i)) {
|
||||
for (j = 0; j < SIO_NCHAN; j++) {
|
||||
if ((isSource ?
|
||||
cap.confs[n].pchan : cap.confs[n].rchan) & (1 << j)) {
|
||||
for (k = 0; k < SIO_NRATE; k++) {
|
||||
if (cap.confs[n].rate & (1 << k)) {
|
||||
DAUDIO_AddAudioFormat(creator,
|
||||
cap.enc[i].bits,
|
||||
0, /* cap.enc[i].bps * (isSource ? cap.pchan[j] : cap.rchan[j]) */
|
||||
(isSource ? cap.pchan[j] : cap.rchan[j]),
|
||||
cap.rate[k],
|
||||
DAUDIO_PCM,
|
||||
cap.enc[i].sig,
|
||||
!cap.enc[i].le);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sio_close(hdl);
|
||||
}
|
||||
|
||||
void*
|
||||
DAUDIO_Open(INT32 mixerIndex, INT32 deviceID, int isSource, int encoding,
|
||||
float sampleRate, int sampleSizeInBits, int frameSize, int channels,
|
||||
int isSigned, int isBigEndian, int bufferSizeInBytes)
|
||||
{
|
||||
struct sndio_data *d;
|
||||
struct sio_par gpar;
|
||||
|
||||
if (encoding != DAUDIO_PCM) {
|
||||
printf("invalid encoding for sndio\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (mixerIndex != 0 || deviceID != 0) {
|
||||
printf("invalid device for sndio\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
d = malloc(sizeof(struct sndio_data));
|
||||
if (d == NULL) {
|
||||
printf("could not alloc sndio_data structure\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
d->mode = isSource ? SIO_PLAY : SIO_REC;
|
||||
|
||||
d->hdl = NULL;
|
||||
d->hdl = sio_open(NULL, d->mode, 0);
|
||||
if (d->hdl == NULL) {
|
||||
printf("could not open sndio device\n");
|
||||
goto bad;
|
||||
}
|
||||
|
||||
sio_initpar(&d->par);
|
||||
if (d->mode == SIO_PLAY)
|
||||
d->par.pchan = channels;
|
||||
else
|
||||
d->par.rchan = channels;
|
||||
d->par.rate = sampleRate;
|
||||
d->par.bits = sampleSizeInBits;
|
||||
d->par.sig = isSigned;
|
||||
d->par.le = !isBigEndian;
|
||||
d->par.appbufsz = bufferSizeInBytes / SIO_BPS(d->par.bits) /
|
||||
((d->mode == SIO_PLAY) ? d->par.pchan : d->par.rchan);
|
||||
|
||||
if (!sio_setpar(d->hdl, &d->par)) {
|
||||
printf("could not set sndio params\n");
|
||||
goto bad;
|
||||
}
|
||||
if (!sio_getpar(d->hdl, &gpar)) {
|
||||
printf("could not get sndio params\n");
|
||||
goto bad;
|
||||
}
|
||||
|
||||
if (d->par.rate != gpar.rate ||
|
||||
d->par.bits != gpar.bits ||
|
||||
d->par.sig != gpar.sig ||
|
||||
d->par.le != gpar.le ||
|
||||
((d->mode == SIO_PLAY) ?
|
||||
d->par.pchan != gpar.pchan : d->par.rchan != gpar.rchan)) {
|
||||
printf("could not set sndio params as desired\n");
|
||||
goto bad;
|
||||
}
|
||||
d->par.appbufsz = gpar.appbufsz;
|
||||
|
||||
d->realpos = d->softpos = 0;
|
||||
sio_onmove(d->hdl, sndio_movecb, d);
|
||||
|
||||
return (void *)d;
|
||||
bad:
|
||||
if (d) {
|
||||
if (d->hdl)
|
||||
sio_close(d->hdl);
|
||||
free(d);
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_Start(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_Start\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!sio_start(d->hdl)) {
|
||||
printf("could not start sndio\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_Stop(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_Stop\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
if (!sio_stop(d->hdl)) {
|
||||
printf("could not stop sndio\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
void
|
||||
DAUDIO_Close(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_Close\n");
|
||||
return;
|
||||
}
|
||||
|
||||
sio_close(d->hdl);
|
||||
free(d);
|
||||
d = NULL;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_Write(void *id, char* data, int byteSize)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
int ret, done;
|
||||
|
||||
if (!sndio_check_handle(d, 1)) {
|
||||
printf("sndio handle error: DAUDIO_Write\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
done = 0;
|
||||
while (byteSize > 0) {
|
||||
ret = sio_write(d->hdl, data + done, byteSize);
|
||||
if (ret == 0) {
|
||||
printf("sndio write error\n");
|
||||
return -1;
|
||||
}
|
||||
done += ret;
|
||||
byteSize -= ret;
|
||||
}
|
||||
d->softpos += done / (d->par.bps * d->par.pchan);
|
||||
|
||||
return done;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_Read(void *id, char* data, int byteSize)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
int ret, done;
|
||||
|
||||
if (!sndio_check_handle(d, 0)) {
|
||||
printf("sndio handle error: DAUDIO_Read\n");
|
||||
return -1;
|
||||
}
|
||||
|
||||
done = 0;
|
||||
while (byteSize > 0) {
|
||||
ret = sio_read(d->hdl, data + done, byteSize);
|
||||
if (ret == 0) {
|
||||
printf("sndio read error\n");
|
||||
return -1;
|
||||
}
|
||||
done += ret;
|
||||
byteSize -= ret;
|
||||
}
|
||||
d->softpos += done / (d->par.bps * d->par.rchan);
|
||||
|
||||
return done;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_GetBufferSize(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_GetBufferSize\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
return (d->par.appbufsz * d->par.bps *
|
||||
((d->mode == SIO_PLAY) ? d->par.pchan : d->par.rchan));
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_StillDraining(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
struct pollfd pfd;
|
||||
nfds_t nfds;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_StillDraining\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* make sure counters are up-to-date */
|
||||
nfds = sio_pollfd(d->hdl, &pfd,
|
||||
(d->mode == SIO_PLAY) ? POLLOUT : POLLIN);
|
||||
poll(&pfd, nfds, 0);
|
||||
sio_revents(d->hdl, &pfd);
|
||||
|
||||
if (d->mode == SIO_PLAY) {
|
||||
if (d->softpos - d->realpos > 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
} else {
|
||||
/* what does it mean to drain recording? */
|
||||
#if 0
|
||||
if (d->realpos - d->softpos > 0)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
#else
|
||||
return FALSE;
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_Flush(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
struct pollfd pfd;
|
||||
nfds_t nfds;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_StillDraining\n");
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* how do you flush recording? */
|
||||
if (d->mode == SIO_REC)
|
||||
return TRUE;
|
||||
|
||||
#if 0
|
||||
/* probably unnecessary busy work */
|
||||
while (d->softpos > d->realpos) {
|
||||
nfds = sio_pollfd(d->hdl, &pfd, POLLOUT);
|
||||
/* wait a little bit */
|
||||
poll(&pfd, nfds, 10);
|
||||
sio_revents(d->hdl, &pfd);
|
||||
}
|
||||
#endif
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_GetAvailable(void *id, int isSource)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
struct pollfd pfd;
|
||||
nfds_t nfds;
|
||||
int avail;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_GetAvailable\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
nfds = sio_pollfd(d->hdl, &pfd,
|
||||
(d->mode == SIO_PLAY) ? POLLOUT : POLLIN);
|
||||
poll(&pfd, nfds, 0);
|
||||
sio_revents(d->hdl, &pfd);
|
||||
|
||||
avail = 0;
|
||||
if (d->mode == SIO_PLAY)
|
||||
avail = d->par.appbufsz - (d->softpos - d->realpos);
|
||||
else
|
||||
avail = d->realpos - d->softpos;
|
||||
if (avail < 0)
|
||||
avail = 0;
|
||||
else if (avail > d->par.appbufsz)
|
||||
avail = d->par.appbufsz;
|
||||
|
||||
return (avail * d->par.bps *
|
||||
(d->mode == SIO_PLAY ? d->par.pchan : d->par.rchan));
|
||||
}
|
||||
|
||||
INT64
|
||||
DAUDIO_GetBytePosition(void *id, int isSource, INT64 javaBytePos)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
struct pollfd pfd;
|
||||
nfds_t nfds;
|
||||
long long pos;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_GetBytePosition\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
nfds = sio_pollfd(d->hdl, &pfd,
|
||||
(d->mode == SIO_PLAY) ? POLLOUT : POLLIN);
|
||||
poll(&pfd, nfds, 0);
|
||||
sio_revents(d->hdl, &pfd);
|
||||
|
||||
pos = d->realpos;
|
||||
if (pos > d->par.appbufsz)
|
||||
pos = d->par.appbufsz;
|
||||
else if (pos < 0)
|
||||
pos = 0;
|
||||
|
||||
return (pos * d->par.bps *
|
||||
((d->mode == SIO_PLAY) ? d->par.pchan : d->par.rchan));
|
||||
}
|
||||
|
||||
void
|
||||
DAUDIO_SetBytePosition(void *id, int isSource, INT64 javaBytePos)
|
||||
{
|
||||
struct sndio_data *d = id;
|
||||
INT64 pos;
|
||||
int diff;
|
||||
|
||||
if (!sndio_check_handle(d, isSource)) {
|
||||
printf("sndio handle error: DAUDIO_SetBytePosition\n");
|
||||
return;
|
||||
}
|
||||
|
||||
pos = DAUDIO_GetBytePosition(id, isSource, 0);
|
||||
diff = (javaBytePos - pos) / d->par.bps /
|
||||
((d->mode == SIO_PLAY) ? d->par.pchan : d->par.rchan);
|
||||
d->realpos += diff;
|
||||
d->softpos += diff;
|
||||
}
|
||||
|
||||
int
|
||||
DAUDIO_RequiresServicing(void *id, int isSource)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void
|
||||
DAUDIO_Service(void *id, int isSource)
|
||||
{
|
||||
}
|
||||
|
||||
#endif /* USE_DAUDIO */
|
Binary file not shown.
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-corba_make_common_Defs-bsd_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- corba/make/common/Defs-bsd.gmk.orig Tue Jan 29 09:23:08 2013
|
||||
+++ corba/make/common/Defs-bsd.gmk Tue Jan 29 09:23:20 2013
|
||||
@@ -268,7 +268,7 @@ override LIBPOSIX4 =
|
||||
override LIBSOCKET =
|
||||
override LIBTHREAD =
|
||||
override MOOT_PRIORITIES = true
|
||||
-override NO_INTERRUPTIBLE_IO = false
|
||||
+override NO_INTERRUPTIBLE_IO = true
|
||||
override OPENWIN_HOME = $(X11_PATH)
|
||||
override OPENWIN_LIB = $(OPENWIN_HOME)/lib
|
||||
override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-corba_make_common_shared_Defs-utils_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- corba/make/common/shared/Defs-utils.gmk.orig Tue Jan 29 10:42:47 2013
|
||||
+++ corba/make/common/shared/Defs-utils.gmk Tue Jan 29 10:43:14 2013
|
||||
@@ -230,7 +230,9 @@ ifeq ($(PLATFORM),bsd)
|
||||
else
|
||||
UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||
endif
|
||||
- ifneq ($(OS_VENDOR), OpenBSD)
|
||||
+ ifeq ($(OS_VENDOR), OpenBSD)
|
||||
+ NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||
+ else
|
||||
CPIO = $(UTILS_USR_BIN_PATH)cpio
|
||||
TAR = $(UTILS_USR_BIN_PATH)tar
|
||||
endif
|
@ -1,37 +0,0 @@
|
||||
$OpenBSD: patch-corba_make_common_shared_Platform_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- corba/make/common/shared/Platform.gmk.orig Tue Jan 29 11:40:15 2013
|
||||
+++ corba/make/common/shared/Platform.gmk Tue Jan 29 11:42:07 2013
|
||||
@@ -286,7 +286,7 @@ ifeq ($(SYSTEM_UNAME), OpenBSD)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = openbsd
|
||||
OS_VENDOR = OpenBSD
|
||||
- REQUIRED_OS_VERSION = 4.2
|
||||
+ REQUIRED_OS_VERSION = 5.1
|
||||
endif
|
||||
|
||||
# Platform settings specific to BSD
|
||||
@@ -478,14 +478,7 @@ endif
|
||||
# build machines and adjustments will be made to prevent excessing
|
||||
# system swapping during the build.
|
||||
# If we don't know, assume 512. Subtract 128 from MB for VM MAX.
|
||||
-# Don't set VM max over 1024-128=896, except on OpenBSD where
|
||||
-# 736 is the max.
|
||||
-ifeq ($(OS_VENDOR), OpenBSD)
|
||||
- ABS_MAX_MEMORY := "736"
|
||||
-else
|
||||
- ABS_MAX_MEMORY := "896"
|
||||
-endif
|
||||
-
|
||||
+# Don't set VM max over 1024-128=896.
|
||||
ifneq ($(MB_OF_MEMORY),)
|
||||
LOW_MEMORY_MACHINE := $(shell \
|
||||
if [ $(MB_OF_MEMORY) -le 512 ] ; then \
|
||||
@@ -497,7 +490,7 @@ ifneq ($(MB_OF_MEMORY),)
|
||||
if [ $(MB_OF_MEMORY) -le 1024 ] ; then \
|
||||
expr $(MB_OF_MEMORY) '-' 128 ; \
|
||||
else \
|
||||
- echo $(ABS_MAX_MEMORY); \
|
||||
+ echo "896"; \
|
||||
fi)
|
||||
MIN_VM_MEMORY := $(shell \
|
||||
if [ $(MAX_VM_MEMORY) -le 128 ] ; then \
|
@ -1,124 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_agent_src_os_bsd_StubDebuggerLocal_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- hotspot/agent/src/os/bsd/StubDebuggerLocal.c.orig Tue Jun 2 13:02:17 2009
|
||||
+++ hotspot/agent/src/os/bsd/StubDebuggerLocal.c Tue Jun 2 13:02:28 2009
|
||||
@@ -0,0 +1,120 @@
|
||||
+/*
|
||||
+ * Copyright 2002-2007 Sun Microsystems, 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
|
||||
+ * CA 95054 USA or visit www.sun.com if you need additional information or
|
||||
+ * have any questions.
|
||||
+ *
|
||||
+ */
|
||||
+
|
||||
+#include <stdlib.h>
|
||||
+#include <jni.h>
|
||||
+
|
||||
+#define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
|
||||
+#define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
|
||||
+#define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
|
||||
+#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
|
||||
+
|
||||
+static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
|
||||
+ (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: init0
|
||||
+ * Signature: ()V
|
||||
+ */
|
||||
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0
|
||||
+ (JNIEnv *env, jclass cls) {
|
||||
+}
|
||||
+
|
||||
+JNIEXPORT jint JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize
|
||||
+ (JNIEnv *env, jclass cls)
|
||||
+{
|
||||
+#ifdef _LP64
|
||||
+ return 8;
|
||||
+#else
|
||||
+ return 4;
|
||||
+#endif
|
||||
+
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: attach0
|
||||
+ * Signature: (I)V
|
||||
+ */
|
||||
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I
|
||||
+ (JNIEnv *env, jobject this_obj, jint jpid) {
|
||||
+
|
||||
+ THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process");
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: attach0
|
||||
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
|
||||
+ */
|
||||
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2
|
||||
+ (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) {
|
||||
+ THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the core file");
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: detach0
|
||||
+ * Signature: ()V
|
||||
+ */
|
||||
+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0
|
||||
+ (JNIEnv *env, jobject this_obj) {
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: lookupByName0
|
||||
+ * Signature: (Ljava/lang/String;Ljava/lang/String;)J
|
||||
+ */
|
||||
+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0
|
||||
+ (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: lookupByAddress0
|
||||
+ * Signature: (J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
|
||||
+ */
|
||||
+JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0
|
||||
+ (JNIEnv *env, jobject this_obj, jlong addr) {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * Class: sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
|
||||
+ * Method: readBytesFromProcess0
|
||||
+ * Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult;
|
||||
+ */
|
||||
+JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0
|
||||
+ (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
|
||||
+ return 0;
|
||||
+}
|
||||
+
|
||||
+JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0
|
||||
+ (JNIEnv *env, jobject this_obj, jint lwp_id) {
|
||||
+ return 0;
|
||||
+}
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_cpu_x86_vm_globals_x86_hpp,v 1.1 2013/02/03 21:03:39 kurt Exp $
|
||||
--- hotspot/src/cpu/x86/vm/globals_x86.hpp.orig Sun Feb 3 10:36:52 2013
|
||||
+++ hotspot/src/cpu/x86/vm/globals_x86.hpp Sun Feb 3 10:37:13 2013
|
||||
@@ -70,6 +70,10 @@ define_pd_global(intx, PreInflateSpin, 10);
|
||||
define_pd_global(bool, RewriteBytecodes, true);
|
||||
define_pd_global(bool, RewriteFrequentPairs, true);
|
||||
|
||||
+#ifdef _ALLBSD_SOURCE
|
||||
+define_pd_global(bool, UseMembar, true);
|
||||
+#else
|
||||
define_pd_global(bool, UseMembar, false);
|
||||
+#endif
|
||||
|
||||
#endif // CPU_X86_VM_GLOBALS_X86_HPP
|
@ -1,77 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_os_bsd_vm_attachListener_bsd_cpp,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- hotspot/src/os/bsd/vm/attachListener_bsd.cpp.orig Tue Jan 29 12:03:16 2013
|
||||
+++ hotspot/src/os/bsd/vm/attachListener_bsd.cpp Tue Jan 29 12:08:58 2013
|
||||
@@ -170,41 +170,58 @@ extern "C" {
|
||||
// Initialization - create a listener socket and bind it to a file
|
||||
|
||||
int BsdAttachListener::init() {
|
||||
- char path[UNIX_PATH_MAX]; // socket file
|
||||
- int listener; // listener socket (file descriptor)
|
||||
+ char path[UNIX_PATH_MAX]; // socket file
|
||||
+ char initial_path[UNIX_PATH_MAX]; // socket file during setup
|
||||
+ int listener; // listener socket (file descriptor)
|
||||
|
||||
// register function to cleanup
|
||||
::atexit(listener_cleanup);
|
||||
|
||||
+ int n = snprintf(path, UNIX_PATH_MAX, "%s/.java_pid%d",
|
||||
+ os::get_temp_directory(), os::current_process_id());
|
||||
+ if (n < (int)UNIX_PATH_MAX) {
|
||||
+ n = snprintf(initial_path, UNIX_PATH_MAX, "%s.tmp", path);
|
||||
+ }
|
||||
+ if (n >= (int)UNIX_PATH_MAX) {
|
||||
+ return -1;
|
||||
+ }
|
||||
+
|
||||
// create the listener socket
|
||||
listener = ::socket(PF_UNIX, SOCK_STREAM, 0);
|
||||
if (listener == -1) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
- int res = -1;
|
||||
+ // bind socket
|
||||
struct sockaddr_un addr;
|
||||
addr.sun_family = AF_UNIX;
|
||||
-
|
||||
- snprintf(path, UNIX_PATH_MAX, "%s/.java_pid%d",
|
||||
- os::get_temp_directory(), os::current_process_id());
|
||||
- strcpy(addr.sun_path, path);
|
||||
- ::unlink(path);
|
||||
- res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr));
|
||||
+ strcpy(addr.sun_path, initial_path);
|
||||
+ ::unlink(initial_path);
|
||||
+ int res = ::bind(listener, (struct sockaddr*)&addr, sizeof(addr));
|
||||
if (res == -1) {
|
||||
RESTARTABLE(::close(listener), res);
|
||||
return -1;
|
||||
}
|
||||
- set_path(path);
|
||||
|
||||
- // put in listen mode and set permission and ownership
|
||||
- if ((::listen(listener, 5) == -1) || (::chmod(path, S_IREAD|S_IWRITE) == -1) ||
|
||||
- (::chown(path, geteuid(), getegid()) == -1)) {
|
||||
+ // put in listen mode, set permissions, and rename into place
|
||||
+ res = ::listen(listener, 5);
|
||||
+ if (res == 0) {
|
||||
+ RESTARTABLE(::chmod(initial_path, S_IREAD|S_IWRITE), res);
|
||||
+ if (res == 0) {
|
||||
+ // make sure the file is owned by the effective user and effective group
|
||||
+ // (this is the default on linux, but not on mac os)
|
||||
+ RESTARTABLE(::chown(initial_path, geteuid(), getegid()), res);
|
||||
+ if (res == 0) {
|
||||
+ res = ::rename(initial_path, path);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ if (res == -1) {
|
||||
RESTARTABLE(::close(listener), res);
|
||||
- ::unlink(path);
|
||||
- set_path(NULL);
|
||||
+ ::unlink(initial_path);
|
||||
return -1;
|
||||
}
|
||||
+ set_path(path);
|
||||
set_listener(listener);
|
||||
|
||||
return 0;
|
@ -1,26 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_os_bsd_vm_os_bsd_cpp,v 1.3 2013/02/01 15:34:35 kurt Exp $
|
||||
--- hotspot/src/os/bsd/vm/os_bsd.cpp.orig Tue Jan 29 11:05:21 2013
|
||||
+++ hotspot/src/os/bsd/vm/os_bsd.cpp Tue Jan 29 11:08:40 2013
|
||||
@@ -4815,12 +4815,17 @@ int os::available(int fd, jlong *bytes) {
|
||||
}
|
||||
|
||||
int os::socket_available(int fd, jint *pbytes) {
|
||||
- // Bsd doc says EINTR not returned, unlike Solaris
|
||||
- int ret = ::ioctl(fd, FIONREAD, pbytes);
|
||||
+ if (fd < 0)
|
||||
+ return OS_OK;
|
||||
|
||||
- //%% note ioctl can return 0 when successful, JVM_SocketAvailable
|
||||
- // is expected to return 0 on failure and 1 on success to the jdk.
|
||||
- return (ret < 0) ? 0 : 1;
|
||||
+ int ret;
|
||||
+
|
||||
+ RESTARTABLE(::ioctl(fd, FIONREAD, pbytes), ret);
|
||||
+
|
||||
+ //%% note ioctl can return 0 when successful, JVM_SocketAvailable
|
||||
+ // is expected to return 0 on failure and 1 on success to the jdk.
|
||||
+
|
||||
+ return (ret == OS_ERR) ? 0 : 1;
|
||||
}
|
||||
|
||||
// Map a block of memory.
|
@ -1,29 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_os_bsd_vm_os_bsd_inline_hpp,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- hotspot/src/os/bsd/vm/os_bsd.inline.hpp.orig Tue Jan 29 11:08:49 2013
|
||||
+++ hotspot/src/os/bsd/vm/os_bsd.inline.hpp Tue Jan 29 11:10:34 2013
|
||||
@@ -191,11 +191,11 @@ inline size_t os::write(int fd, const void *buf, unsig
|
||||
}
|
||||
|
||||
inline int os::close(int fd) {
|
||||
- return ::close(fd);
|
||||
+ RESTARTABLE_RETURN_INT(::close(fd));
|
||||
}
|
||||
|
||||
inline int os::socket_close(int fd) {
|
||||
- return ::close(fd);
|
||||
+ RESTARTABLE_RETURN_INT(::close(fd));
|
||||
}
|
||||
|
||||
inline int os::socket(int domain, int type, int protocol) {
|
||||
@@ -260,9 +260,9 @@ inline int os::accept(int fd, struct sockaddr *him, in
|
||||
// fetch it's value, this cast is safe for now. The java.net group
|
||||
// may need and want to change this interface someday if socklen_t goes
|
||||
// to 64 bits on some platform that we support.
|
||||
- // Bsd doc says this can't return EINTR, unlike accept() on Solaris
|
||||
|
||||
- return ::accept(fd, him, (socklen_t *)len);
|
||||
+ // At least OpenBSD and FreeBSD can return EINTR from accept.
|
||||
+ RESTARTABLE_RETURN_INT(::accept(fd, him, (socklen_t *)len));
|
||||
}
|
||||
|
||||
inline int os::recvfrom(int fd, char *buf, int nBytes, int flags,
|
@ -1,41 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_os_cpu_bsd_x86_vm_os_bsd_x86_cpp,v 1.1 2013/03/19 19:26:45 kurt Exp $
|
||||
--- hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp.orig Mon Feb 4 13:08:55 2013
|
||||
+++ hotspot/src/os_cpu/bsd_x86/vm/os_bsd_x86.cpp Mon Feb 4 22:00:10 2013
|
||||
@@ -226,7 +226,6 @@
|
||||
# define context_esi sc_esi
|
||||
# define context_edi sc_edi
|
||||
# define context_eflags sc_eflags
|
||||
-# define context_trapno sc_trapno
|
||||
# endif
|
||||
#endif
|
||||
|
||||
@@ -394,6 +393,9 @@ frame os::current_frame() {
|
||||
|
||||
// From IA32 System Programming Guide
|
||||
enum {
|
||||
+#ifdef __OpenBSD__
|
||||
+ trap_protection_fault = 0x4,
|
||||
+#endif
|
||||
trap_page_fault = 0xE
|
||||
};
|
||||
|
||||
@@ -649,7 +651,11 @@ JVM_handle_bsd_signal(int sig,
|
||||
// Furthermore, a false-positive should be harmless.
|
||||
if (UnguardOnExecutionViolation > 0 &&
|
||||
(sig == SIGSEGV || sig == SIGBUS) &&
|
||||
+#ifdef __OpenBSD__
|
||||
+ uc->context_trapno == trap_protection_fault) {
|
||||
+#else
|
||||
uc->context_trapno == trap_page_fault) {
|
||||
+#endif
|
||||
int page_size = os::vm_page_size();
|
||||
address addr = (address) info->si_addr;
|
||||
address pc = os::Bsd::ucontext_get_pc(uc);
|
||||
@@ -1062,6 +1068,7 @@ void os::print_context(outputStream *st, void *context
|
||||
st->cr();
|
||||
st->print( "EIP=" INTPTR_FORMAT, uc->context_eip);
|
||||
st->print(", EFLAGS=" INTPTR_FORMAT, uc->context_eflags);
|
||||
+ st->print(", TRAPNO=" INTPTR_FORMAT, uc->context_trapno);
|
||||
#endif // AMD64
|
||||
st->cr();
|
||||
st->cr();
|
@ -1,15 +0,0 @@
|
||||
$OpenBSD: patch-hotspot_src_share_vm_utilities_elfFile_hpp,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- hotspot/src/share/vm/utilities/elfFile.hpp.orig Mon Jan 14 21:53:54 2013
|
||||
+++ hotspot/src/share/vm/utilities/elfFile.hpp Mon Jan 14 21:54:21 2013
|
||||
@@ -27,7 +27,11 @@
|
||||
|
||||
#ifndef _WINDOWS
|
||||
|
||||
+#if defined(__OpenBSD__)
|
||||
+#include <sys/exec_elf.h>
|
||||
+#else
|
||||
#include <elf.h>
|
||||
+#endif
|
||||
#include <stdio.h>
|
||||
|
||||
#ifdef _LP64
|
@ -1,24 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_common_Defs-bsd_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/common/Defs-bsd.gmk.orig Tue Jan 29 09:17:54 2013
|
||||
+++ jdk/make/common/Defs-bsd.gmk Tue Jan 29 11:52:53 2013
|
||||
@@ -255,6 +255,11 @@ LD_MAPFILE_FLAG = -Xlinker --version-script -Xlinker
|
||||
ifeq ($(OS_VENDOR), Apple)
|
||||
LDNOMAP=true
|
||||
endif
|
||||
+# Using map files currently break compilation on FreeBSD during shared library
|
||||
+# checks for some of the AWT native libraries.
|
||||
+ifeq ($(OS_VENDOR), FreeBSD)
|
||||
+LDNOMAP=true
|
||||
+endif
|
||||
|
||||
#
|
||||
# Path and option to link against the VM, if you have to. Note that
|
||||
@@ -295,7 +300,7 @@ override LIBPOSIX4 =
|
||||
override LIBSOCKET =
|
||||
override LIBTHREAD =
|
||||
override MOOT_PRIORITIES = true
|
||||
-override NO_INTERRUPTIBLE_IO = false
|
||||
+override NO_INTERRUPTIBLE_IO = true
|
||||
override OPENWIN_HOME = $(X11_PATH)
|
||||
override OPENWIN_LIB = $(OPENWIN_HOME)/lib
|
||||
override OTHER_M4FLAGS = -D__GLIBC__ -DGNU_ASSEMBLER
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_common_Mapfile-vers_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/common/Mapfile-vers.gmk.orig Tue Jan 29 11:39:05 2013
|
||||
+++ jdk/make/common/Mapfile-vers.gmk Tue Jan 29 11:38:09 2013
|
||||
@@ -77,7 +77,7 @@ endif
|
||||
endif # PLATFORM
|
||||
|
||||
|
||||
-ifeq ($(PLATFORM), linux)
|
||||
+ifneq (,$(findstring $(PLATFORM), linux bsd))
|
||||
|
||||
ifeq ($(VARIANT), OPT)
|
||||
# OPT build MUST have a mapfile?
|
@ -1,28 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_common_shared_Defs-utils_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/common/shared/Defs-utils.gmk.orig Mon Jan 14 21:13:20 2013
|
||||
+++ jdk/make/common/shared/Defs-utils.gmk Mon Jan 14 21:16:46 2013
|
||||
@@ -224,16 +224,18 @@ ifeq ($(PLATFORM),bsd)
|
||||
TOUCH = $(UTILS_USR_BIN_PATH)touch
|
||||
TRUE = $(UTILS_USR_BIN_PATH)true
|
||||
UNAME = $(UTILS_USR_BIN_PATH)uname
|
||||
+ UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||
# BSD OS_VENDOR specific
|
||||
- ifeq ($(OS_VENDOR), Apple)
|
||||
+ ifeq ($(OS_VENDOR), OpenBSD)
|
||||
NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||
- UNZIPSFX = $(UTILS_USR_BIN_PATH)unzipsfx
|
||||
- ZIPEXE = $(UTILS_USR_BIN_PATH)zip
|
||||
+ OBJDUMP = $(UTILS_USR_BIN_PATH)objdump
|
||||
else
|
||||
- UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||
- endif
|
||||
- ifneq ($(OS_VENDOR), OpenBSD)
|
||||
CPIO = $(UTILS_USR_BIN_PATH)cpio
|
||||
TAR = $(UTILS_USR_BIN_PATH)tar
|
||||
+ endif
|
||||
+ ifeq ($(OS_VENDOR), NetBSD)
|
||||
+ NAWK = $(UTILS_USR_BIN_PATH)awk
|
||||
+ ZIPEXE = $(UTILS_DEVTOOL_PATH)zip
|
||||
+ UNZIP = $(UTILS_DEVTOOL_PATH)unzip
|
||||
endif
|
||||
endif
|
@ -1,44 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_common_shared_Platform_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/common/shared/Platform.gmk.orig Mon Jan 28 22:43:28 2013
|
||||
+++ jdk/make/common/shared/Platform.gmk Tue Jan 29 09:31:35 2013
|
||||
@@ -101,7 +101,7 @@ REQUIRED_FREETYPE_VERSION=2.3.0
|
||||
SCM_DIRs = .hg .svn CVS RCS SCCS Codemgr_wsdata deleted_files .hgignore .hgtags
|
||||
# When changing SCM_DIRs also change SCM_DIRS_rexp and SCM_DIRS_prune:
|
||||
SCM_DIRS_rexp = ".hg|.svn|CVS|RCS|SCCS|Codemgr_wsdata|deleted_files|.hgignore|.hgtags"
|
||||
-SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files -o -name .hgignore -o -name .hgtags \) -prune
|
||||
+SCM_DIRS_prune = \( -name .hg -o -name .svn -o -name CVS -o -name RCS -o -name SCCS -o -name Codemgr_wsdata -o -name deleted_files -o -name .hgignore -o -name .hgtags -o -name \*.orig \) -prune
|
||||
|
||||
# Don't define this unless it's not defined
|
||||
ifndef VARIANT
|
||||
@@ -289,7 +289,7 @@ ifeq ($(SYSTEM_UNAME), OpenBSD)
|
||||
PLATFORM = bsd
|
||||
OS_NAME = openbsd
|
||||
OS_VENDOR = OpenBSD
|
||||
- REQUIRED_OS_VERSION = 4.2
|
||||
+ REQUIRED_OS_VERSION = 5.1
|
||||
endif
|
||||
|
||||
# Platform settings specific to BSD
|
||||
@@ -483,13 +483,6 @@ endif
|
||||
# system swapping during the build.
|
||||
# If we don't know, assume 512. Subtract 128 from MB for VM MAX.
|
||||
# Don't set VM max over 1024-128=896.
|
||||
-# 736 is the max for OpenBSD.
|
||||
-ifeq ($(OS_VENDOR), OpenBSD)
|
||||
- ABS_MAX_MEMORY := "736"
|
||||
-else
|
||||
- ABS_MAX_MEMORY := "896"
|
||||
-endif
|
||||
-
|
||||
ifneq ($(MB_OF_MEMORY),)
|
||||
LOW_MEMORY_MACHINE := $(shell \
|
||||
if [ $(MB_OF_MEMORY) -le 512 ] ; then \
|
||||
@@ -501,7 +494,7 @@ ifneq ($(MB_OF_MEMORY),)
|
||||
if [ $(MB_OF_MEMORY) -le 1024 ] ; then \
|
||||
expr $(MB_OF_MEMORY) '-' 128 ; \
|
||||
else \
|
||||
- echo $(ABS_MAX_MEMORY); \
|
||||
+ echo "896"; \
|
||||
fi)
|
||||
MIN_VM_MEMORY := $(shell \
|
||||
if [ $(MAX_VM_MEMORY) -le 128 ] ; then \
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_common_shared_Sanity_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/common/shared/Sanity.gmk.orig Mon Jan 28 17:27:38 2013
|
||||
+++ jdk/make/common/shared/Sanity.gmk Mon Jan 28 17:34:31 2013
|
||||
@@ -106,7 +106,7 @@ UNZIP_VER :=$(call GetVersion,"$(_UNZIP_VER)")
|
||||
BOOT_VER :=$(call GetVersion,"$(_BOOT_VER)")
|
||||
|
||||
REQUIRED_ANT_VER := 1.6.3
|
||||
-_ANT_VER :=$(shell $(ANT) -version 2>&1 )
|
||||
+_ANT_VER :=$(shell JAVA_HOME=$(BOOTDIR) $(ANT) -version 2>&1 )
|
||||
ANT_VER :=$(call GetVersion,"$(_ANT_VER)")
|
||||
|
||||
ifdef ALT_BINDIR
|
||||
@@ -479,7 +479,7 @@ sane-variant:
|
||||
# LD_LIBRARY_PATH should not be set, unless you are insane.
|
||||
######################################################
|
||||
sane-ld_library_path:
|
||||
-ifdef LD_LIBRARY_PATH
|
||||
+ifdef LD_LIBRARY_PATH_DISABLED
|
||||
@$(ECHO) "ERROR: Your LD_LIBRARY_PATH environment variable is set. This may \n" \
|
||||
" produce binaries binaries incorrectly. Please unset it \n" \
|
||||
" and start your build again. \n" \
|
@ -1,13 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_java_hpi_native_Makefile,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/java/hpi/native/Makefile.orig Tue Jan 29 08:58:56 2013
|
||||
+++ jdk/make/java/hpi/native/Makefile Tue Jan 29 09:01:48 2013
|
||||
@@ -88,7 +88,9 @@ ifeq ($(HAVE_GETHRVTIME),true)
|
||||
OTHER_CPPFLAGS += -DHAVE_GETHRVTIME
|
||||
endif
|
||||
|
||||
+ifneq ($(OS_VENDOR), OpenBSD)
|
||||
HAVE_FILIOH=true
|
||||
+endif
|
||||
ifeq ($(HAVE_FILIOH),true)
|
||||
OTHER_CPPFLAGS += -DHAVE_FILIOH
|
||||
endif
|
@ -1,34 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_java_nio_mapfile-bsd,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/java/nio/mapfile-bsd.orig Tue Jan 29 08:50:20 2013
|
||||
+++ jdk/make/java/nio/mapfile-bsd Tue Jan 29 08:53:58 2013
|
||||
@@ -12,14 +12,6 @@ SUNWprivate_1.1 {
|
||||
Java_sun_nio_ch_DatagramDispatcher_readv0;
|
||||
Java_sun_nio_ch_DatagramDispatcher_write0;
|
||||
Java_sun_nio_ch_DatagramDispatcher_writev0;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_epollCreate;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_epollCtl;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_epollWait;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_fdLimit;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_init;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_interrupt;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_offsetofData;
|
||||
- Java_sun_nio_ch_EPollArrayWrapper_sizeofEPollEvent;
|
||||
Java_sun_nio_ch_FileChannelImpl_close0;
|
||||
Java_sun_nio_ch_FileChannelImpl_force0;
|
||||
Java_sun_nio_ch_FileChannelImpl_initIDs;
|
||||
@@ -57,6 +49,15 @@ SUNWprivate_1.1 {
|
||||
Java_sun_nio_ch_IOUtil_initPipe;
|
||||
Java_sun_nio_ch_IOUtil_randomBytes;
|
||||
Java_sun_nio_ch_IOUtil_setfdVal;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_kqueue;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_register;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_kevent;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_keventSize;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_interrupt;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_putKevent;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_getKeventFilter;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_getKeventFlags;
|
||||
+ Java_sun_nio_ch_KqueueArrayWrapper_getKeventIdent;
|
||||
Java_sun_nio_ch_NativeThread_current;
|
||||
Java_sun_nio_ch_NativeThread_init;
|
||||
Java_sun_nio_ch_NativeThread_signal;
|
@ -1,17 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_java_security_Makefile,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/java/security/Makefile.orig Mon Jan 28 22:09:16 2013
|
||||
+++ jdk/make/java/security/Makefile Mon Jan 28 22:09:58 2013
|
||||
@@ -52,13 +52,6 @@ ifeq ($(PLATFORM), windows)
|
||||
PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-windows
|
||||
endif
|
||||
|
||||
-else # windows
|
||||
-
|
||||
-ifeq ($(PLATFORM), bsd)
|
||||
- ifeq ($(OS_VENDOR), OpenBSD)
|
||||
- PROPS_SRC = $(TOPDIR)/src/share/lib/security/java.security-openbsd
|
||||
- endif
|
||||
-endif
|
||||
endif # windows
|
||||
endif # PLATFORM
|
||||
|
@ -1,17 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_javax_sound_FILES_c_gmk,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/javax/sound/FILES_c.gmk.orig Mon Jan 28 21:07:17 2013
|
||||
+++ jdk/make/javax/sound/FILES_c.gmk Mon Jan 28 21:08:17 2013
|
||||
@@ -34,7 +34,12 @@ FILES_solaris = \
|
||||
|
||||
FILES_linux =
|
||||
|
||||
-FILES_bsd =
|
||||
+ifeq ($(OS_VENDOR), OpenBSD)
|
||||
+FILES_bsd = \
|
||||
+ PLATFORM_API_BSDOS_PCM.c
|
||||
+else
|
||||
+FILES_bsd =
|
||||
+endif
|
||||
|
||||
FILES_windows = \
|
||||
PLATFORM_API_WinOS_MidiIn.c \
|
@ -1,23 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_javax_sound_Makefile,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/make/javax/sound/Makefile.orig Mon Jan 28 21:04:04 2013
|
||||
+++ jdk/make/javax/sound/Makefile Mon Jan 28 21:11:25 2013
|
||||
@@ -105,6 +105,19 @@ ifeq ($(PLATFORM), linux)
|
||||
#MXSPP_ADD = $(PLATFORM)-$(ARCH)/
|
||||
endif # PLATFORM linux
|
||||
|
||||
+ifeq ($(PLATFORM), bsd)
|
||||
+ ifeq ($(OS_VENDOR), OpenBSD)
|
||||
+ # build with empty MIDI i/o
|
||||
+ INCLUDE_MIDI = TRUE
|
||||
+ # build with empty ports
|
||||
+ INCLUDE_PORTS = TRUE
|
||||
+ # build with direct audio
|
||||
+ INCLUDE_DAUDIO = TRUE
|
||||
+ CPPFLAGS += -DUSE_DAUDIO=TRUE
|
||||
+ LDFLAGS += -lsndio
|
||||
+ endif # OS_VENDOR OpenBSD
|
||||
+endif # PLATFORM bsd
|
||||
+
|
||||
ifeq ($(PLATFORM), solaris)
|
||||
ifneq ($(ARCH), amd64)
|
||||
# build with ports and direct audio
|
@ -1,19 +0,0 @@
|
||||
$OpenBSD: patch-jdk_make_sun_awt_mawt_gmk,v 1.1 2013/04/10 02:47:10 kurt Exp $
|
||||
--- jdk/make/sun/awt/mawt.gmk.orig Tue Apr 9 15:31:27 2013
|
||||
+++ jdk/make/sun/awt/mawt.gmk Tue Apr 9 15:34:43 2013
|
||||
@@ -202,15 +202,6 @@ endif
|
||||
#
|
||||
# Other extra flags needed for compiling.
|
||||
#
|
||||
-CPPFLAGS += -I$(CUPS_HEADERS_PATH)
|
||||
-
|
||||
-ifndef HEADLESS
|
||||
-CPPFLAGS += -I$(MOTIF_DIR)/include \
|
||||
- -I$(OPENWIN_HOME)/include
|
||||
-LDFLAGS += -L$(MOTIF_LIB) -L$(OPENWIN_LIB)
|
||||
-
|
||||
-endif # !HEADLESS
|
||||
-
|
||||
CPPFLAGS += -I$(SHARE_SRC)/native/$(PKGDIR)/debug \
|
||||
-I$(SHARE_SRC)/native/$(PKGDIR)/../font \
|
||||
-I$(PLATFORM_SRC)/native/$(PKGDIR)/../font \
|
@ -1,90 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_classes_java_lang_ClassLoader_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/classes/java/lang/ClassLoader.java.orig Fri Oct 26 14:25:51 2012
|
||||
+++ jdk/src/share/classes/java/lang/ClassLoader.java Tue Jan 29 08:31:38 2013
|
||||
@@ -27,6 +27,7 @@ package java.lang;
|
||||
import java.io.InputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.File;
|
||||
+import java.io.FilenameFilter;
|
||||
import java.lang.reflect.Constructor;
|
||||
import java.lang.reflect.InvocationTargetException;
|
||||
import java.net.MalformedURLException;
|
||||
@@ -39,6 +40,9 @@ import java.security.PrivilegedAction;
|
||||
import java.security.PrivilegedActionException;
|
||||
import java.security.PrivilegedExceptionAction;
|
||||
import java.security.ProtectionDomain;
|
||||
+import java.util.Arrays;
|
||||
+import java.util.Collections;
|
||||
+import java.util.Comparator;
|
||||
import java.util.Enumeration;
|
||||
import java.util.Hashtable;
|
||||
import java.util.HashMap;
|
||||
@@ -1682,18 +1686,61 @@ public abstract class ClassLoader {
|
||||
}
|
||||
|
||||
private static boolean loadLibrary0(Class fromClass, final File file) {
|
||||
- Boolean exists = (Boolean)
|
||||
- AccessController.doPrivileged(new PrivilegedAction() {
|
||||
- public Object run() {
|
||||
- return new Boolean(file.exists());
|
||||
+ File libfile = AccessController.doPrivileged(
|
||||
+ new PrivilegedAction<File>() {
|
||||
+ class LibraryFileFilter implements FilenameFilter {
|
||||
+ final String libname;
|
||||
+
|
||||
+ LibraryFileFilter(String libname) {
|
||||
+ this.libname = libname;
|
||||
+ }
|
||||
+
|
||||
+ public boolean accept(File dir, String name) {
|
||||
+ if (name.startsWith(libname)) {
|
||||
+ return name.substring(libname.length()).matches("\\.[0-9]{1,20}\\.[0-9]{1,20}$");
|
||||
+ }
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
- });
|
||||
- if (!exists.booleanValue()) {
|
||||
+
|
||||
+ class LibraryFileVersionComparator implements Comparator<String> {
|
||||
+ public int compare(String s1, String s2) {
|
||||
+ String[] f1 = s1.split("\\."), f2 = s2.split("\\.");
|
||||
+ int res = compareComponents(f1[f1.length - 2], f2[f2.length - 2]);
|
||||
+ if (res == 0) {
|
||||
+ res = compareComponents(f1[f1.length - 1], f2[f2.length - 1]);
|
||||
+ }
|
||||
+ return res;
|
||||
+ }
|
||||
+
|
||||
+ int compareComponents(String s1, String s2) {
|
||||
+ return Long.valueOf(s1).compareTo(Long.valueOf(s2));
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ public File run() {
|
||||
+ if (file.exists())
|
||||
+ return file;
|
||||
+ // if file is unversioned, check for a versioned one in same dir
|
||||
+ if (file.getName().endsWith(".so")) {
|
||||
+ File dir = file.getParentFile();
|
||||
+ if (dir != null) {
|
||||
+ String liblist[] = dir.list(new LibraryFileFilter(file.getName()));
|
||||
+ if (liblist != null && liblist.length > 0) {
|
||||
+ // return the highest versioned lib
|
||||
+ String highest = Collections.max(Arrays.asList(liblist), new LibraryFileVersionComparator());
|
||||
+ return new File(dir, highest);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ return null;
|
||||
+ }});
|
||||
+ if (libfile == null) {
|
||||
return false;
|
||||
}
|
||||
String name;
|
||||
try {
|
||||
- name = file.getCanonicalPath();
|
||||
+ name = libfile.getCanonicalPath();
|
||||
} catch (IOException e) {
|
||||
return false;
|
||||
}
|
@ -1,50 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_classes_sun_applet_AppletPanel_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/classes/sun/applet/AppletPanel.java.orig Fri Oct 26 14:25:59 2012
|
||||
+++ jdk/src/share/classes/sun/applet/AppletPanel.java Mon Jan 28 20:49:23 2013
|
||||
@@ -68,7 +68,7 @@ abstract class AppletPanel extends Panel implements Ap
|
||||
/**
|
||||
* The applet (if loaded).
|
||||
*/
|
||||
- Applet applet;
|
||||
+ protected Applet applet;
|
||||
|
||||
/**
|
||||
* Applet will allow initialization. Should be
|
||||
@@ -117,7 +117,7 @@ abstract class AppletPanel extends Panel implements Ap
|
||||
/**
|
||||
* The thread for the applet.
|
||||
*/
|
||||
- Thread handler;
|
||||
+ protected Thread handler;
|
||||
|
||||
|
||||
/**
|
||||
@@ -162,7 +162,8 @@ abstract class AppletPanel extends Panel implements Ap
|
||||
* Creates a thread to run the applet. This method is called
|
||||
* each time an applet is loaded and reloaded.
|
||||
*/
|
||||
- synchronized void createAppletThread() {
|
||||
+ //Overridden by NetxPanel.
|
||||
+ protected synchronized void createAppletThread() {
|
||||
// Create a thread group for the applet, and start a new
|
||||
// thread to load the applet.
|
||||
String nm = "applet-" + getCode();
|
||||
@@ -306,7 +307,7 @@ abstract class AppletPanel extends Panel implements Ap
|
||||
/**
|
||||
* Get an event from the queue.
|
||||
*/
|
||||
- synchronized AppletEvent getNextEvent() throws InterruptedException {
|
||||
+ protected synchronized AppletEvent getNextEvent() throws InterruptedException {
|
||||
while (queue == null || queue.isEmpty()) {
|
||||
wait();
|
||||
}
|
||||
@@ -695,7 +696,8 @@ abstract class AppletPanel extends Panel implements Ap
|
||||
* applet event processing so that it can be gracefully interrupted from
|
||||
* things like HotJava.
|
||||
*/
|
||||
- private void runLoader() {
|
||||
+ //Overridden by NetxPanel.
|
||||
+ protected void runLoader() {
|
||||
if (status != APPLET_DISPOSE) {
|
||||
showAppletStatus("notdisposed");
|
||||
return;
|
@ -1,67 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_classes_sun_applet_AppletViewerPanel_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/classes/sun/applet/AppletViewerPanel.java.orig Fri Oct 26 14:25:59 2012
|
||||
+++ jdk/src/share/classes/sun/applet/AppletViewerPanel.java Mon Jan 28 20:49:23 2013
|
||||
@@ -42,25 +42,25 @@ import sun.tools.jar.*;
|
||||
*
|
||||
* @author Arthur van Hoff
|
||||
*/
|
||||
-class AppletViewerPanel extends AppletPanel {
|
||||
+public class AppletViewerPanel extends AppletPanel {
|
||||
|
||||
/* Are we debugging? */
|
||||
- static boolean debug = false;
|
||||
+ protected static boolean debug = false;
|
||||
|
||||
/**
|
||||
* The document url.
|
||||
*/
|
||||
- URL documentURL;
|
||||
+ protected URL documentURL;
|
||||
|
||||
/**
|
||||
* The base url.
|
||||
*/
|
||||
- URL baseURL;
|
||||
+ protected URL baseURL;
|
||||
|
||||
/**
|
||||
* The attributes of the applet.
|
||||
*/
|
||||
- Hashtable atts;
|
||||
+ protected Hashtable<String,String> atts;
|
||||
|
||||
/*
|
||||
* JDK 1.1 serialVersionUID
|
||||
@@ -70,7 +70,7 @@ class AppletViewerPanel extends AppletPanel {
|
||||
/**
|
||||
* Construct an applet viewer and start the applet.
|
||||
*/
|
||||
- AppletViewerPanel(URL documentURL, Hashtable atts) {
|
||||
+ protected AppletViewerPanel(URL documentURL, Hashtable<String,String> atts) {
|
||||
this.documentURL = documentURL;
|
||||
this.atts = atts;
|
||||
|
||||
@@ -106,7 +106,7 @@ class AppletViewerPanel extends AppletPanel {
|
||||
* Get an applet parameter.
|
||||
*/
|
||||
public String getParameter(String name) {
|
||||
- return (String)atts.get(name.toLowerCase());
|
||||
+ return atts.get(name.toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -202,12 +202,12 @@ class AppletViewerPanel extends AppletPanel {
|
||||
return (AppletContext)getParent();
|
||||
}
|
||||
|
||||
- static void debug(String s) {
|
||||
+ protected static void debug(String s) {
|
||||
if(debug)
|
||||
System.err.println("AppletViewerPanel:::" + s);
|
||||
}
|
||||
|
||||
- static void debug(String s, Throwable t) {
|
||||
+ protected static void debug(String s, Throwable t) {
|
||||
if(debug) {
|
||||
t.printStackTrace();
|
||||
debug(s);
|
@ -1,26 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_classes_sun_awt_OSInfo_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/classes/sun/awt/OSInfo.java.orig Tue Jan 29 09:37:22 2013
|
||||
+++ jdk/src/share/classes/sun/awt/OSInfo.java Tue Jan 29 09:36:15 2013
|
||||
@@ -39,6 +39,7 @@ public class OSInfo {
|
||||
WINDOWS,
|
||||
LINUX,
|
||||
SOLARIS,
|
||||
+ BSD,
|
||||
UNKNOWN
|
||||
}
|
||||
|
||||
@@ -98,6 +99,14 @@ public class OSInfo {
|
||||
|
||||
if (osName.contains("Solaris") || osName.contains("SunOS")) {
|
||||
return SOLARIS;
|
||||
+ }
|
||||
+
|
||||
+ if (osName.contains("BSD")) {
|
||||
+ return BSD;
|
||||
+ }
|
||||
+
|
||||
+ if (osName.contains("Darwin")) {
|
||||
+ return BSD;
|
||||
}
|
||||
|
||||
// determine another OS here
|
@ -1,16 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_classes_sun_net_spi_DefaultProxySelector_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
|
||||
Crash due to missing synchronization on gconf_client.
|
||||
Upstream CR 7188755.
|
||||
|
||||
--- jdk/src/share/classes/sun/net/spi/DefaultProxySelector.java.orig Fri Oct 26 14:26:02 2012
|
||||
+++ jdk/src/share/classes/sun/net/spi/DefaultProxySelector.java Mon Jan 28 20:54:44 2013
|
||||
@@ -435,6 +435,6 @@ public class DefaultProxySelector extends ProxySelecto
|
||||
return false;
|
||||
}
|
||||
|
||||
- private native static boolean init();
|
||||
- private native Proxy getSystemProxy(String protocol, String host);
|
||||
+ private synchronized native static boolean init();
|
||||
+ private synchronized native Proxy getSystemProxy(String protocol, String host);
|
||||
}
|
@ -1,11 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_instrument_InstrumentationImplNativeMethods_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/instrument/InstrumentationImplNativeMethods.c.orig Thu Jan 24 21:03:37 2013
|
||||
+++ jdk/src/share/instrument/InstrumentationImplNativeMethods.c Thu Jan 24 21:03:51 2013
|
||||
@@ -30,6 +30,7 @@
|
||||
#include "JPLISAssert.h"
|
||||
#include "Utilities.h"
|
||||
#include "JavaExceptions.h"
|
||||
+#include "FileSystemSupport.h" /* For uintptr_t */
|
||||
#include "sun_instrument_InstrumentationImpl.h"
|
||||
#include "typedefs.h"
|
||||
|
@ -1,19 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_native_com_sun_media_sound_Platform_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/native/com/sun/media/sound/Platform.c.orig Mon Jan 28 21:01:40 2013
|
||||
+++ jdk/src/share/native/com/sun/media/sound/Platform.c Mon Jan 28 21:11:56 2013
|
||||
@@ -99,5 +99,15 @@ JNIEXPORT jint JNICALL Java_com_sun_media_sound_Platfo
|
||||
return com_sun_media_sound_Platform_LIB_ALSA;
|
||||
}
|
||||
#endif
|
||||
+#ifdef __OpenBSD__
|
||||
+ switch (feature) {
|
||||
+ case com_sun_media_sound_Platform_FEATURE_MIDIIO:
|
||||
+ return com_sun_media_sound_Platform_LIB_MAIN;
|
||||
+ case com_sun_media_sound_Platform_FEATURE_PORTS:
|
||||
+ return com_sun_media_sound_Platform_LIB_MAIN;
|
||||
+ case com_sun_media_sound_Platform_FEATURE_DIRECT_AUDIO:
|
||||
+ return com_sun_media_sound_Platform_LIB_MAIN;
|
||||
+ }
|
||||
+#endif
|
||||
return 0;
|
||||
}
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_share_transport_socket_socketTransport_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/share/transport/socket/socketTransport.c.orig Tue Jan 29 11:45:11 2013
|
||||
+++ jdk/src/share/transport/socket/socketTransport.c Tue Jan 29 11:45:28 2013
|
||||
@@ -585,8 +585,6 @@ recv_fully(int f, char *buf, int len)
|
||||
while (nbytes < len) {
|
||||
int res = dbgsysRecv(f, buf + nbytes, len - nbytes, 0);
|
||||
if (res < 0) {
|
||||
- if (errno == EINTR)
|
||||
- continue;
|
||||
return res;
|
||||
} else if (res == 0) {
|
||||
break; /* eof, return nbytes which is less than len */
|
||||
@@ -603,8 +601,6 @@ send_fully(int f, char *buf, int len)
|
||||
while (nbytes < len) {
|
||||
int res = dbgsysSend(f, buf + nbytes, len - nbytes, 0);
|
||||
if (res < 0) {
|
||||
- if (errno == EINTR)
|
||||
- continue;
|
||||
return res;
|
||||
} else if (res == 0) {
|
||||
break; /* eof, return nbytes which is less than len */
|
@ -1,51 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_classes_sun_awt_X11_XWM_java,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/classes/sun/awt/X11/XWM.java.orig Fri Oct 26 14:26:15 2012
|
||||
+++ jdk/src/solaris/classes/sun/awt/X11/XWM.java Mon Jan 28 21:48:18 2013
|
||||
@@ -98,7 +98,8 @@ class XWM implements MWMConstants, XUtilConstants {
|
||||
ICE_WM = 10,
|
||||
METACITY_WM = 11,
|
||||
COMPIZ_WM = 12,
|
||||
- LG3D_WM = 13;
|
||||
+ LG3D_WM = 13,
|
||||
+ CWM_WM = 14;
|
||||
public String toString() {
|
||||
switch (WMID) {
|
||||
case NO_WM:
|
||||
@@ -125,6 +126,8 @@ class XWM implements MWMConstants, XUtilConstants {
|
||||
return "Compiz";
|
||||
case LG3D_WM:
|
||||
return "LookingGlass";
|
||||
+ case CWM_WM:
|
||||
+ return "CWM";
|
||||
case UNDETERMINED_WM:
|
||||
default:
|
||||
return "Undetermined WM";
|
||||
@@ -558,6 +561,10 @@ class XWM implements MWMConstants, XUtilConstants {
|
||||
return isNetWMName("LG3D");
|
||||
}
|
||||
|
||||
+ static boolean isCWM() {
|
||||
+ return isNetWMName("CWM");
|
||||
+ }
|
||||
+
|
||||
/*
|
||||
* Is Metacity running?
|
||||
*/
|
||||
@@ -570,7 +577,7 @@ class XWM implements MWMConstants, XUtilConstants {
|
||||
}
|
||||
|
||||
static boolean isNonReparentingWM() {
|
||||
- return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM);
|
||||
+ return (XWM.getWMID() == XWM.COMPIZ_WM || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -752,6 +759,8 @@ class XWM implements MWMConstants, XUtilConstants {
|
||||
awt_wmgr = XWM.COMPIZ_WM;
|
||||
} else if (isLookingGlass()) {
|
||||
awt_wmgr = LG3D_WM;
|
||||
+ } else if (isCWM()) {
|
||||
+ awt_wmgr = CWM_WM;
|
||||
} else if (doIsIceWM && isIceWM()) {
|
||||
awt_wmgr = XWM.ICE_WM;
|
||||
}
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_hpi_native_threads_include_threads_md_h,v 1.1 2013/03/19 19:26:45 kurt Exp $
|
||||
--- jdk/src/solaris/hpi/native_threads/include/threads_md.h.orig Sun Mar 10 12:10:32 2013
|
||||
+++ jdk/src/solaris/hpi/native_threads/include/threads_md.h Sun Mar 10 12:11:55 2013
|
||||
@@ -174,7 +174,7 @@ struct sys_thread {
|
||||
struct sys_thread *nextBlocked;
|
||||
#ifdef USE_PTHREADS
|
||||
int suspend_count;
|
||||
-#ifdef __linux__
|
||||
+#if defined(__linux__) || defined(__OpenBSD__)
|
||||
sem_t sem_suspended;
|
||||
sem_t sem_ready_to_suspend;
|
||||
sem_t sem_selfsuspend;
|
@ -1,25 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_hpi_native_threads_src_sys_api_td_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/hpi/native_threads/src/sys_api_td.c.orig Tue Jan 29 09:01:59 2013
|
||||
+++ jdk/src/solaris/hpi/native_threads/src/sys_api_td.c Tue Jan 29 09:18:50 2013
|
||||
@@ -39,10 +39,6 @@
|
||||
#include <sys/ioctl.h>
|
||||
#endif
|
||||
|
||||
-#ifdef __OpenBSD__
|
||||
-#include <sys/ioctl.h>
|
||||
-#endif
|
||||
-
|
||||
#include <sys/socket.h>
|
||||
#include <setjmp.h>
|
||||
#include <signal.h>
|
||||
@@ -58,10 +54,6 @@
|
||||
#include "mutex_md.h"
|
||||
|
||||
#if defined(__solaris__) && defined(NO_INTERRUPTIBLE_IO)
|
||||
-#error If there was no policy change, this could be a makefile error.
|
||||
-#endif
|
||||
-
|
||||
-#if defined(_ALLBSD_SOURCE) && defined(NO_INTERRUPTIBLE_IO)
|
||||
#error If there was no policy change, this could be a makefile error.
|
||||
#endif
|
||||
|
@ -1,683 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_hpi_native_threads_src_threads_bsd_c,v 1.1 2013/03/19 19:26:45 kurt Exp $
|
||||
--- jdk/src/solaris/hpi/native_threads/src/threads_bsd.c.orig Sun Mar 10 13:02:26 2013
|
||||
+++ jdk/src/solaris/hpi/native_threads/src/threads_bsd.c Sun Mar 10 12:58:07 2013
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
- * Copyright (c) 1998, 2004, Oracle and/or its affiliates. All rights reserved.
|
||||
+ * Copyright (c) 1999, 2000, 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
|
||||
@@ -23,381 +23,387 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
-#ifdef __APPLE__
|
||||
+/*
|
||||
+ * Implementation of notposix.h on Linux.
|
||||
+ */
|
||||
|
||||
-/* We need the mach API, which must be be included before any other system includes.
|
||||
- * Additionally, java and mach both define thread_state_t, so temporarily redefine it. */
|
||||
-#define thread_state_t mach_thread_state_t
|
||||
-#include <mach/mach.h>
|
||||
-#undef thread_state_t
|
||||
+#include <pthread.h>
|
||||
+#include <signal.h>
|
||||
+#include <string.h>
|
||||
+#include <unistd.h>
|
||||
+#include <stdlib.h>
|
||||
+#include <fcntl.h>
|
||||
+#include <time.h>
|
||||
|
||||
-#endif
|
||||
-
|
||||
#include "hpi_impl.h"
|
||||
#include "monitor_md.h"
|
||||
#include "threads_md.h"
|
||||
#include "np.h"
|
||||
|
||||
-#include <sys/types.h>
|
||||
-#include <sys/sysctl.h>
|
||||
+#undef LOG_THREADS
|
||||
|
||||
-#include <pthread.h>
|
||||
-#if defined(__FreeBSD__) || defined(__OpenBSD__)
|
||||
-#include <pthread_np.h>
|
||||
-#endif
|
||||
-#ifdef __NetBSD__
|
||||
-#include <errno.h>
|
||||
-#define pthread_attr_get_np(a, b) 0
|
||||
-#define pthread_suspend_all_np() 0
|
||||
-#define pthread_resume_all_np() 0
|
||||
-#endif
|
||||
+/* Global lock used when calling np_suspend and np_resume */
|
||||
+static pthread_mutex_t sr_lock;
|
||||
|
||||
-#include <time.h>
|
||||
-#include <string.h>
|
||||
-#include <signal.h>
|
||||
-#include <sys/signal.h>
|
||||
-#include <sys/resource.h>
|
||||
-#include <stdlib.h>
|
||||
-#include <string.h>
|
||||
-#include <errno.h>
|
||||
+/* Semaphore used to acknowledge when the handler has received HANDLER_SIG */
|
||||
+static sem_t sr_sem;
|
||||
|
||||
-/*
|
||||
- * Suspend said thread. Used to implement java.lang.Thread.suspend(),
|
||||
- * which is deprecated.
|
||||
- */
|
||||
-int
|
||||
-np_suspend(sys_thread_t *tid)
|
||||
+/* The tid of the thread being suspended/resumed */
|
||||
+static sys_thread_t *sr_tid;
|
||||
+
|
||||
+int sr_sigsusp;
|
||||
+int sr_sigresu;
|
||||
+
|
||||
+static void prtsigset(char *s, sigset_t *set)
|
||||
{
|
||||
-#ifdef __APPLE__
|
||||
- if (thread_suspend(pthread_mach_thread_np(tid->sys_thread)) == KERN_SUCCESS)
|
||||
- return SYS_OK;
|
||||
- else
|
||||
- return SYS_ERR;
|
||||
-#else
|
||||
- return pthread_suspend_np(tid->sys_thread);
|
||||
-#endif
|
||||
+ int sig;
|
||||
+ dprintf(2, "%s:", s);
|
||||
+ for (sig = 1; sig < _NSIG; sig++) {
|
||||
+ if (sigismember(set, sig)) {
|
||||
+ dprintf(2, " %d", sig);
|
||||
+ }
|
||||
+ }
|
||||
+ dprintf(2, "\n");
|
||||
}
|
||||
|
||||
/*
|
||||
- * Resume a suspended thread. Used to implement java.lang.Thread.resume(),
|
||||
- * which is deprecated.
|
||||
+ * Handler function invoked when a thread's execution is suspended
|
||||
+ * We have to be careful that only async-safe functions are
|
||||
+ * called here. I'm not even sure if calling sysThreadSelf is safe so
|
||||
+ * we temporarily stash SP in a global variable instead.
|
||||
*/
|
||||
-int
|
||||
-np_continue(sys_thread_t *tid)
|
||||
-{
|
||||
-#ifdef __APPLE__
|
||||
- if (thread_resume(pthread_mach_thread_np(tid->sys_thread)) == KERN_SUCCESS)
|
||||
- return SYS_OK;
|
||||
- else
|
||||
- return SYS_ERR;
|
||||
+static void
|
||||
+#ifdef SA_SIGINFO
|
||||
+susp_handler(int sig, siginfo_t* info, void* arg)
|
||||
#else
|
||||
- return pthread_resume_np(tid->sys_thread);
|
||||
+susp_handler(int sig)
|
||||
#endif
|
||||
+{
|
||||
+ sys_thread_t *tid = sr_tid;
|
||||
+ sigset_t set;
|
||||
+ /* Save the current SP */
|
||||
+ tid->sp = &tid;
|
||||
+ sem_post(&sr_sem);
|
||||
+ sigfillset(&set);
|
||||
+ sigdelset(&set,(sr_sigresu));
|
||||
+ /* block until we receive resume signal. */
|
||||
+ sigsuspend(&set);
|
||||
}
|
||||
|
||||
-/*
|
||||
- * If there is any initialization is required by the non-POSIX parts.
|
||||
- */
|
||||
-void np_initialize_thread(sys_thread_t *tid)
|
||||
+static void
|
||||
+#ifdef SA_SIGINFO
|
||||
+resu_handler(int sig, siginfo_t* info, void* arg)
|
||||
+#else
|
||||
+resu_handler(int sig)
|
||||
+#endif
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
-
|
||||
/*
|
||||
- * Internal helper function to get stack information about specified thread.
|
||||
+ * Initialize signal handlers for suspend and resume}.
|
||||
*/
|
||||
-#ifdef __APPLE__
|
||||
-static int
|
||||
-get_stackinfo(pthread_t tid, void **addr, long *sizep)
|
||||
+int
|
||||
+np_initialize()
|
||||
{
|
||||
- void *stacktop = pthread_get_stackaddr_np(tid);
|
||||
- *sizep = pthread_get_stacksize_np(tid);
|
||||
- *addr = stacktop - *sizep;
|
||||
+ struct sigaction act;
|
||||
+ char *s;
|
||||
+ int err;
|
||||
|
||||
- return (SYS_OK);
|
||||
-}
|
||||
-#elif defined(__OpenBSD__)
|
||||
-static int
|
||||
-get_stackinfo(pthread_t tid, void **addr, long *sizep)
|
||||
-{
|
||||
- stack_t ss;
|
||||
+ /* Signal numbers used to suspend and resume */
|
||||
+#if __GLIBC__ == 2 && __GLIBC_MINOR__ == 0
|
||||
+#ifdef SIGUNUSED
|
||||
+ sr_sigsusp = SIGUNUSED;
|
||||
+#else
|
||||
+ sr_sigsusp = SIGLOST;
|
||||
+#endif
|
||||
+#ifdef SIGPWR
|
||||
+ sr_sigresu = SIGPWR;
|
||||
+#else
|
||||
+ sr_sigresu = SIGXFSZ;
|
||||
+#endif
|
||||
+#else
|
||||
+ sr_sigsusp = SIGXCPU;
|
||||
+ sr_sigresu = SIGXFSZ;
|
||||
+#endif
|
||||
|
||||
- if (pthread_stackseg_np(tid, &ss) == 0) {
|
||||
- *addr = (void *)(ss.ss_sp) - ss.ss_size;
|
||||
- *sizep = (long)(ss.ss_size);
|
||||
- return SYS_OK;
|
||||
- } else {
|
||||
- return SYS_ERR; /* pthreads_stackseg_np failed. */
|
||||
+ /* Set up signal handler for suspend and resume */
|
||||
+#if defined(SA_SIGINFO) && !defined(__sparc__)
|
||||
+ act.sa_handler = 0;
|
||||
+ act.sa_sigaction = susp_handler;
|
||||
+#else
|
||||
+ act.sa_handler = (__sighandler_t) susp_handler;
|
||||
+#endif
|
||||
+#ifdef SA_SIGINFO
|
||||
+ act.sa_flags = SA_RESTART | SA_SIGINFO;
|
||||
+#else
|
||||
+ act.sa_flags = SA_RESTART;
|
||||
+#endif
|
||||
+ sigfillset(&act.sa_mask);
|
||||
+ if (sigaction(sr_sigsusp, &act, 0) == -1) {
|
||||
+ return -1;
|
||||
}
|
||||
-}
|
||||
+#if defined(SA_SIGINFO) && !defined(__sparc__)
|
||||
+ act.sa_handler = 0;
|
||||
+ act.sa_sigaction = resu_handler;
|
||||
#else
|
||||
-static int
|
||||
-get_stackinfo(pthread_t tid, pthread_attr_t attr, void **addr, long *sizep)
|
||||
-{
|
||||
- size_t s;
|
||||
- void *p;
|
||||
- int ret = SYS_ERR;
|
||||
-
|
||||
- if (pthread_attr_get_np(tid, &attr) != 0)
|
||||
- goto err;
|
||||
- if (pthread_attr_getstackaddr(&attr, &p) != 0)
|
||||
- goto err;
|
||||
- if (pthread_attr_getstacksize(&attr, &s) != 0)
|
||||
- goto err;
|
||||
- *addr = p;
|
||||
- *sizep = s;
|
||||
- ret = SYS_OK;
|
||||
-err:
|
||||
-
|
||||
- return (ret);
|
||||
-}
|
||||
+ act.sa_handler = (__sighandler_t) resu_handler;
|
||||
#endif
|
||||
-
|
||||
-/*
|
||||
- * Get the stack start address, and max stack size for the current thread.
|
||||
- */
|
||||
-int
|
||||
-np_stackinfo(void **addr, long *size)
|
||||
-{
|
||||
-#if defined(__OpenBSD__) || defined(__APPLE__)
|
||||
- return(get_stackinfo(pthread_self(), addr, size));
|
||||
+#ifdef SA_SIGINFO
|
||||
+ act.sa_flags = SA_SIGINFO;
|
||||
#else
|
||||
- pthread_attr_t attr;
|
||||
- int ret = SYS_ERR;
|
||||
+ act.sa_flags = 0;
|
||||
+#endif
|
||||
+ sigfillset(&act.sa_mask);
|
||||
+ if (sigaction(sr_sigresu, &act, 0) == -1) {
|
||||
+ return -1;
|
||||
+ }
|
||||
|
||||
- if (pthread_attr_init(&attr) == 0) {
|
||||
- ret = get_stackinfo(pthread_self(), attr, addr, size);
|
||||
- pthread_attr_destroy(&attr);
|
||||
+ /* Initialize semaphore used by np_{suspend/resume} */
|
||||
+ if (sem_init(&sr_sem, 0, 0) == -1) {
|
||||
+ return SYS_ERR;
|
||||
}
|
||||
|
||||
- return (ret);
|
||||
-#endif
|
||||
-}
|
||||
+ /* Initialize mutex used by np_{suspend/resume} */
|
||||
+ err = mutexInit(&sr_lock);
|
||||
+ sysAssert(err == 0);
|
||||
|
||||
-/*
|
||||
- * On Bsd when doing CPU profiling, the threads are bound.
|
||||
- */
|
||||
-void
|
||||
-np_profiler_init(sys_thread_t *tid)
|
||||
-{
|
||||
+ return SYS_OK;
|
||||
}
|
||||
|
||||
int
|
||||
-np_profiler_suspend(sys_thread_t *tid)
|
||||
+np_initial_suspend(sys_thread_t* tid)
|
||||
{
|
||||
- return np_suspend(tid);
|
||||
-}
|
||||
+ int count;
|
||||
|
||||
-int
|
||||
-np_profiler_continue(sys_thread_t *tid)
|
||||
-{
|
||||
- return np_continue(tid);
|
||||
-}
|
||||
+ tid->selfsuspended = (tid == sysThreadSelf());
|
||||
+ sysAssert(tid->selfsuspended);
|
||||
|
||||
-bool_t
|
||||
-np_profiler_thread_is_running(sys_thread_t *tid)
|
||||
-{
|
||||
- return TRUE;
|
||||
+ count = tid->suspend_count++;
|
||||
+ sysAssert(count == 0);
|
||||
+
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2,
|
||||
+ "[Initial self-suspend [tid = %ld, sys_thread = %ld]\n",
|
||||
+ pthread_self(), tid->sys_thread);
|
||||
+#endif
|
||||
+
|
||||
+ /* Order should not matter but doing the post first should be faster */
|
||||
+ sem_post(&tid->sem_suspended);
|
||||
+ do {
|
||||
+ sem_wait(&tid->sem_selfsuspend);
|
||||
+ } while (tid->selfsuspended); /* paranoid */
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
-np_initialize()
|
||||
+np_suspend(sys_thread_t *tid)
|
||||
{
|
||||
- return SYS_OK;
|
||||
-}
|
||||
+ int count, ret = 0;
|
||||
|
||||
-/* prototypes */
|
||||
+ int err = mutexLock(&sr_lock);
|
||||
+ sysAssert(err == 0);
|
||||
|
||||
-static void record_thread_regs();
|
||||
+ tid->selfsuspended = (tid == sysThreadSelf());
|
||||
|
||||
-/*
|
||||
- * Suspend all other threads, and record their contexts (register
|
||||
- * set or stack pointer) into the sys_thread structure, so that a
|
||||
- * garbage collect can be run.
|
||||
- */
|
||||
-#ifdef __APPLE__
|
||||
-int
|
||||
-np_single(void)
|
||||
-{
|
||||
- sysAssert(SYS_QUEUE_LOCKED(sysThreadSelf()));
|
||||
+ count = tid->suspend_count++;
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Suspending fromtid = %ld, tid = %ld, pid = %d, count = %d]\n",
|
||||
+ pthread_self(), tid->sys_thread, tid->lwp_id, count);
|
||||
+#endif
|
||||
+ if (count == 0) {
|
||||
+ if (tid->selfsuspended) {
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2,
|
||||
+ "[Self-suspending [tid = %ld, sys_thread = %ld]\n",
|
||||
+ pthread_self(), tid->sys_thread);
|
||||
+#endif
|
||||
+ mutexUnlock(&sr_lock);
|
||||
+ do {
|
||||
+ sem_wait(&tid->sem_selfsuspend);
|
||||
+ } while (tid->selfsuspended);
|
||||
+ /* [jk] What is the correct return value here?
|
||||
+ There was no error, but when we return the thread
|
||||
+ has already been resumed. */
|
||||
+ return SYS_OK;
|
||||
|
||||
- /* Iterate over all the threads in the task, suspending each one.
|
||||
- * We have to loop until no new threads appear, and all are suspended */
|
||||
- mach_port_t self = pthread_mach_thread_np(pthread_self());
|
||||
+ } else {
|
||||
+ sr_tid = tid;
|
||||
+ ret = pthread_kill(tid->sys_thread, sr_sigsusp);
|
||||
+ if (ret == 0) {
|
||||
+ sem_wait(&sr_sem);
|
||||
+ }
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2,
|
||||
+ "[Suspended fromtid = %ld, pthread_kill(%ld, %d) = %d]\n",
|
||||
+ pthread_self(), tid->sys_thread, sr_sigsusp, ret);
|
||||
+#endif
|
||||
+ }
|
||||
+ }
|
||||
|
||||
+ err = mutexUnlock(&sr_lock);
|
||||
+ sysAssert(err == 0);
|
||||
|
||||
- mach_msg_type_number_t cur_count, prev_count, i, j, k;
|
||||
- thread_act_array_t cur_list, prev_list;
|
||||
- bool_t changes;
|
||||
+ return ret == 0 ? SYS_OK : SYS_ERR;
|
||||
+}
|
||||
|
||||
- changes = TRUE;
|
||||
- cur_count = prev_count = 0;
|
||||
- cur_list = prev_list = NULL;
|
||||
- do {
|
||||
- /* Get a list of all threads */
|
||||
- if (task_threads(self, &cur_list, &cur_count) != KERN_SUCCESS)
|
||||
- return SYS_ERR;
|
||||
+int
|
||||
+np_continue(sys_thread_t *tid)
|
||||
+{
|
||||
+ int count, ret = 0;
|
||||
|
||||
- /* For each thread, check if it was previously suspended. If it
|
||||
- * was not, suspend it now, and set the changes flag to 'true' */
|
||||
- changes = FALSE;
|
||||
- for (i = 0; i < cur_count; i++) {
|
||||
- mach_msg_type_number_t j;
|
||||
- bool_t found = FALSE;
|
||||
+ int err = mutexLock(&sr_lock);
|
||||
+ sysAssert(err == 0);
|
||||
|
||||
- /* Check the previous thread list */
|
||||
- for (j = 0; j < prev_count; j++) {
|
||||
- if (prev_list[j] == cur_list[i]) {
|
||||
- found = TRUE;
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- /* If the thread wasn't previously suspended, suspend it now and set the change flag */
|
||||
- if (found) {
|
||||
- /* Don't suspend ourselves! */
|
||||
- if (cur_list[i] != self)
|
||||
- thread_suspend(cur_list[i]);
|
||||
- changes = TRUE;
|
||||
- }
|
||||
+ count = --tid->suspend_count;
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Resuming fromtid = %ld, tid = %ld, pid = %d, count = %d]\n",
|
||||
+ pthread_self(), tid->sys_thread, tid->lwp_id, count);
|
||||
+#endif
|
||||
+ if (count == 0) {
|
||||
+ if (tid->selfsuspended) {
|
||||
+ tid->selfsuspended = 0;
|
||||
+ sem_post(&tid->sem_selfsuspend);
|
||||
+ } else {
|
||||
+ sr_tid = tid;
|
||||
+ ret = pthread_kill(tid->sys_thread, sr_sigresu);
|
||||
}
|
||||
-
|
||||
- /* Deallocate the previous list, if necessary */
|
||||
- for (k = 0; k < prev_count; k++)
|
||||
- mach_port_deallocate(self, prev_list[k]);
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Resumed fromtid = %ld, pthread_kill(%ld, %d) = %d]\n",
|
||||
+ pthread_self(), tid->sys_thread, sr_sigresu, ret);
|
||||
+#endif
|
||||
+ } else if (count < 0) {
|
||||
+ /* Ignore attempts to resume a thread that has not been suspended */
|
||||
+ tid->suspend_count = 0;
|
||||
+ }
|
||||
|
||||
- vm_deallocate(self, (vm_address_t)prev_list, sizeof(thread_t) * prev_count);
|
||||
+ err = mutexUnlock(&sr_lock);
|
||||
+ sysAssert(err == 0);
|
||||
|
||||
- /* Set up the 'new' list for the next loop iteration */
|
||||
- prev_list = cur_list;
|
||||
- prev_count = cur_count;
|
||||
- } while (changes);
|
||||
+ return ret == 0 ? SYS_OK : SYS_ERR;
|
||||
+}
|
||||
|
||||
- /* Deallocate the last-allocated list. */
|
||||
- for (i = 0; i < prev_count; i++)
|
||||
- mach_port_deallocate(self, prev_list[i]);
|
||||
+/*
|
||||
+ * Get the stack base and size.
|
||||
+ */
|
||||
+int
|
||||
+np_stackinfo(void **addr, long *size)
|
||||
+{
|
||||
+ /* For now assume stack is 2 meg, from internals.h. */
|
||||
+#define STACK_SIZE (2 * 1024 * 1024)
|
||||
+ void *p;
|
||||
+ char *sp = (char *)&p; /* rougly %esp */
|
||||
|
||||
- vm_deallocate(self, (vm_address_t)prev_list, sizeof(thread_t) * prev_count);
|
||||
+ *addr = (void *)(((unsigned long)sp | (STACK_SIZE-1))+1) - 1;
|
||||
+ *size = STACK_SIZE;
|
||||
|
||||
- /* Record registers and return */
|
||||
- record_thread_regs();
|
||||
return SYS_OK;
|
||||
}
|
||||
-#else
|
||||
+
|
||||
+typedef unsigned long ulong_t;
|
||||
+#define VALID_SP(sp, bottom, top) \
|
||||
+ (((ulong_t)(sp)) < ((ulong_t)(bottom)) && ((ulong_t)(sp)) > ((ulong_t)(top)))
|
||||
+
|
||||
+/*
|
||||
+ * Go into single threaded mode for GC.
|
||||
+ */
|
||||
int
|
||||
-np_single(void)
|
||||
+np_single()
|
||||
{
|
||||
- sysAssert(SYS_QUEUE_LOCKED(sysThreadSelf()));
|
||||
+ sys_thread_t *tid;
|
||||
+ pthread_t me = pthread_self();
|
||||
+ int i;
|
||||
|
||||
- pthread_suspend_all_np();
|
||||
- record_thread_regs();
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Entering np_single: thread count = %d]\n", ActiveThreadCount);
|
||||
+#endif
|
||||
+ /* Stop all other threads. */
|
||||
+ tid = ThreadQueue;
|
||||
+ for (i = 0; i < ActiveThreadCount && tid != 0; i++) {
|
||||
+ if ((tid->sys_thread != me) && (tid->state != SUSPENDED)) {
|
||||
+ np_suspend(tid);
|
||||
+ sysAssert(VALID_SP(tid->sp, tid->stack_bottom, tid->stack_top));
|
||||
+ tid->onproc = FALSE; /* REMIND: Might not need this */
|
||||
+ }
|
||||
+ tid = tid->next;
|
||||
+ }
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Leaving np_single]\n");
|
||||
+#endif
|
||||
return SYS_OK;
|
||||
}
|
||||
-#endif
|
||||
|
||||
/*
|
||||
- * Continue threads suspended earlier.
|
||||
+ * Per thread initialization.
|
||||
*/
|
||||
-#ifdef __APPLE__
|
||||
void
|
||||
-np_multi(void)
|
||||
+np_initialize_thread(sys_thread_t *tid)
|
||||
{
|
||||
- sysAssert(SYS_QUEUE_LOCKED(sysThreadSelf()));
|
||||
+ sigset_t set;
|
||||
|
||||
- mach_msg_type_number_t thr_count, i;
|
||||
- thread_act_array_t thr_list;
|
||||
- mach_port_t self;
|
||||
+ /* Block SIGQUIT so that it can be handled by the SIGQUIT handler thread */
|
||||
+ sigemptyset(&set);
|
||||
+ sigaddset(&set, SIGQUIT);
|
||||
+ pthread_sigmask(SIG_BLOCK, &set, 0);
|
||||
+ /* Set process id */
|
||||
+ tid->lwp_id = getpid();
|
||||
+ tid->suspend_count = 0;
|
||||
|
||||
- self = pthread_mach_thread_np(pthread_self());
|
||||
+ /* Semaphore used for self-suspension */
|
||||
+ sem_init(&tid->sem_selfsuspend, 0, 0);
|
||||
+ tid->selfsuspended = 0;
|
||||
|
||||
- /* Get a list of all threads. This has to succeed! */
|
||||
- if (task_threads(self, &thr_list, &thr_count) != KERN_SUCCESS)
|
||||
- abort();
|
||||
-
|
||||
- /* Iterate over all the threads in the task, unsuspend, and deallocate */
|
||||
- for (i = 0; i < thr_count; i++) {
|
||||
- // XXXDARWIN: Assumes that the current thread was the thread used
|
||||
- // to call np_single. Is that true?
|
||||
-
|
||||
- if (thr_list[i] != self)
|
||||
- thread_resume(thr_list[i]);
|
||||
-
|
||||
- mach_port_deallocate(self, thr_list[i]);
|
||||
- }
|
||||
-
|
||||
- vm_deallocate(self, (vm_address_t) thr_list, sizeof(thread_t) * thr_count);
|
||||
+#ifdef LOG_THREADS
|
||||
+ dprintf(2, "[Init thread, tid = %ld, pid = %d, base = %p, size = %lu]\n",
|
||||
+ pthread_self(), tid->lwp_id, tid->stack_bottom, tid->stack_size);
|
||||
+#endif
|
||||
}
|
||||
-#else
|
||||
+
|
||||
void
|
||||
-np_multi(void)
|
||||
+np_free_thread(sys_thread_t *tid)
|
||||
{
|
||||
- sysAssert(SYS_QUEUE_LOCKED(sysThreadSelf()));
|
||||
- pthread_resume_all_np();
|
||||
+ sem_destroy(&tid->sem_selfsuspend);
|
||||
}
|
||||
-#endif
|
||||
|
||||
/*
|
||||
- * BSDNOTE: Looking to linux implementation -- the only important register
|
||||
- * to set up is tid->sp (stack pointer) now. But it may change when
|
||||
- * FreeBSD and JVM will switch to KSEs. In this case we'll also need to
|
||||
- * care about ucontext I think.
|
||||
- *
|
||||
- * --phantom
|
||||
- *
|
||||
- * XXXBSD: There's a problem with this implemenation. Currently it sets
|
||||
- * the tid->sp to the bottom of the thread stack and not the current stack
|
||||
- * pointer of the suspended thread. Both solaris and linux use the current
|
||||
- * thread stack pointer. -- kurt
|
||||
- *
|
||||
- * Assumes stacks grow down from high to low memory. True on sparc and Intel.
|
||||
+ * Recover from single threaded mode after GC.
|
||||
*/
|
||||
-
|
||||
-static void
|
||||
-record_thread_regs()
|
||||
+void
|
||||
+np_multi()
|
||||
{
|
||||
- void *addr;
|
||||
- long sz;
|
||||
-
|
||||
- sys_thread_t *tid;
|
||||
int i;
|
||||
- int sp;
|
||||
+ sys_thread_t *tid;
|
||||
+ pthread_t me = pthread_self();
|
||||
|
||||
-#ifndef __OpenBSD__
|
||||
- pthread_attr_t attr;
|
||||
- int attr_inited;
|
||||
- attr_inited = pthread_attr_init(&attr) == 0;
|
||||
-#endif
|
||||
-
|
||||
tid = ThreadQueue;
|
||||
for (i = 0; i < ActiveThreadCount && tid != 0; i++) {
|
||||
- if (tid->onproc != TRUE) {
|
||||
- int i;
|
||||
-
|
||||
- if (tid->sys_thread != 0) {
|
||||
- /* if thread has already been initialized */
|
||||
-#if defined(__OpenBSD__) || defined(__APPLE__)
|
||||
- if (get_stackinfo(tid->sys_thread, &addr, &sz) == SYS_OK)
|
||||
-#else
|
||||
- if (get_stackinfo(tid->sys_thread, attr, &addr, &sz) == SYS_OK)
|
||||
-#endif
|
||||
- tid->sp = addr;
|
||||
- else
|
||||
- tid->sp = 0;
|
||||
- } else {
|
||||
- /*
|
||||
- * thread is still in the process of being initalized.
|
||||
- * So GC should not care about this thread. Just
|
||||
- * set its sp to 0, and this will force GC to ignore it.
|
||||
- */
|
||||
- tid->sp = 0;
|
||||
- }
|
||||
+ if ((tid->sys_thread != me) && (tid->state != SUSPENDED)) {
|
||||
+ np_continue(tid);
|
||||
}
|
||||
tid = tid->next;
|
||||
}
|
||||
-#ifndef __OpenBSD__
|
||||
- if (attr_inited)
|
||||
- pthread_attr_destroy(&attr);
|
||||
-#endif
|
||||
+}
|
||||
+
|
||||
+void
|
||||
+np_profiler_init(sys_thread_t *tid)
|
||||
+{
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+np_profiler_suspend(sys_thread_t *tid)
|
||||
+{
|
||||
+ return np_suspend(tid);
|
||||
+}
|
||||
+
|
||||
+int
|
||||
+np_profiler_continue(sys_thread_t *tid)
|
||||
+{
|
||||
+ return np_continue(tid);
|
||||
+}
|
||||
+
|
||||
+bool_t
|
||||
+np_profiler_thread_is_running(sys_thread_t *tid)
|
||||
+{
|
||||
+ return TRUE;
|
||||
}
|
@ -1,32 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_instrument_EncodingSupport_md_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/instrument/EncodingSupport_md.c.orig Mon Jan 28 22:27:56 2013
|
||||
+++ jdk/src/solaris/instrument/EncodingSupport_md.c Mon Jan 28 22:28:23 2013
|
||||
@@ -28,10 +28,7 @@
|
||||
#include <string.h>
|
||||
#include <ctype.h>
|
||||
#include <locale.h>
|
||||
-#ifndef __OpenBSD__
|
||||
-#define HAVE_NL_LANGINFO
|
||||
#include <langinfo.h>
|
||||
-#endif
|
||||
#include <iconv.h>
|
||||
|
||||
/* Routines to convert back and forth between Platform Encoding and UTF-8 */
|
||||
@@ -66,7 +63,6 @@ utfInitialize(void)
|
||||
/* Set the locale from the environment */
|
||||
(void)setlocale(LC_ALL, "");
|
||||
|
||||
-#ifdef HAVE_NL_LANGINFO
|
||||
/* Get the codeset name */
|
||||
codeset = (char*)nl_langinfo(CODESET);
|
||||
if ( codeset == NULL || codeset[0] == 0 ) {
|
||||
@@ -81,9 +77,6 @@ utfInitialize(void)
|
||||
UTF_DEBUG(("NO iconv() being used because it is not needed\n"));
|
||||
return;
|
||||
}
|
||||
-#else
|
||||
- codeset = "ISO-8859-1";
|
||||
-#endif
|
||||
|
||||
/* Open conversion descriptors */
|
||||
iconvToPlatform = iconv_open(codeset, "UTF-8");
|
@ -1,11 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_instrument_FileSystemSupport_md_h,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/instrument/FileSystemSupport_md.h.orig Thu Jan 24 21:09:27 2013
|
||||
+++ jdk/src/solaris/instrument/FileSystemSupport_md.h Thu Jan 24 21:10:02 2013
|
||||
@@ -23,5 +23,7 @@
|
||||
* questions.
|
||||
*/
|
||||
|
||||
+#include <stddef.h>
|
||||
+#include <stdint.h> /* For uintprt_t */
|
||||
#include <stdlib.h>
|
||||
#include <sys/param.h> /* For MAXPATHLEN */
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_javavm_export_jvm_md_h,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/javavm/export/jvm_md.h.orig Thu Jan 24 20:54:32 2013
|
||||
+++ jdk/src/solaris/javavm/export/jvm_md.h Thu Jan 24 20:54:58 2013
|
||||
@@ -34,6 +34,8 @@
|
||||
#include <dirent.h> /* For DIR */
|
||||
#include <sys/param.h> /* For MAXPATHLEN */
|
||||
#include <unistd.h> /* For F_OK, R_OK, W_OK */
|
||||
+#include <stddef.h> /* For ptrdiff_t */
|
||||
+#include <stdint.h> /* For uintptr_t */
|
||||
|
||||
#define JNI_ONLOAD_SYMBOLS {"JNI_OnLoad"}
|
||||
#define JNI_ONUNLOAD_SYMBOLS {"JNI_OnUnload"}
|
@ -1,12 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_javavm_include_typedefs_md_h,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/javavm/include/typedefs_md.h.orig Mon Jan 28 13:10:09 2013
|
||||
+++ jdk/src/solaris/javavm/include/typedefs_md.h Mon Jan 28 14:20:40 2013
|
||||
@@ -33,7 +33,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
-#ifdef __linux__
|
||||
+#if defined(__linux__) || defined(_ALLBSD_SOURCE)
|
||||
#include <stdint.h>
|
||||
#define HAVE_INTPTR_T
|
||||
#define _UINT64_T
|
@ -1,23 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_common_gdefs_md_h,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/native/common/gdefs_md.h.orig Thu Jan 24 22:20:51 2013
|
||||
+++ jdk/src/solaris/native/common/gdefs_md.h Thu Jan 24 22:22:00 2013
|
||||
@@ -24,15 +24,11 @@
|
||||
*/
|
||||
|
||||
/*
|
||||
- * Solaris dependent type definitions includes intptr_t, etc
|
||||
+ * Solaris/linux dependent type definitions includes intptr_t, etc
|
||||
*/
|
||||
|
||||
+#include <stddef.h>
|
||||
+#include <stdint.h> /* For uintptr_t */
|
||||
+#include <stdlib.h>
|
||||
|
||||
#include <sys/types.h>
|
||||
-/*
|
||||
- * Linux version of <sys/types.h> does not define intptr_t
|
||||
- */
|
||||
-#ifdef __linux__
|
||||
-#include <stdint.h>
|
||||
-#include <malloc.h>
|
||||
-#endif /* __linux__ */
|
@ -1,70 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_java_lang_UNIXProcess_md_c,v 1.2 2013/04/15 03:01:06 kurt Exp $
|
||||
--- jdk/src/solaris/native/java/lang/UNIXProcess_md.c.orig Sun Apr 14 20:25:35 2013
|
||||
+++ jdk/src/solaris/native/java/lang/UNIXProcess_md.c Sun Apr 14 20:29:34 2013
|
||||
@@ -86,6 +86,12 @@
|
||||
|
||||
#define FAIL_FILENO (STDERR_FILENO + 1)
|
||||
|
||||
+#define RESTARTABLE(_cmd, _result) do { \
|
||||
+ do { \
|
||||
+ _result = _cmd; \
|
||||
+ } while((_result == -1) && (errno == EINTR)); \
|
||||
+} while(0)
|
||||
+
|
||||
static void
|
||||
setSIGCHLDHandler(JNIEnv *env)
|
||||
{
|
||||
@@ -327,19 +333,12 @@ jdk_fork_wrapper()
|
||||
#endif /* __FreeBSD__ */
|
||||
|
||||
#if defined(__OpenBSD__)
|
||||
-/*
|
||||
- * Directly call _thread_sys_closefrom() so the child process
|
||||
- * doesn't reset the parrent's file descriptors to be blocking.
|
||||
- * This function is only called from the child process which
|
||||
- * is single threaded and about to call execvp() so it is
|
||||
- * safe to bypass the threaded closefrom().
|
||||
- */
|
||||
-int _thread_sys_closefrom(int);
|
||||
-
|
||||
static int
|
||||
closeDescriptors(void)
|
||||
{
|
||||
- return _thread_sys_closefrom(FAIL_FILENO + 1);
|
||||
+ int err;
|
||||
+ RESTARTABLE(closefrom(FAIL_FILENO + 1), err);
|
||||
+ return err;
|
||||
}
|
||||
|
||||
#else
|
||||
@@ -678,30 +677,6 @@ Java_java_lang_UNIXProcess_forkAndExec(JNIEnv *env,
|
||||
|
||||
if (resultPid == 0) {
|
||||
/* Child process */
|
||||
-
|
||||
-
|
||||
-#ifdef __OpenBSD__
|
||||
-// XXXBSD: Work-around userland pthread implementation issue.
|
||||
-// Closing file descriptors will reset them to be blocking.
|
||||
-// This is problematic for the parent when it attemts to use
|
||||
-// the blocking fd and deadlocks. Setting them to non-blocking
|
||||
-// in the child prevents the close/dup2 from resetting them.
|
||||
- {
|
||||
- int flags;
|
||||
- flags = fcntl(STDIN_FILENO, F_GETFL, NULL);
|
||||
- if (flags != -1)
|
||||
- fcntl(STDIN_FILENO, F_SETFL, flags | O_NONBLOCK);
|
||||
-
|
||||
- flags = fcntl(STDOUT_FILENO, F_GETFL, NULL);
|
||||
- if (flags != -1)
|
||||
- fcntl(STDOUT_FILENO, F_SETFL, flags | O_NONBLOCK);
|
||||
-
|
||||
- flags = fcntl(STDERR_FILENO, F_GETFL, NULL);
|
||||
- if (flags != -1)
|
||||
- fcntl(STDOUT_FILENO, F_SETFL, flags | O_NONBLOCK);
|
||||
- }
|
||||
-#endif
|
||||
-
|
||||
|
||||
/* Close the parent sides of the pipe.
|
||||
Give the child sides of the pipes the right fileno's.
|
@ -1,11 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_java_net_NetworkInterface_c,v 1.1 2013/10/16 14:12:21 bluhm Exp $
|
||||
--- jdk/src/solaris/native/java/net/NetworkInterface.c.orig Thu Sep 5 02:33:44 2013
|
||||
+++ jdk/src/solaris/native/java/net/NetworkInterface.c Thu Sep 5 19:39:48 2013
|
||||
@@ -55,6 +55,7 @@
|
||||
#include <net/if_var.h>
|
||||
#elif defined(__OpenBSD__)
|
||||
#include <netinet/if_ether.h>
|
||||
+#include <netinet6/in6_var.h>
|
||||
#endif
|
||||
#include <net/if_dl.h>
|
||||
#include <netinet/in_var.h>
|
@ -1,39 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_java_net_PlainDatagramSocketImpl_c,v 1.1 2013/02/02 17:41:18 kurt Exp $
|
||||
--- jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c.orig Fri Feb 1 11:16:47 2013
|
||||
+++ jdk/src/solaris/native/java/net/PlainDatagramSocketImpl.c Fri Feb 1 12:52:14 2013
|
||||
@@ -1338,7 +1338,7 @@ static void setMulticastInterface(JNIEnv *env, jobject
|
||||
/*
|
||||
* value is an InetAddress.
|
||||
*/
|
||||
-#ifdef __solaris__
|
||||
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
|
||||
if (ipv6_available()) {
|
||||
mcast_set_if_by_addr_v6(env, this, fd, value);
|
||||
} else {
|
||||
@@ -1357,7 +1357,7 @@ static void setMulticastInterface(JNIEnv *env, jobject
|
||||
/*
|
||||
* value is a NetworkInterface.
|
||||
*/
|
||||
-#ifdef __solaris__
|
||||
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
|
||||
if (ipv6_available()) {
|
||||
mcast_set_if_by_if_v6(env, this, fd, value);
|
||||
} else {
|
||||
@@ -1434,7 +1434,7 @@ static void mcast_set_loop_v6(JNIEnv *env, jobject thi
|
||||
*/
|
||||
static void setMulticastLoopbackMode(JNIEnv *env, jobject this, int fd,
|
||||
jint opt, jobject value) {
|
||||
-#ifdef __solaris__
|
||||
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
|
||||
if (ipv6_available()) {
|
||||
mcast_set_loop_v6(env, this, fd, value);
|
||||
} else {
|
||||
@@ -2002,7 +2002,7 @@ Java_java_net_PlainDatagramSocketImpl_setTimeToLive(JN
|
||||
fd = (*env)->GetIntField(env, fdObj, IO_fd_fdID);
|
||||
}
|
||||
/* setsockopt to be correct ttl */
|
||||
-#ifdef __solaris__
|
||||
+#if defined(__solaris__) || defined(_ALLBSD_SOURCE)
|
||||
if (ipv6_available()) {
|
||||
setHopLimit(env, fd, ttl);
|
||||
} else {
|
@ -1,44 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_sun_awt_gtk2_interface_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/native/sun/awt/gtk2_interface.c.orig Tue Jan 29 09:39:30 2013
|
||||
+++ jdk/src/solaris/native/sun/awt/gtk2_interface.c Tue Jan 29 09:42:23 2013
|
||||
@@ -32,7 +32,8 @@
|
||||
#include "java_awt_Transparency.h"
|
||||
#include "jvm_md.h"
|
||||
|
||||
-#define GTK2_LIB VERSIONED_JNI_LIB_NAME("gtk-x11-2.0", "0")
|
||||
+#define GTK2_LIB_VERSIONED VERSIONED_JNI_LIB_NAME("gtk-x11-2.0", "0")
|
||||
+#define GTK2_LIB JNI_LIB_NAME("gtk-x11-2.0")
|
||||
|
||||
#define G_TYPE_INVALID G_TYPE_MAKE_FUNDAMENTAL (0)
|
||||
#define G_TYPE_NONE G_TYPE_MAKE_FUNDAMENTAL (1)
|
||||
@@ -397,9 +398,12 @@ gboolean gtk2_check_version()
|
||||
void *lib = NULL;
|
||||
gboolean result = FALSE;
|
||||
|
||||
- lib = dlopen(GTK2_LIB, RTLD_LAZY | RTLD_LOCAL);
|
||||
+ lib = dlopen(GTK2_LIB_VERSIONED, RTLD_LAZY | RTLD_LOCAL);
|
||||
if (lib == NULL) {
|
||||
- return FALSE;
|
||||
+ lib = dlopen(GTK2_LIB, RTLD_LAZY | RTLD_LOCAL);
|
||||
+ if (lib == NULL) {
|
||||
+ return FALSE;
|
||||
+ }
|
||||
}
|
||||
|
||||
fp_gtk_check_version = dlsym(lib, "gtk_check_version");
|
||||
@@ -422,9 +426,12 @@ gboolean gtk2_load()
|
||||
int (*io_handler)();
|
||||
char *gtk_modules_env;
|
||||
|
||||
- gtk2_libhandle = dlopen(GTK2_LIB, RTLD_LAZY | RTLD_LOCAL);
|
||||
- if (gtk2_libhandle == NULL)
|
||||
- return FALSE;
|
||||
+ gtk2_libhandle = dlopen(GTK2_LIB_VERSIONED, RTLD_LAZY | RTLD_LOCAL);
|
||||
+ if (gtk2_libhandle == NULL) {
|
||||
+ gtk2_libhandle = dlopen(GTK2_LIB, RTLD_LAZY | RTLD_LOCAL);
|
||||
+ if (gtk2_libhandle == NULL)
|
||||
+ return FALSE;
|
||||
+ }
|
||||
|
||||
if (setjmp(j) == 0)
|
||||
{
|
@ -1,35 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_native_sun_xawt_awt_Desktop_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/native/sun/xawt/awt_Desktop.c.orig Tue Jan 29 09:42:41 2013
|
||||
+++ jdk/src/solaris/native/sun/xawt/awt_Desktop.c Tue Jan 29 09:44:16 2013
|
||||
@@ -39,10 +39,13 @@ int init(){
|
||||
|
||||
vfs_handle = dlopen(VERSIONED_JNI_LIB_NAME("gnomevfs-2", "0"), RTLD_LAZY);
|
||||
if (vfs_handle == NULL) {
|
||||
+ vfs_handle = dlopen(JNI_LIB_NAME("gnomevfs-2"), RTLD_LAZY);
|
||||
+ if (vfs_handle == NULL) {
|
||||
#ifdef INTERNAL_BUILD
|
||||
- fprintf(stderr, "can not load libgnomevfs-2.so\n");
|
||||
+ fprintf(stderr, "can not load libgnomevfs-2.so\n");
|
||||
#endif
|
||||
- return 0;
|
||||
+ return 0;
|
||||
+ }
|
||||
}
|
||||
dlerror(); /* Clear errors */
|
||||
gnome_vfs_init = dlsym(vfs_handle, "gnome_vfs_init");
|
||||
@@ -57,10 +60,13 @@ int init(){
|
||||
|
||||
gnome_handle = dlopen(VERSIONED_JNI_LIB_NAME("gnome-2", "0"), RTLD_LAZY);
|
||||
if (gnome_handle == NULL) {
|
||||
+ gnome_handle = dlopen(JNI_LIB_NAME("gnome-2"), RTLD_LAZY);
|
||||
+ if (gnome_handle == NULL) {
|
||||
#ifdef INTERNAL_BUILD
|
||||
- fprintf(stderr, "can not load libgnome-2.so\n");
|
||||
+ fprintf(stderr, "can not load libgnome-2.so\n");
|
||||
#endif
|
||||
- return 0;
|
||||
+ return 0;
|
||||
+ }
|
||||
}
|
||||
dlerror(); /* Clear errors */
|
||||
gnome_url_show = dlsym(gnome_handle, "gnome_url_show");
|
@ -1,83 +0,0 @@
|
||||
$OpenBSD: patch-jdk_src_solaris_transport_socket_socket_md_c,v 1.1 2013/02/01 15:34:35 kurt Exp $
|
||||
--- jdk/src/solaris/transport/socket/socket_md.c.orig Tue Jan 29 11:45:40 2013
|
||||
+++ jdk/src/solaris/transport/socket/socket_md.c Tue Jan 29 11:50:14 2013
|
||||
@@ -52,7 +52,7 @@ dbgsysListen(int fd, int backlog) {
|
||||
int
|
||||
dbgsysConnect(int fd, struct sockaddr *name, int namelen) {
|
||||
int rv = connect(fd, name, namelen);
|
||||
- if (rv < 0 && errno == EINPROGRESS) {
|
||||
+ if (rv < 0 && errno == EINPROGRESS || errno == EINTR) {
|
||||
return DBG_EINPROGRESS;
|
||||
} else {
|
||||
return rv;
|
||||
@@ -79,7 +79,7 @@ dbgsysAccept(int fd, struct sockaddr *name, int *namel
|
||||
if (rv >= 0) {
|
||||
return rv;
|
||||
}
|
||||
- if (errno != ECONNABORTED) {
|
||||
+ if (errno != ECONNABORTED && errno != EINTR) {
|
||||
return rv;
|
||||
}
|
||||
}
|
||||
@@ -88,23 +88,43 @@ dbgsysAccept(int fd, struct sockaddr *name, int *namel
|
||||
int
|
||||
dbgsysRecvFrom(int fd, char *buf, int nBytes,
|
||||
int flags, struct sockaddr *from, int *fromlen) {
|
||||
- return recvfrom(fd, buf, nBytes, flags, from, fromlen);
|
||||
+ int rv;
|
||||
+ do {
|
||||
+ rv = recvfrom(fd, buf, nBytes, flags, from, fromlen);
|
||||
+ } while (rv == -1 && errno == EINTR);
|
||||
+
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
int
|
||||
dbgsysSendTo(int fd, char *buf, int len,
|
||||
int flags, struct sockaddr *to, int tolen) {
|
||||
- return sendto(fd, buf, len, flags, to, tolen);
|
||||
+ int rv;
|
||||
+ do {
|
||||
+ rv = sendto(fd, buf, len, flags, to, tolen);
|
||||
+ } while (rv == -1 && errno == EINTR);
|
||||
+
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
int
|
||||
dbgsysRecv(int fd, char *buf, int nBytes, int flags) {
|
||||
- return recv(fd, buf, nBytes, flags);
|
||||
+ int rv;
|
||||
+ do {
|
||||
+ rv = recv(fd, buf, nBytes, flags);
|
||||
+ } while (rv == -1 && errno == EINTR);
|
||||
+
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
int
|
||||
dbgsysSend(int fd, char *buf, int nBytes, int flags) {
|
||||
- return send(fd, buf, nBytes, flags);
|
||||
+ int rv;
|
||||
+ do {
|
||||
+ rv = send(fd, buf, nBytes, flags);
|
||||
+ } while (rv == -1 && errno == EINTR);
|
||||
+
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
struct hostent *
|
||||
@@ -123,7 +143,12 @@ dbgsysSocket(int domain, int type, int protocol) {
|
||||
}
|
||||
|
||||
int dbgsysSocketClose(int fd) {
|
||||
- return close(fd);
|
||||
+ int rv;
|
||||
+ do {
|
||||
+ rv = close(fd);
|
||||
+ } while (rv == -1 && errno == EINTR);
|
||||
+
|
||||
+ return rv;
|
||||
}
|
||||
|
||||
int
|
@ -1,23 +0,0 @@
|
||||
Java (TM) 2 Runtime Environment, Standard Edition
|
||||
Version 1.6.0
|
||||
|
||||
The Java(TM) 2 Runtime Environment contains the Java virtual machine,
|
||||
runtime class libraries, and Java application launcher that are
|
||||
necessary to run programs written in the Java programming language.
|
||||
It is not a development environment and does not contain development
|
||||
tools such as compilers and debuggers. For development tools, use
|
||||
the Java 2 SDK, Standard Edition.
|
||||
|
||||
Flavors:
|
||||
native_bootstrap
|
||||
Bootstrap the jdk using a previously built and installed
|
||||
devel/jdk/1.6 package.
|
||||
|
||||
with_ipv6
|
||||
Build the jdk/jre with ipv6 support. When the jdk/jre is built
|
||||
with this flavor, java will create only ipv6 sockets by default.
|
||||
Since ipv4 to ipv6 address mapping is disabled on OpenBSD,
|
||||
using ipv4 addresses will fail. Consequently, you may only
|
||||
use ipv6 addresses or you can start java with
|
||||
-Djava.net.preferIPv4Stack=true and can only use ipv4
|
||||
addresses.
|
@ -1,20 +0,0 @@
|
||||
Java (TM) 2 SDK, Standard Edition
|
||||
Version 1.6.0
|
||||
|
||||
The Java 2 SDK software includes tools useful for developing and
|
||||
testing programs written in the Java programming language and
|
||||
running on the Java platform.
|
||||
|
||||
Flavors:
|
||||
native_bootstrap
|
||||
Bootstrap the jdk using a previously built and installed
|
||||
devel/jdk/1.6 package.
|
||||
|
||||
with_ipv6
|
||||
Build the jdk/jre with ipv6 support. When the jdk/jre is built
|
||||
with this flavor, java will create only ipv6 sockets by default.
|
||||
Since ipv4 to ipv6 address mapping is disabled on OpenBSD,
|
||||
using ipv4 addresses will fail. Consequently, you may only
|
||||
use ipv6 addresses or you can start java with
|
||||
-Djava.net.preferIPv4Stack=true and can only use ipv4
|
||||
addresses.
|
@ -1,5 +0,0 @@
|
||||
@comment $OpenBSD: PFRAG.client_vm-jre,v 1.1.1.1 2007/11/19 03:19:44 kurt Exp $
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/client/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/client/Xusage.txt
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/client/libjsig.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/client/libjvm.so
|
@ -1,6 +0,0 @@
|
||||
@comment $OpenBSD: PFRAG.client_vm-main,v 1.1.1.1 2007/11/19 03:19:44 kurt Exp $
|
||||
${JDKHOME}/bin/java-rmi.cgi
|
||||
${JDKHOME}/jre/lib/${MACHINE_ARCH}/client/
|
||||
${JDKHOME}/jre/lib/${MACHINE_ARCH}/client/Xusage.txt
|
||||
${JDKHOME}/jre/lib/${MACHINE_ARCH}/client/libjsig.so
|
||||
${JDKHOME}/jre/lib/${MACHINE_ARCH}/client/libjvm.so
|
@ -1,594 +0,0 @@
|
||||
@comment $OpenBSD: PLIST-jre,v 1.4 2013/02/01 15:34:36 kurt Exp $
|
||||
@option no-default-conflict
|
||||
@conflict jre->=1.6,<1.7
|
||||
@pkgpath devel/jdk/1.6,-jre,native_bootstrap
|
||||
${JREHOME}/
|
||||
${JREHOME}/ASSEMBLY_EXCEPTION
|
||||
${JREHOME}/LICENSE
|
||||
${JREHOME}/THIRD_PARTY_README
|
||||
${JREHOME}/bin/
|
||||
@bin ${JREHOME}/bin/java
|
||||
@bin ${JREHOME}/bin/keytool
|
||||
@bin ${JREHOME}/bin/orbd
|
||||
@bin ${JREHOME}/bin/pack200
|
||||
@bin ${JREHOME}/bin/policytool
|
||||
@bin ${JREHOME}/bin/rmid
|
||||
@bin ${JREHOME}/bin/rmiregistry
|
||||
@bin ${JREHOME}/bin/servertool
|
||||
@bin ${JREHOME}/bin/tnameserv
|
||||
@bin ${JREHOME}/bin/unpack200
|
||||
${JREHOME}/lib/
|
||||
${JREHOME}/lib/applet/
|
||||
${JREHOME}/lib/calendars.properties
|
||||
${JREHOME}/lib/charsets.jar
|
||||
${JREHOME}/lib/classlist
|
||||
${JREHOME}/lib/cmm/
|
||||
${JREHOME}/lib/cmm/CIEXYZ.pf
|
||||
${JREHOME}/lib/cmm/GRAY.pf
|
||||
${JREHOME}/lib/cmm/LINEAR_RGB.pf
|
||||
${JREHOME}/lib/cmm/PYCC.pf
|
||||
${JREHOME}/lib/cmm/sRGB.pf
|
||||
${JREHOME}/lib/content-types.properties
|
||||
${JREHOME}/lib/currency.data
|
||||
${JREHOME}/lib/ext/
|
||||
${JREHOME}/lib/ext/dnsns.jar
|
||||
${JREHOME}/lib/ext/localedata.jar
|
||||
${JREHOME}/lib/ext/meta-index
|
||||
${JREHOME}/lib/ext/sunjce_provider.jar
|
||||
${JREHOME}/lib/ext/sunpkcs11.jar
|
||||
${JREHOME}/lib/flavormap.properties
|
||||
${JREHOME}/lib/fontconfig.bfc
|
||||
${JREHOME}/lib/fontconfig.properties.src
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/headless/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/headless/libmawt.so
|
||||
@bin ${JREHOME}/lib/${MACHINE_ARCH}/jexec
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/jvm.cfg
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libawt.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libdt_socket.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libfontmanager.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libhprof.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libinstrument.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libj2gss.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libj2pcsc.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libj2pkcs11.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjaas_unix.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjava.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjava_crw_demo.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjawt.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjdwp.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjli.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjpeg.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjsig.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libjsound.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/liblcms.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libmanagement.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libmlib_image.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libnet.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libnio.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libnpt.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/librmi.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libsplashscreen.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libunpack.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libverify.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/libzip.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/native_threads/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/native_threads/libhpi.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/server/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/server/Xusage.txt
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/server/libjsig.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/server/libjvm.so
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/xawt/
|
||||
${JREHOME}/lib/${MACHINE_ARCH}/xawt/libmawt.so
|
||||
${JREHOME}/lib/im/
|
||||
${JREHOME}/lib/im/indicim.jar
|
||||
${JREHOME}/lib/im/thaiim.jar
|
||||
${JREHOME}/lib/images/
|
||||
${JREHOME}/lib/images/cursors/
|
||||
${JREHOME}/lib/images/cursors/cursors.properties
|
||||
${JREHOME}/lib/images/cursors/invalid32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_CopyDrop32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_CopyNoDrop32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_LinkDrop32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_LinkNoDrop32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_MoveDrop32x32.gif
|
||||
${JREHOME}/lib/images/cursors/motif_MoveNoDrop32x32.gif
|
||||
${JREHOME}/lib/jce.jar
|
||||
${JREHOME}/lib/jsse.jar
|
||||
${JREHOME}/lib/jvm.hprof.txt
|
||||
${JREHOME}/lib/logging.properties
|
||||
${JREHOME}/lib/management/
|
||||
${JREHOME}/lib/management-agent.jar
|
||||
${JREHOME}/lib/management/jmxremote.access
|
||||
${JREHOME}/lib/management/jmxremote.password.template
|
||||
${JREHOME}/lib/management/management.properties
|
||||
${JREHOME}/lib/management/snmp.acl.template
|
||||
${JREHOME}/lib/meta-index
|
||||
${JREHOME}/lib/net.properties
|
||||
${JREHOME}/lib/psfont.properties.ja
|
||||
${JREHOME}/lib/psfontj2d.properties
|
||||
${JREHOME}/lib/resources.jar
|
||||
${JREHOME}/lib/rt.jar
|
||||
${JREHOME}/lib/security/
|
||||
${JREHOME}/lib/security/US_export_policy.jar
|
||||
${JREHOME}/lib/security/cacerts
|
||||
${JREHOME}/lib/security/java.policy
|
||||
${JREHOME}/lib/security/java.security
|
||||
${JREHOME}/lib/security/local_policy.jar
|
||||
${JREHOME}/lib/sound.properties
|
||||
${JREHOME}/lib/zi/
|
||||
${JREHOME}/lib/zi/Africa/
|
||||
${JREHOME}/lib/zi/Africa/Abidjan
|
||||
${JREHOME}/lib/zi/Africa/Accra
|
||||
${JREHOME}/lib/zi/Africa/Addis_Ababa
|
||||
${JREHOME}/lib/zi/Africa/Algiers
|
||||
${JREHOME}/lib/zi/Africa/Asmara
|
||||
${JREHOME}/lib/zi/Africa/Bamako
|
||||
${JREHOME}/lib/zi/Africa/Bangui
|
||||
${JREHOME}/lib/zi/Africa/Banjul
|
||||
${JREHOME}/lib/zi/Africa/Bissau
|
||||
${JREHOME}/lib/zi/Africa/Blantyre
|
||||
${JREHOME}/lib/zi/Africa/Brazzaville
|
||||
${JREHOME}/lib/zi/Africa/Bujumbura
|
||||
${JREHOME}/lib/zi/Africa/Cairo
|
||||
${JREHOME}/lib/zi/Africa/Casablanca
|
||||
${JREHOME}/lib/zi/Africa/Ceuta
|
||||
${JREHOME}/lib/zi/Africa/Conakry
|
||||
${JREHOME}/lib/zi/Africa/Dakar
|
||||
${JREHOME}/lib/zi/Africa/Dar_es_Salaam
|
||||
${JREHOME}/lib/zi/Africa/Djibouti
|
||||
${JREHOME}/lib/zi/Africa/Douala
|
||||
${JREHOME}/lib/zi/Africa/El_Aaiun
|
||||
${JREHOME}/lib/zi/Africa/Freetown
|
||||
${JREHOME}/lib/zi/Africa/Gaborone
|
||||
${JREHOME}/lib/zi/Africa/Harare
|
||||
${JREHOME}/lib/zi/Africa/Johannesburg
|
||||
${JREHOME}/lib/zi/Africa/Kampala
|
||||
${JREHOME}/lib/zi/Africa/Khartoum
|
||||
${JREHOME}/lib/zi/Africa/Kigali
|
||||
${JREHOME}/lib/zi/Africa/Kinshasa
|
||||
${JREHOME}/lib/zi/Africa/Lagos
|
||||
${JREHOME}/lib/zi/Africa/Libreville
|
||||
${JREHOME}/lib/zi/Africa/Lome
|
||||
${JREHOME}/lib/zi/Africa/Luanda
|
||||
${JREHOME}/lib/zi/Africa/Lubumbashi
|
||||
${JREHOME}/lib/zi/Africa/Lusaka
|
||||
${JREHOME}/lib/zi/Africa/Malabo
|
||||
${JREHOME}/lib/zi/Africa/Maputo
|
||||
${JREHOME}/lib/zi/Africa/Maseru
|
||||
${JREHOME}/lib/zi/Africa/Mbabane
|
||||
${JREHOME}/lib/zi/Africa/Mogadishu
|
||||
${JREHOME}/lib/zi/Africa/Monrovia
|
||||
${JREHOME}/lib/zi/Africa/Nairobi
|
||||
${JREHOME}/lib/zi/Africa/Ndjamena
|
||||
${JREHOME}/lib/zi/Africa/Niamey
|
||||
${JREHOME}/lib/zi/Africa/Nouakchott
|
||||
${JREHOME}/lib/zi/Africa/Ouagadougou
|
||||
${JREHOME}/lib/zi/Africa/Porto-Novo
|
||||
${JREHOME}/lib/zi/Africa/Sao_Tome
|
||||
${JREHOME}/lib/zi/Africa/Tripoli
|
||||
${JREHOME}/lib/zi/Africa/Tunis
|
||||
${JREHOME}/lib/zi/Africa/Windhoek
|
||||
${JREHOME}/lib/zi/America/
|
||||
${JREHOME}/lib/zi/America/Adak
|
||||
${JREHOME}/lib/zi/America/Anchorage
|
||||
${JREHOME}/lib/zi/America/Anguilla
|
||||
${JREHOME}/lib/zi/America/Antigua
|
||||
${JREHOME}/lib/zi/America/Araguaina
|
||||
${JREHOME}/lib/zi/America/Argentina/
|
||||
${JREHOME}/lib/zi/America/Argentina/Buenos_Aires
|
||||
${JREHOME}/lib/zi/America/Argentina/Catamarca
|
||||
${JREHOME}/lib/zi/America/Argentina/Cordoba
|
||||
${JREHOME}/lib/zi/America/Argentina/Jujuy
|
||||
${JREHOME}/lib/zi/America/Argentina/La_Rioja
|
||||
${JREHOME}/lib/zi/America/Argentina/Mendoza
|
||||
${JREHOME}/lib/zi/America/Argentina/Rio_Gallegos
|
||||
${JREHOME}/lib/zi/America/Argentina/Salta
|
||||
${JREHOME}/lib/zi/America/Argentina/San_Juan
|
||||
${JREHOME}/lib/zi/America/Argentina/San_Luis
|
||||
${JREHOME}/lib/zi/America/Argentina/Tucuman
|
||||
${JREHOME}/lib/zi/America/Argentina/Ushuaia
|
||||
${JREHOME}/lib/zi/America/Aruba
|
||||
${JREHOME}/lib/zi/America/Asuncion
|
||||
${JREHOME}/lib/zi/America/Atikokan
|
||||
${JREHOME}/lib/zi/America/Bahia
|
||||
${JREHOME}/lib/zi/America/Barbados
|
||||
${JREHOME}/lib/zi/America/Belem
|
||||
${JREHOME}/lib/zi/America/Belize
|
||||
${JREHOME}/lib/zi/America/Blanc-Sablon
|
||||
${JREHOME}/lib/zi/America/Boa_Vista
|
||||
${JREHOME}/lib/zi/America/Bogota
|
||||
${JREHOME}/lib/zi/America/Boise
|
||||
${JREHOME}/lib/zi/America/Cambridge_Bay
|
||||
${JREHOME}/lib/zi/America/Campo_Grande
|
||||
${JREHOME}/lib/zi/America/Cancun
|
||||
${JREHOME}/lib/zi/America/Caracas
|
||||
${JREHOME}/lib/zi/America/Cayenne
|
||||
${JREHOME}/lib/zi/America/Cayman
|
||||
${JREHOME}/lib/zi/America/Chicago
|
||||
${JREHOME}/lib/zi/America/Chihuahua
|
||||
${JREHOME}/lib/zi/America/Costa_Rica
|
||||
${JREHOME}/lib/zi/America/Cuiaba
|
||||
${JREHOME}/lib/zi/America/Curacao
|
||||
${JREHOME}/lib/zi/America/Danmarkshavn
|
||||
${JREHOME}/lib/zi/America/Dawson
|
||||
${JREHOME}/lib/zi/America/Dawson_Creek
|
||||
${JREHOME}/lib/zi/America/Denver
|
||||
${JREHOME}/lib/zi/America/Detroit
|
||||
${JREHOME}/lib/zi/America/Dominica
|
||||
${JREHOME}/lib/zi/America/Edmonton
|
||||
${JREHOME}/lib/zi/America/Eirunepe
|
||||
${JREHOME}/lib/zi/America/El_Salvador
|
||||
${JREHOME}/lib/zi/America/Fortaleza
|
||||
${JREHOME}/lib/zi/America/Glace_Bay
|
||||
${JREHOME}/lib/zi/America/Godthab
|
||||
${JREHOME}/lib/zi/America/Goose_Bay
|
||||
${JREHOME}/lib/zi/America/Grand_Turk
|
||||
${JREHOME}/lib/zi/America/Grenada
|
||||
${JREHOME}/lib/zi/America/Guadeloupe
|
||||
${JREHOME}/lib/zi/America/Guatemala
|
||||
${JREHOME}/lib/zi/America/Guayaquil
|
||||
${JREHOME}/lib/zi/America/Guyana
|
||||
${JREHOME}/lib/zi/America/Halifax
|
||||
${JREHOME}/lib/zi/America/Havana
|
||||
${JREHOME}/lib/zi/America/Hermosillo
|
||||
${JREHOME}/lib/zi/America/Indiana/
|
||||
${JREHOME}/lib/zi/America/Indiana/Indianapolis
|
||||
${JREHOME}/lib/zi/America/Indiana/Knox
|
||||
${JREHOME}/lib/zi/America/Indiana/Marengo
|
||||
${JREHOME}/lib/zi/America/Indiana/Petersburg
|
||||
${JREHOME}/lib/zi/America/Indiana/Tell_City
|
||||
${JREHOME}/lib/zi/America/Indiana/Vevay
|
||||
${JREHOME}/lib/zi/America/Indiana/Vincennes
|
||||
${JREHOME}/lib/zi/America/Indiana/Winamac
|
||||
${JREHOME}/lib/zi/America/Inuvik
|
||||
${JREHOME}/lib/zi/America/Iqaluit
|
||||
${JREHOME}/lib/zi/America/Jamaica
|
||||
${JREHOME}/lib/zi/America/Juneau
|
||||
${JREHOME}/lib/zi/America/Kentucky/
|
||||
${JREHOME}/lib/zi/America/Kentucky/Louisville
|
||||
${JREHOME}/lib/zi/America/Kentucky/Monticello
|
||||
${JREHOME}/lib/zi/America/La_Paz
|
||||
${JREHOME}/lib/zi/America/Lima
|
||||
${JREHOME}/lib/zi/America/Los_Angeles
|
||||
${JREHOME}/lib/zi/America/Maceio
|
||||
${JREHOME}/lib/zi/America/Managua
|
||||
${JREHOME}/lib/zi/America/Manaus
|
||||
${JREHOME}/lib/zi/America/Martinique
|
||||
${JREHOME}/lib/zi/America/Matamoros
|
||||
${JREHOME}/lib/zi/America/Mazatlan
|
||||
${JREHOME}/lib/zi/America/Menominee
|
||||
${JREHOME}/lib/zi/America/Merida
|
||||
${JREHOME}/lib/zi/America/Mexico_City
|
||||
${JREHOME}/lib/zi/America/Miquelon
|
||||
${JREHOME}/lib/zi/America/Moncton
|
||||
${JREHOME}/lib/zi/America/Monterrey
|
||||
${JREHOME}/lib/zi/America/Montevideo
|
||||
${JREHOME}/lib/zi/America/Montreal
|
||||
${JREHOME}/lib/zi/America/Montserrat
|
||||
${JREHOME}/lib/zi/America/Nassau
|
||||
${JREHOME}/lib/zi/America/New_York
|
||||
${JREHOME}/lib/zi/America/Nipigon
|
||||
${JREHOME}/lib/zi/America/Nome
|
||||
${JREHOME}/lib/zi/America/Noronha
|
||||
${JREHOME}/lib/zi/America/North_Dakota/
|
||||
${JREHOME}/lib/zi/America/North_Dakota/Center
|
||||
${JREHOME}/lib/zi/America/North_Dakota/New_Salem
|
||||
${JREHOME}/lib/zi/America/Ojinaga
|
||||
${JREHOME}/lib/zi/America/Panama
|
||||
${JREHOME}/lib/zi/America/Pangnirtung
|
||||
${JREHOME}/lib/zi/America/Paramaribo
|
||||
${JREHOME}/lib/zi/America/Phoenix
|
||||
${JREHOME}/lib/zi/America/Port-au-Prince
|
||||
${JREHOME}/lib/zi/America/Port_of_Spain
|
||||
${JREHOME}/lib/zi/America/Porto_Velho
|
||||
${JREHOME}/lib/zi/America/Puerto_Rico
|
||||
${JREHOME}/lib/zi/America/Rainy_River
|
||||
${JREHOME}/lib/zi/America/Rankin_Inlet
|
||||
${JREHOME}/lib/zi/America/Recife
|
||||
${JREHOME}/lib/zi/America/Regina
|
||||
${JREHOME}/lib/zi/America/Resolute
|
||||
${JREHOME}/lib/zi/America/Rio_Branco
|
||||
${JREHOME}/lib/zi/America/Santa_Isabel
|
||||
${JREHOME}/lib/zi/America/Santarem
|
||||
${JREHOME}/lib/zi/America/Santiago
|
||||
${JREHOME}/lib/zi/America/Santo_Domingo
|
||||
${JREHOME}/lib/zi/America/Sao_Paulo
|
||||
${JREHOME}/lib/zi/America/Scoresbysund
|
||||
${JREHOME}/lib/zi/America/St_Johns
|
||||
${JREHOME}/lib/zi/America/St_Kitts
|
||||
${JREHOME}/lib/zi/America/St_Lucia
|
||||
${JREHOME}/lib/zi/America/St_Thomas
|
||||
${JREHOME}/lib/zi/America/St_Vincent
|
||||
${JREHOME}/lib/zi/America/Swift_Current
|
||||
${JREHOME}/lib/zi/America/Tegucigalpa
|
||||
${JREHOME}/lib/zi/America/Thule
|
||||
${JREHOME}/lib/zi/America/Thunder_Bay
|
||||
${JREHOME}/lib/zi/America/Tijuana
|
||||
${JREHOME}/lib/zi/America/Toronto
|
||||
${JREHOME}/lib/zi/America/Tortola
|
||||
${JREHOME}/lib/zi/America/Vancouver
|
||||
${JREHOME}/lib/zi/America/Whitehorse
|
||||
${JREHOME}/lib/zi/America/Winnipeg
|
||||
${JREHOME}/lib/zi/America/Yakutat
|
||||
${JREHOME}/lib/zi/America/Yellowknife
|
||||
${JREHOME}/lib/zi/Antarctica/
|
||||
${JREHOME}/lib/zi/Antarctica/Casey
|
||||
${JREHOME}/lib/zi/Antarctica/Davis
|
||||
${JREHOME}/lib/zi/Antarctica/DumontDUrville
|
||||
${JREHOME}/lib/zi/Antarctica/Macquarie
|
||||
${JREHOME}/lib/zi/Antarctica/Mawson
|
||||
${JREHOME}/lib/zi/Antarctica/McMurdo
|
||||
${JREHOME}/lib/zi/Antarctica/Palmer
|
||||
${JREHOME}/lib/zi/Antarctica/Rothera
|
||||
${JREHOME}/lib/zi/Antarctica/Syowa
|
||||
${JREHOME}/lib/zi/Antarctica/Vostok
|
||||
${JREHOME}/lib/zi/Asia/
|
||||
${JREHOME}/lib/zi/Asia/Aden
|
||||
${JREHOME}/lib/zi/Asia/Almaty
|
||||
${JREHOME}/lib/zi/Asia/Amman
|
||||
${JREHOME}/lib/zi/Asia/Anadyr
|
||||
${JREHOME}/lib/zi/Asia/Aqtau
|
||||
${JREHOME}/lib/zi/Asia/Aqtobe
|
||||
${JREHOME}/lib/zi/Asia/Ashgabat
|
||||
${JREHOME}/lib/zi/Asia/Baghdad
|
||||
${JREHOME}/lib/zi/Asia/Bahrain
|
||||
${JREHOME}/lib/zi/Asia/Baku
|
||||
${JREHOME}/lib/zi/Asia/Bangkok
|
||||
${JREHOME}/lib/zi/Asia/Beirut
|
||||
${JREHOME}/lib/zi/Asia/Bishkek
|
||||
${JREHOME}/lib/zi/Asia/Brunei
|
||||
${JREHOME}/lib/zi/Asia/Choibalsan
|
||||
${JREHOME}/lib/zi/Asia/Chongqing
|
||||
${JREHOME}/lib/zi/Asia/Colombo
|
||||
${JREHOME}/lib/zi/Asia/Damascus
|
||||
${JREHOME}/lib/zi/Asia/Dhaka
|
||||
${JREHOME}/lib/zi/Asia/Dili
|
||||
${JREHOME}/lib/zi/Asia/Dubai
|
||||
${JREHOME}/lib/zi/Asia/Dushanbe
|
||||
${JREHOME}/lib/zi/Asia/Gaza
|
||||
${JREHOME}/lib/zi/Asia/Harbin
|
||||
${JREHOME}/lib/zi/Asia/Ho_Chi_Minh
|
||||
${JREHOME}/lib/zi/Asia/Hong_Kong
|
||||
${JREHOME}/lib/zi/Asia/Hovd
|
||||
${JREHOME}/lib/zi/Asia/Irkutsk
|
||||
${JREHOME}/lib/zi/Asia/Jakarta
|
||||
${JREHOME}/lib/zi/Asia/Jayapura
|
||||
${JREHOME}/lib/zi/Asia/Jerusalem
|
||||
${JREHOME}/lib/zi/Asia/Kabul
|
||||
${JREHOME}/lib/zi/Asia/Kamchatka
|
||||
${JREHOME}/lib/zi/Asia/Karachi
|
||||
${JREHOME}/lib/zi/Asia/Kashgar
|
||||
${JREHOME}/lib/zi/Asia/Kathmandu
|
||||
${JREHOME}/lib/zi/Asia/Kolkata
|
||||
${JREHOME}/lib/zi/Asia/Krasnoyarsk
|
||||
${JREHOME}/lib/zi/Asia/Kuala_Lumpur
|
||||
${JREHOME}/lib/zi/Asia/Kuching
|
||||
${JREHOME}/lib/zi/Asia/Kuwait
|
||||
${JREHOME}/lib/zi/Asia/Macau
|
||||
${JREHOME}/lib/zi/Asia/Magadan
|
||||
${JREHOME}/lib/zi/Asia/Makassar
|
||||
${JREHOME}/lib/zi/Asia/Manila
|
||||
${JREHOME}/lib/zi/Asia/Muscat
|
||||
${JREHOME}/lib/zi/Asia/Nicosia
|
||||
${JREHOME}/lib/zi/Asia/Novokuznetsk
|
||||
${JREHOME}/lib/zi/Asia/Novosibirsk
|
||||
${JREHOME}/lib/zi/Asia/Omsk
|
||||
${JREHOME}/lib/zi/Asia/Oral
|
||||
${JREHOME}/lib/zi/Asia/Phnom_Penh
|
||||
${JREHOME}/lib/zi/Asia/Pontianak
|
||||
${JREHOME}/lib/zi/Asia/Pyongyang
|
||||
${JREHOME}/lib/zi/Asia/Qatar
|
||||
${JREHOME}/lib/zi/Asia/Qyzylorda
|
||||
${JREHOME}/lib/zi/Asia/Rangoon
|
||||
${JREHOME}/lib/zi/Asia/Riyadh
|
||||
${JREHOME}/lib/zi/Asia/Riyadh87
|
||||
${JREHOME}/lib/zi/Asia/Riyadh88
|
||||
${JREHOME}/lib/zi/Asia/Riyadh89
|
||||
${JREHOME}/lib/zi/Asia/Sakhalin
|
||||
${JREHOME}/lib/zi/Asia/Samarkand
|
||||
${JREHOME}/lib/zi/Asia/Seoul
|
||||
${JREHOME}/lib/zi/Asia/Shanghai
|
||||
${JREHOME}/lib/zi/Asia/Singapore
|
||||
${JREHOME}/lib/zi/Asia/Taipei
|
||||
${JREHOME}/lib/zi/Asia/Tashkent
|
||||
${JREHOME}/lib/zi/Asia/Tbilisi
|
||||
${JREHOME}/lib/zi/Asia/Tehran
|
||||
${JREHOME}/lib/zi/Asia/Thimphu
|
||||
${JREHOME}/lib/zi/Asia/Tokyo
|
||||
${JREHOME}/lib/zi/Asia/Ulaanbaatar
|
||||
${JREHOME}/lib/zi/Asia/Urumqi
|
||||
${JREHOME}/lib/zi/Asia/Vientiane
|
||||
${JREHOME}/lib/zi/Asia/Vladivostok
|
||||
${JREHOME}/lib/zi/Asia/Yakutsk
|
||||
${JREHOME}/lib/zi/Asia/Yekaterinburg
|
||||
${JREHOME}/lib/zi/Asia/Yerevan
|
||||
${JREHOME}/lib/zi/Atlantic/
|
||||
${JREHOME}/lib/zi/Atlantic/Azores
|
||||
${JREHOME}/lib/zi/Atlantic/Bermuda
|
||||
${JREHOME}/lib/zi/Atlantic/Canary
|
||||
${JREHOME}/lib/zi/Atlantic/Cape_Verde
|
||||
${JREHOME}/lib/zi/Atlantic/Faroe
|
||||
${JREHOME}/lib/zi/Atlantic/Madeira
|
||||
${JREHOME}/lib/zi/Atlantic/Reykjavik
|
||||
${JREHOME}/lib/zi/Atlantic/South_Georgia
|
||||
${JREHOME}/lib/zi/Atlantic/St_Helena
|
||||
${JREHOME}/lib/zi/Atlantic/Stanley
|
||||
${JREHOME}/lib/zi/Australia/
|
||||
${JREHOME}/lib/zi/Australia/Adelaide
|
||||
${JREHOME}/lib/zi/Australia/Brisbane
|
||||
${JREHOME}/lib/zi/Australia/Broken_Hill
|
||||
${JREHOME}/lib/zi/Australia/Currie
|
||||
${JREHOME}/lib/zi/Australia/Darwin
|
||||
${JREHOME}/lib/zi/Australia/Eucla
|
||||
${JREHOME}/lib/zi/Australia/Hobart
|
||||
${JREHOME}/lib/zi/Australia/Lindeman
|
||||
${JREHOME}/lib/zi/Australia/Lord_Howe
|
||||
${JREHOME}/lib/zi/Australia/Melbourne
|
||||
${JREHOME}/lib/zi/Australia/Perth
|
||||
${JREHOME}/lib/zi/Australia/Sydney
|
||||
${JREHOME}/lib/zi/CET
|
||||
${JREHOME}/lib/zi/CST6CDT
|
||||
${JREHOME}/lib/zi/EET
|
||||
${JREHOME}/lib/zi/EST
|
||||
${JREHOME}/lib/zi/EST5EDT
|
||||
${JREHOME}/lib/zi/Etc/
|
||||
${JREHOME}/lib/zi/Etc/GMT
|
||||
${JREHOME}/lib/zi/Etc/GMT+1
|
||||
${JREHOME}/lib/zi/Etc/GMT+10
|
||||
${JREHOME}/lib/zi/Etc/GMT+11
|
||||
${JREHOME}/lib/zi/Etc/GMT+12
|
||||
${JREHOME}/lib/zi/Etc/GMT+2
|
||||
${JREHOME}/lib/zi/Etc/GMT+3
|
||||
${JREHOME}/lib/zi/Etc/GMT+4
|
||||
${JREHOME}/lib/zi/Etc/GMT+5
|
||||
${JREHOME}/lib/zi/Etc/GMT+6
|
||||
${JREHOME}/lib/zi/Etc/GMT+7
|
||||
${JREHOME}/lib/zi/Etc/GMT+8
|
||||
${JREHOME}/lib/zi/Etc/GMT+9
|
||||
${JREHOME}/lib/zi/Etc/GMT-1
|
||||
${JREHOME}/lib/zi/Etc/GMT-10
|
||||
${JREHOME}/lib/zi/Etc/GMT-11
|
||||
${JREHOME}/lib/zi/Etc/GMT-12
|
||||
${JREHOME}/lib/zi/Etc/GMT-13
|
||||
${JREHOME}/lib/zi/Etc/GMT-14
|
||||
${JREHOME}/lib/zi/Etc/GMT-2
|
||||
${JREHOME}/lib/zi/Etc/GMT-3
|
||||
${JREHOME}/lib/zi/Etc/GMT-4
|
||||
${JREHOME}/lib/zi/Etc/GMT-5
|
||||
${JREHOME}/lib/zi/Etc/GMT-6
|
||||
${JREHOME}/lib/zi/Etc/GMT-7
|
||||
${JREHOME}/lib/zi/Etc/GMT-8
|
||||
${JREHOME}/lib/zi/Etc/GMT-9
|
||||
${JREHOME}/lib/zi/Etc/UCT
|
||||
${JREHOME}/lib/zi/Etc/UTC
|
||||
${JREHOME}/lib/zi/Europe/
|
||||
${JREHOME}/lib/zi/Europe/Amsterdam
|
||||
${JREHOME}/lib/zi/Europe/Andorra
|
||||
${JREHOME}/lib/zi/Europe/Athens
|
||||
${JREHOME}/lib/zi/Europe/Belgrade
|
||||
${JREHOME}/lib/zi/Europe/Berlin
|
||||
${JREHOME}/lib/zi/Europe/Brussels
|
||||
${JREHOME}/lib/zi/Europe/Bucharest
|
||||
${JREHOME}/lib/zi/Europe/Budapest
|
||||
${JREHOME}/lib/zi/Europe/Chisinau
|
||||
${JREHOME}/lib/zi/Europe/Copenhagen
|
||||
${JREHOME}/lib/zi/Europe/Dublin
|
||||
${JREHOME}/lib/zi/Europe/Gibraltar
|
||||
${JREHOME}/lib/zi/Europe/Helsinki
|
||||
${JREHOME}/lib/zi/Europe/Istanbul
|
||||
${JREHOME}/lib/zi/Europe/Kaliningrad
|
||||
${JREHOME}/lib/zi/Europe/Kiev
|
||||
${JREHOME}/lib/zi/Europe/Lisbon
|
||||
${JREHOME}/lib/zi/Europe/London
|
||||
${JREHOME}/lib/zi/Europe/Luxembourg
|
||||
${JREHOME}/lib/zi/Europe/Madrid
|
||||
${JREHOME}/lib/zi/Europe/Malta
|
||||
${JREHOME}/lib/zi/Europe/Minsk
|
||||
${JREHOME}/lib/zi/Europe/Monaco
|
||||
${JREHOME}/lib/zi/Europe/Moscow
|
||||
${JREHOME}/lib/zi/Europe/Oslo
|
||||
${JREHOME}/lib/zi/Europe/Paris
|
||||
${JREHOME}/lib/zi/Europe/Prague
|
||||
${JREHOME}/lib/zi/Europe/Riga
|
||||
${JREHOME}/lib/zi/Europe/Rome
|
||||
${JREHOME}/lib/zi/Europe/Samara
|
||||
${JREHOME}/lib/zi/Europe/Simferopol
|
||||
${JREHOME}/lib/zi/Europe/Sofia
|
||||
${JREHOME}/lib/zi/Europe/Stockholm
|
||||
${JREHOME}/lib/zi/Europe/Tallinn
|
||||
${JREHOME}/lib/zi/Europe/Tirane
|
||||
${JREHOME}/lib/zi/Europe/Uzhgorod
|
||||
${JREHOME}/lib/zi/Europe/Vaduz
|
||||
${JREHOME}/lib/zi/Europe/Vienna
|
||||
${JREHOME}/lib/zi/Europe/Vilnius
|
||||
${JREHOME}/lib/zi/Europe/Volgograd
|
||||
${JREHOME}/lib/zi/Europe/Warsaw
|
||||
${JREHOME}/lib/zi/Europe/Zaporozhye
|
||||
${JREHOME}/lib/zi/Europe/Zurich
|
||||
${JREHOME}/lib/zi/GMT
|
||||
${JREHOME}/lib/zi/HST
|
||||
${JREHOME}/lib/zi/Indian/
|
||||
${JREHOME}/lib/zi/Indian/Antananarivo
|
||||
${JREHOME}/lib/zi/Indian/Chagos
|
||||
${JREHOME}/lib/zi/Indian/Christmas
|
||||
${JREHOME}/lib/zi/Indian/Cocos
|
||||
${JREHOME}/lib/zi/Indian/Comoro
|
||||
${JREHOME}/lib/zi/Indian/Kerguelen
|
||||
${JREHOME}/lib/zi/Indian/Mahe
|
||||
${JREHOME}/lib/zi/Indian/Maldives
|
||||
${JREHOME}/lib/zi/Indian/Mauritius
|
||||
${JREHOME}/lib/zi/Indian/Mayotte
|
||||
${JREHOME}/lib/zi/Indian/Reunion
|
||||
${JREHOME}/lib/zi/MET
|
||||
${JREHOME}/lib/zi/MST
|
||||
${JREHOME}/lib/zi/MST7MDT
|
||||
${JREHOME}/lib/zi/PST8PDT
|
||||
${JREHOME}/lib/zi/Pacific/
|
||||
${JREHOME}/lib/zi/Pacific/Apia
|
||||
${JREHOME}/lib/zi/Pacific/Auckland
|
||||
${JREHOME}/lib/zi/Pacific/Chatham
|
||||
${JREHOME}/lib/zi/Pacific/Easter
|
||||
${JREHOME}/lib/zi/Pacific/Efate
|
||||
${JREHOME}/lib/zi/Pacific/Enderbury
|
||||
${JREHOME}/lib/zi/Pacific/Fakaofo
|
||||
${JREHOME}/lib/zi/Pacific/Fiji
|
||||
${JREHOME}/lib/zi/Pacific/Funafuti
|
||||
${JREHOME}/lib/zi/Pacific/Galapagos
|
||||
${JREHOME}/lib/zi/Pacific/Gambier
|
||||
${JREHOME}/lib/zi/Pacific/Guadalcanal
|
||||
${JREHOME}/lib/zi/Pacific/Guam
|
||||
${JREHOME}/lib/zi/Pacific/Honolulu
|
||||
${JREHOME}/lib/zi/Pacific/Johnston
|
||||
${JREHOME}/lib/zi/Pacific/Kiritimati
|
||||
${JREHOME}/lib/zi/Pacific/Kosrae
|
||||
${JREHOME}/lib/zi/Pacific/Kwajalein
|
||||
${JREHOME}/lib/zi/Pacific/Majuro
|
||||
${JREHOME}/lib/zi/Pacific/Marquesas
|
||||
${JREHOME}/lib/zi/Pacific/Midway
|
||||
${JREHOME}/lib/zi/Pacific/Nauru
|
||||
${JREHOME}/lib/zi/Pacific/Niue
|
||||
${JREHOME}/lib/zi/Pacific/Norfolk
|
||||
${JREHOME}/lib/zi/Pacific/Noumea
|
||||
${JREHOME}/lib/zi/Pacific/Pago_Pago
|
||||
${JREHOME}/lib/zi/Pacific/Palau
|
||||
${JREHOME}/lib/zi/Pacific/Pitcairn
|
||||
${JREHOME}/lib/zi/Pacific/Ponape
|
||||
${JREHOME}/lib/zi/Pacific/Port_Moresby
|
||||
${JREHOME}/lib/zi/Pacific/Rarotonga
|
||||
${JREHOME}/lib/zi/Pacific/Saipan
|
||||
${JREHOME}/lib/zi/Pacific/Tahiti
|
||||
${JREHOME}/lib/zi/Pacific/Tarawa
|
||||
${JREHOME}/lib/zi/Pacific/Tongatapu
|
||||
${JREHOME}/lib/zi/Pacific/Truk
|
||||
${JREHOME}/lib/zi/Pacific/Wake
|
||||
${JREHOME}/lib/zi/Pacific/Wallis
|
||||
${JREHOME}/lib/zi/SystemV/
|
||||
${JREHOME}/lib/zi/SystemV/AST4
|
||||
${JREHOME}/lib/zi/SystemV/AST4ADT
|
||||
${JREHOME}/lib/zi/SystemV/CST6
|
||||
${JREHOME}/lib/zi/SystemV/CST6CDT
|
||||
${JREHOME}/lib/zi/SystemV/EST5
|
||||
${JREHOME}/lib/zi/SystemV/EST5EDT
|
||||
${JREHOME}/lib/zi/SystemV/HST10
|
||||
${JREHOME}/lib/zi/SystemV/MST7
|
||||
${JREHOME}/lib/zi/SystemV/MST7MDT
|
||||
${JREHOME}/lib/zi/SystemV/PST8
|
||||
${JREHOME}/lib/zi/SystemV/PST8PDT
|
||||
${JREHOME}/lib/zi/SystemV/YST9
|
||||
${JREHOME}/lib/zi/SystemV/YST9YDT
|
||||
${JREHOME}/lib/zi/WET
|
||||
${JREHOME}/lib/zi/ZoneInfoMappings
|
||||
@mandir ${JREHOME}/man/
|
||||
${JREHOME}/man/man1/
|
||||
@man ${JREHOME}/man/man1/java.1
|
||||
@man ${JREHOME}/man/man1/keytool.1
|
||||
@man ${JREHOME}/man/man1/orbd.1
|
||||
@man ${JREHOME}/man/man1/pack200.1
|
||||
@man ${JREHOME}/man/man1/policytool.1
|
||||
@man ${JREHOME}/man/man1/rmid.1
|
||||
@man ${JREHOME}/man/man1/rmiregistry.1
|
||||
@man ${JREHOME}/man/man1/servertool.1
|
||||
@man ${JREHOME}/man/man1/tnameserv.1
|
||||
@man ${JREHOME}/man/man1/unpack200.1
|
||||
%%client_vm%%
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user