nspr: bump version (#5176)

This commit is contained in:
kenmays
2020-07-11 09:33:08 -07:00
committed by GitHub
parent e2e0cf6eba
commit 8148bc0dc3
8 changed files with 148 additions and 1586 deletions

View File

@@ -1,94 +0,0 @@
SUMMARY="A platform abstraction library"
DESCRIPTION="
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system \
level and libc-like functions. The API is used in the Mozilla clients, many \
of Red Hat's and Sun's server applications, and other software offerings.
"
LICENSE="
GNU GPL v2
GNU LGPL v2.1
MPL v2.0
"
COPYRIGHT="Mozilla Foundation"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
SOURCE_URI="https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$portVersion/src/nspr-$portVersion.tar.gz"
CHECKSUM_SHA256="343614971c30520d0fa55f4af0a72578e2d8674bb71caf7187490c3379523107"
REVISION="1"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
SOURCE_DIR="nspr-$portVersion/nspr"
PATCHES="nspr-$portVersion.patchset"
PROVIDES="
nspr$secondaryArchSuffix = $portVersion
lib:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplc4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:autoconf
cmd:aclocal
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:awk
cmd:perl
"
BUILD()
{
if [ $effectiveTargetArchitecture == 'x86_64' ]; then
use64bits="--enable-64bit"
fi
autoreconf -fi
runConfigure ./configure --disable-debug --enable-optimize \
$use64bits
make $jobArgs
}
INSTALL()
{
make install
# set up the develop directory correctly
prepareInstalledDevelLibs libnspr4 libplc4 libplds4
fixPkgconfig
rm $binDir/compile-et.pl
rm $binDir/prerr.properties
# devel package
packageEntries devel \
$developDir \
$dataDir/aclocal \
$binDir/nspr-config
}
TEST()
{
autoconf
runConfigure ./configure
cd pr/tests
make $jobArgs
make runtests
}
# ----- devel package -------------------------------------------------------
PROVIDES_devel="
nspr${secondaryArchSuffix}_devel = $portVersion compat >= 4
cmd:nspr_config$secondaryArchSuffix = $portVersion compat >= 4
devel:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplc4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES_devel="
nspr${secondaryArchSuffix} == $portVersion base
"

View File

@@ -1,93 +0,0 @@
SUMMARY="A platform abstraction library"
DESCRIPTION="
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system \
level and libc-like functions. The API is used in the Mozilla clients, many \
of Red Hat's and Sun's server applications, and other software offerings.
"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
COPYRIGHT="Mozilla Foundation"
LICENSE="
GNU GPL v2
GNU LGPL v2.1
MPL v2.0
"
REVISION="3"
SOURCE_URI="https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$portVersion/src/nspr-$portVersion.tar.gz"
CHECKSUM_SHA256="e0b10a1e569153668ff8bdea6c7e491b389fab69c2f18285a1ebf7c2ea4269de"
SOURCE_DIR="nspr-$portVersion/nspr"
PATCHES="nspr-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
nspr$secondaryArchSuffix = $portVersion
lib:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplc4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
nspr${secondaryArchSuffix}_devel = $portVersion compat >= 4
cmd:nspr_config$secondaryArchSuffix = $portVersion compat >= 4
devel:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplc4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES_devel="
nspr${secondaryArchSuffix} == $portVersion base
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:aclocal
cmd:autoconf
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:perl
"
BUILD()
{
if [ $effectiveTargetArchitecture == 'x86_64' ]; then
use64bits="--enable-64bit"
fi
autoreconf -fi
runConfigure ./configure --disable-debug --enable-optimize \
$use64bits
make $jobArgs
}
INSTALL()
{
make install
# set up the develop directory correctly
prepareInstalledDevelLibs libnspr4 libplc4 libplds4
fixPkgconfig
rm $binDir/compile-et.pl
rm $binDir/prerr.properties
# devel package
packageEntries devel \
$developDir \
$dataDir/aclocal \
$binDir/nspr-config
}
TEST()
{
autoconf
runConfigure ./configure
cd pr/tests
make $jobArgs
make runtests
}

View File

@@ -1,93 +0,0 @@
SUMMARY="A platform abstraction library"
DESCRIPTION="
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system \
level and libc-like functions. The API is used in the Mozilla clients, many \
of Red Hat's and Sun's server applications, and other software offerings.
"
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
COPYRIGHT="Mozilla Foundation"
LICENSE="
GNU GPL v2
GNU LGPL v2.1
MPL v2.0
"
REVISION="1"
SOURCE_URI="https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$portVersion/src/nspr-$portVersion.tar.gz"
CHECKSUM_SHA256="2ed95917fa2277910d1d1cf36030607dccc0ba522bba08e2af13c113dcd8f729"
SOURCE_DIR="nspr-$portVersion/nspr"
PATCHES="nspr-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="
nspr$secondaryArchSuffix = $portVersion
lib:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplc4$secondaryArchSuffix = $portVersion compat >= 4
lib:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES="
haiku$secondaryArchSuffix
"
PROVIDES_devel="
nspr${secondaryArchSuffix}_devel = $portVersion compat >= 4
cmd:nspr_config$secondaryArchSuffix = $portVersion compat >= 4
devel:libnspr4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplc4$secondaryArchSuffix = $portVersion compat >= 4
devel:libplds4$secondaryArchSuffix = $portVersion compat >= 4
"
REQUIRES_devel="
nspr${secondaryArchSuffix} == $portVersion base
"
BUILD_REQUIRES="
"
BUILD_PREREQUIRES="
haiku${secondaryArchSuffix}_devel
cmd:aclocal
cmd:autoconf
cmd:awk
cmd:gcc$secondaryArchSuffix
cmd:ld$secondaryArchSuffix
cmd:make
cmd:perl
"
BUILD()
{
if [ $effectiveTargetArchitecture == 'x86_64' ]; then
use64bits="--enable-64bit"
fi
autoreconf -fi
runConfigure ./configure --disable-debug --enable-optimize \
$use64bits
make $jobArgs
}
INSTALL()
{
make install
# set up the develop directory correctly
prepareInstalledDevelLibs libnspr4 libplc4 libplds4
fixPkgconfig
rm $binDir/compile-et.pl
rm $binDir/prerr.properties
# devel package
packageEntries devel \
$developDir \
$dataDir/aclocal \
$binDir/nspr-config
}
TEST()
{
autoconf
runConfigure ./configure
cd pr/tests
make $jobArgs
make runtests
}

View File

@@ -1,23 +1,21 @@
SUMMARY="A platform abstraction library"
DESCRIPTION="
Netscape Portable Runtime (NSPR) provides a platform-neutral API for system \
level and libc-like functions. The API is used in the Mozilla clients, many \
of Red Hat's and Sun's server applications, and other software offerings.
"
DESCRIPTION="Netscape Portable Runtime (NSPR) provides a platform-neutral \
API for system level and libc-like functions. The API is used in the \
Mozilla clients, many of Red Hat's and Sun's server applications, and \
other software offerings."
HOMEPAGE="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSPR"
COPYRIGHT="Mozilla Foundation"
LICENSE="
GNU GPL v2
GNU LGPL v2.1
MPL v2.0
"
LICENSE="GNU GPL v2
GNU LGPL v2.1
MPL v2.0
"
REVISION="1"
SOURCE_URI="https://ftp.mozilla.org/pub/mozilla.org/nspr/releases/v$portVersion/src/nspr-$portVersion.tar.gz"
CHECKSUM_SHA256="cb320a9eee7028275ac0fce7adc39dee36f14f02fd8432fce1b7e1aa5e3685c2"
CHECKSUM_SHA256="fc9d142d85b74ffd2e6374a0c9016f3f2dac074225e24df3070e5a72d31b773d"
SOURCE_DIR="nspr-$portVersion/nspr"
PATCHES="nspr-$portVersion.patchset"
ARCHITECTURES="!x86_gcc2 x86 x86_64"
ARCHITECTURES="!x86_gcc2 x86_64"
SECONDARY_ARCHITECTURES="x86"
PROVIDES="

View File

@@ -1,340 +0,0 @@
From c66dbd16637cadb9f5caa3392cf6a1c0abae7fad Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 27 Sep 2014 10:57:28 +0000
Subject: Patch from 4.10.6
diff --git a/configure.in b/configure.in
index fba01ae..c6f1967 100644
--- a/configure.in
+++ b/configure.in
@@ -1320,6 +1320,28 @@ case "$target" in
;;
esac
;;
+
+*-haiku*)
+ AC_DEFINE(XP_UNIX)
+ AC_DEFINE(HAIKU)
+ AC_DEFINE(HAVE_SOCKLEN_T)
+ AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
+ DSO_CFLAGS="-fPIC"
+ USE_PTHREADS=1
+ IMPL_STRATEGY=_PTH
+ MDCPUCFG_H=_linux.cfg
+ if test -n "$USE_64"; then
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ else
+ PR_MD_ASFILES=os_Linux_x86.s
+ fi
+ PR_MD_CSRCS=linux.c
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ DSO_CFLAGS=-fPIC
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
+ _OPTIMIZE_FLAGS=-O2
+ AC_CHECK_LIB(network, gethostbyaddr, [OS_LIBS="$OS_LIBS -lnetwork"])
+ ;;
*-bsdi*)
AC_DEFINE(XP_UNIX)
@@ -2557,7 +2579,7 @@ dnl The same goes for BeOS.
dnl OS/2 has dlfcn in libc.
case $target in
-*-darwin*|*-beos*|*-os2*)
+*-darwin*|*-beos*|*-haiku*|*-os2*)
;;
*)
AC_CHECK_LIB(dl, dlopen,
@@ -2663,7 +2685,7 @@ fi
esac
case "$target_os" in
-darwin*)
+darwin*|haiku*)
_HAVE_PTHREADS=1
;;
*)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 278f90c..669fb42 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -261,7 +261,8 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) \
+ || defined(HAIKU)
#define _PR_POLL_AVAILABLE
#endif
#undef _PR_USE_POLL
@@ -282,7 +283,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
#endif
-#ifndef ANDROID
+#if !defined(ANDROID) && !defined(HAIKU)
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
#endif
diff --git a/pr/include/md/_pth.h b/pr/include/md/_pth.h
index eeeef04..ef60438 100644
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -117,7 +117,8 @@
|| defined(HPUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t) (t) = 0
#define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) (t) == 0
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
@@ -170,7 +171,7 @@
|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(UNIXWARE) \
- || defined(DARWIN) || defined(SYMBIAN)
+ || defined(DARWIN) || defined(SYMBIAN) || defined(HAIKU)
#define PT_NO_SIGTIMEDWAIT
#endif
@@ -201,7 +202,7 @@
#endif /* defined(_PR_DCETHREADS) */
#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
- || defined(FREEBSD) || defined(SYMBIAN)
+ || defined(FREEBSD) || defined(SYMBIAN) || defined(HAIKU)
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
#elif defined(NTO)
@@ -261,7 +262,8 @@ extern int (*_PT_aix_yield_fcn)();
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_YIELD() sched_yield()
#else
#error "Need to define _PT_PTHREAD_YIELD for this platform"
diff --git a/pr/include/md/_unixos.h b/pr/include/md/_unixos.h
index 04d9904..5c3aa45 100644
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -15,7 +15,7 @@
* not be redefined.
*/
#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
- && !defined(DARWIN)
+ && !defined(DARWIN) && !defined(HAIKU)
#ifndef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
@@ -46,7 +46,7 @@
*/
#include <sys/time.h>
#include <sys/types.h>
-#if defined(AIX) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN) || defined(HAIKU)
#include <sys/select.h>
#endif
diff --git a/pr/include/md/prosdep.h b/pr/include/md/prosdep.h
index 94d8945..3cd48da 100644
--- a/pr/include/md/prosdep.h
+++ b/pr/include/md/prosdep.h
@@ -52,7 +52,7 @@ PR_BEGIN_EXTERN_C
#elif defined(IRIX)
#include "md/_irix.h"
-#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HAIKU)
#include "md/_linux.h"
#elif defined(OSF1)
diff --git a/pr/src/io/prmapopt.c b/pr/src/io/prmapopt.c
index f92a76b..d155e48 100644
--- a/pr/src/io/prmapopt.c
+++ b/pr/src/io/prmapopt.c
@@ -102,15 +102,15 @@ PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionDat
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- length = sizeof(bool);
+ length = sizeof(value);
rv = _PR_MD_GETSOCKOPT(
- fd, level, name, (char*)&bool, &length);
+ fd, level, name, (char*)&value, &length);
if (PR_SUCCESS == rv)
- data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE;
+ data->value.mcast_loopback = (0 == value) ? PR_FALSE : PR_TRUE;
break;
}
case PR_SockOpt_RecvBufferSize:
@@ -252,13 +252,13 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- bool = data->value.mcast_loopback ? 1 : 0;
+ value = data->value.mcast_loopback ? 1 : 0;
rv = _PR_MD_SETSOCKOPT(
- fd, level, name, (char*)&bool, sizeof(bool));
+ fd, level, name, (char*)&value, sizeof(value));
break;
}
case PR_SockOpt_RecvBufferSize:
diff --git a/pr/src/md/unix/linux.c b/pr/src/md/unix/linux.c
index 1b485a0..8a17e4e 100644
--- a/pr/src/md/unix/linux.c
+++ b/pr/src/md/unix/linux.c
@@ -25,12 +25,14 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
#ifdef _PR_PTHREADS
+#ifndef HAIKU
extern void _MD_unix_terminate_waitpid_daemon(void);
void _MD_CleanupBeforeExit(void)
{
_MD_unix_terminate_waitpid_daemon();
}
+#endif
#else /* ! _PR_PTHREADS */
diff --git a/pr/src/md/unix/uxrng.c b/pr/src/md/unix/uxrng.c
index da2f7e9..cbef872 100644
--- a/pr/src/md/unix/uxrng.c
+++ b/pr/src/md/unix/uxrng.c
@@ -86,7 +86,7 @@ GetHighResClock(void *buf, size_t maxbytes)
#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
|| defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD) \
- || defined(SYMBIAN) || defined(__GNU__))
+ || defined(SYMBIAN) || defined(__GNU__)) || defined(HAIKU)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c
index b86248f..c53d56e 100644
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -1154,7 +1154,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByAddr(
* any usable implementation.
*/
-#if defined(ANDROID)
+#if defined(ANDROID) || defined(HAIKU)
/* Android's Bionic libc system includes prototypes for these in netdb.h,
* but doesn't actually include implementations. It uses the 5-arg form,
* so these functions end up not matching the prototype. So just rename
diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c
index 125f1f9..fe51684 100644
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -28,7 +28,7 @@
#include <sys/uio.h>
#include <sys/file.h>
#include <sys/ioctl.h>
-#if defined(DARWIN)
+#if defined(DARWIN) || defined(HAIKU)
#include <sys/utsname.h> /* for uname */
#endif
#if defined(SOLARIS) || defined(UNIXWARE)
@@ -180,7 +180,8 @@ static PRBool _pr_ipv6_v6only_on_by_default;
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PRSelectFdSetArg_t fd_set *
#else
#error "Cannot determine architecture"
@@ -3256,7 +3257,7 @@ static PRIOMethods _pr_socketpollfd_methods = {
|| defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
|| defined(OPENBSD) || defined(BSDI) || defined(NTO) \
|| defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) \
- || defined(SYMBIAN)
+ || defined(SYMBIAN) || defined(HAIKU)
#define _PR_FCNTL_FLAGS O_NONBLOCK
#else
#error "Can't determine architecture"
diff --git a/pr/src/pthreads/ptthread.c b/pr/src/pthreads/ptthread.c
index 4ab564a..751454a 100644
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -21,7 +21,7 @@
#include <signal.h>
#include <dlfcn.h>
-#ifdef SYMBIAN
+#if defined(SYMBIAN) || defined(HAIKU)
/* In Open C sched_get_priority_min/max do not work properly, so we undefine
* _POSIX_THREAD_PRIORITY_SCHEDULING here.
*/
@@ -1417,7 +1417,7 @@ static void suspend_signal_handler(PRIntn sig)
#if !defined(FREEBSD) && !defined(NETBSD) && !defined(OPENBSD) \
&& !defined(BSDI) && !defined(UNIXWARE) \
&& !defined(DARWIN) && !defined(RISCOS) \
- && !defined(SYMBIAN) /*XXX*/
+ && !defined(SYMBIAN) && !defined(HAIKU) /*XXX*/
PRIntn rv;
sigwait(&sigwait_set, &rv);
#endif
@@ -1461,7 +1461,7 @@ static void pt_SuspendSet(PRThread *thred)
PR_LOG(_pr_gc_lm, PR_LOG_ALWAYS,
("doing pthread_kill in pt_SuspendSet thred %p tid = %X\n",
thred, thred->id));
-#if defined(SYMBIAN)
+#if defined(SYMBIAN)
/* All signal group functions are not implemented in Symbian OS */
rv = 0;
#else
diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in
index 9ebd923..5a3276e 100644
--- a/pr/tests/Makefile.in
+++ b/pr/tests/Makefile.in
@@ -369,7 +369,7 @@ LIBPTHREAD = -lpthread
ifeq ($(OS_ARCH),AIX)
LIBPTHREAD = -lpthreads
endif
-ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
+ifeq (,$(filter-out Haiku FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
LIBPTHREAD =
endif
ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)
@@ -450,6 +450,15 @@ $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
endif
+ifeq ($(OS_ARCH),Haiku)
+ifeq ($(USE_IPV6),1)
+$(OBJDIR)/gethost: $(OBJDIR)/gethost.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+
ifeq ($(USE_PTHREADS), 1)
$(OBJDIR)/attach: $(OBJDIR)/attach.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
--
1.8.3.4

View File

@@ -1,340 +0,0 @@
From c66dbd16637cadb9f5caa3392cf6a1c0abae7fad Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 27 Sep 2014 10:57:28 +0000
Subject: Patch from 4.10.6
diff --git a/configure.in b/configure.in
index fba01ae..c6f1967 100644
--- a/configure.in
+++ b/configure.in
@@ -1320,6 +1320,28 @@ case "$target" in
;;
esac
;;
+
+*-haiku*)
+ AC_DEFINE(XP_UNIX)
+ AC_DEFINE(HAIKU)
+ AC_DEFINE(HAVE_SOCKLEN_T)
+ AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
+ DSO_CFLAGS="-fPIC"
+ USE_PTHREADS=1
+ IMPL_STRATEGY=_PTH
+ MDCPUCFG_H=_linux.cfg
+ if test -n "$USE_64"; then
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ else
+ PR_MD_ASFILES=os_Linux_x86.s
+ fi
+ PR_MD_CSRCS=linux.c
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ DSO_CFLAGS=-fPIC
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
+ _OPTIMIZE_FLAGS=-O2
+ AC_CHECK_LIB(network, gethostbyaddr, [OS_LIBS="$OS_LIBS -lnetwork"])
+ ;;
*-bsdi*)
AC_DEFINE(XP_UNIX)
@@ -2557,7 +2579,7 @@ dnl The same goes for BeOS.
dnl OS/2 has dlfcn in libc.
case $target in
-*-darwin*|*-beos*|*-os2*)
+*-darwin*|*-beos*|*-haiku*|*-os2*)
;;
*)
AC_CHECK_LIB(dl, dlopen,
@@ -2663,7 +2685,7 @@ fi
esac
case "$target_os" in
-darwin*)
+darwin*|haiku*)
_HAVE_PTHREADS=1
;;
*)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index 278f90c..669fb42 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -261,7 +261,8 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) \
+ || defined(HAIKU)
#define _PR_POLL_AVAILABLE
#endif
#undef _PR_USE_POLL
@@ -282,7 +283,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
#endif
-#ifndef ANDROID
+#if !defined(ANDROID) && !defined(HAIKU)
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
#endif
diff --git a/pr/include/md/_pth.h b/pr/include/md/_pth.h
index eeeef04..ef60438 100644
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -117,7 +117,8 @@
|| defined(HPUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t) (t) = 0
#define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) (t) == 0
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
@@ -170,7 +171,7 @@
|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(UNIXWARE) \
- || defined(DARWIN) || defined(SYMBIAN)
+ || defined(DARWIN) || defined(SYMBIAN) || defined(HAIKU)
#define PT_NO_SIGTIMEDWAIT
#endif
@@ -201,7 +202,7 @@
#endif /* defined(_PR_DCETHREADS) */
#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
- || defined(FREEBSD) || defined(SYMBIAN)
+ || defined(FREEBSD) || defined(SYMBIAN) || defined(HAIKU)
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
#elif defined(NTO)
@@ -261,7 +262,8 @@ extern int (*_PT_aix_yield_fcn)();
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_YIELD() sched_yield()
#else
#error "Need to define _PT_PTHREAD_YIELD for this platform"
diff --git a/pr/include/md/_unixos.h b/pr/include/md/_unixos.h
index 04d9904..5c3aa45 100644
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -15,7 +15,7 @@
* not be redefined.
*/
#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
- && !defined(DARWIN)
+ && !defined(DARWIN) && !defined(HAIKU)
#ifndef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
@@ -46,7 +46,7 @@
*/
#include <sys/time.h>
#include <sys/types.h>
-#if defined(AIX) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN) || defined(HAIKU)
#include <sys/select.h>
#endif
diff --git a/pr/include/md/prosdep.h b/pr/include/md/prosdep.h
index 94d8945..3cd48da 100644
--- a/pr/include/md/prosdep.h
+++ b/pr/include/md/prosdep.h
@@ -52,7 +52,7 @@ PR_BEGIN_EXTERN_C
#elif defined(IRIX)
#include "md/_irix.h"
-#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HAIKU)
#include "md/_linux.h"
#elif defined(OSF1)
diff --git a/pr/src/io/prmapopt.c b/pr/src/io/prmapopt.c
index f92a76b..d155e48 100644
--- a/pr/src/io/prmapopt.c
+++ b/pr/src/io/prmapopt.c
@@ -102,15 +102,15 @@ PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionDat
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- length = sizeof(bool);
+ length = sizeof(value);
rv = _PR_MD_GETSOCKOPT(
- fd, level, name, (char*)&bool, &length);
+ fd, level, name, (char*)&value, &length);
if (PR_SUCCESS == rv)
- data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE;
+ data->value.mcast_loopback = (0 == value) ? PR_FALSE : PR_TRUE;
break;
}
case PR_SockOpt_RecvBufferSize:
@@ -252,13 +252,13 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- bool = data->value.mcast_loopback ? 1 : 0;
+ value = data->value.mcast_loopback ? 1 : 0;
rv = _PR_MD_SETSOCKOPT(
- fd, level, name, (char*)&bool, sizeof(bool));
+ fd, level, name, (char*)&value, sizeof(value));
break;
}
case PR_SockOpt_RecvBufferSize:
diff --git a/pr/src/md/unix/linux.c b/pr/src/md/unix/linux.c
index 1b485a0..8a17e4e 100644
--- a/pr/src/md/unix/linux.c
+++ b/pr/src/md/unix/linux.c
@@ -25,12 +25,14 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
#ifdef _PR_PTHREADS
+#ifndef HAIKU
extern void _MD_unix_terminate_waitpid_daemon(void);
void _MD_CleanupBeforeExit(void)
{
_MD_unix_terminate_waitpid_daemon();
}
+#endif
#else /* ! _PR_PTHREADS */
diff --git a/pr/src/md/unix/uxrng.c b/pr/src/md/unix/uxrng.c
index da2f7e9..cbef872 100644
--- a/pr/src/md/unix/uxrng.c
+++ b/pr/src/md/unix/uxrng.c
@@ -86,7 +86,7 @@ GetHighResClock(void *buf, size_t maxbytes)
#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
|| defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD) \
- || defined(SYMBIAN) || defined(__GNU__))
+ || defined(SYMBIAN) || defined(__GNU__)) || defined(HAIKU)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c
index b86248f..c53d56e 100644
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -1154,7 +1154,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByAddr(
* any usable implementation.
*/
-#if defined(ANDROID)
+#if defined(ANDROID) || defined(HAIKU)
/* Android's Bionic libc system includes prototypes for these in netdb.h,
* but doesn't actually include implementations. It uses the 5-arg form,
* so these functions end up not matching the prototype. So just rename
diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c
index 125f1f9..fe51684 100644
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -28,7 +28,7 @@
#include <sys/uio.h>
#include <sys/file.h>
#include <sys/ioctl.h>
-#if defined(DARWIN)
+#if defined(DARWIN) || defined(HAIKU)
#include <sys/utsname.h> /* for uname */
#endif
#if defined(SOLARIS) || defined(UNIXWARE)
@@ -180,7 +180,8 @@ static PRBool _pr_ipv6_v6only_on_by_default;
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PRSelectFdSetArg_t fd_set *
#else
#error "Cannot determine architecture"
@@ -3256,7 +3257,7 @@ static PRIOMethods _pr_socketpollfd_methods = {
|| defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
|| defined(OPENBSD) || defined(BSDI) || defined(NTO) \
|| defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) \
- || defined(SYMBIAN)
+ || defined(SYMBIAN) || defined(HAIKU)
#define _PR_FCNTL_FLAGS O_NONBLOCK
#else
#error "Can't determine architecture"
diff --git a/pr/src/pthreads/ptthread.c b/pr/src/pthreads/ptthread.c
index 4ab564a..751454a 100644
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -21,7 +21,7 @@
#include <signal.h>
#include <dlfcn.h>
-#ifdef SYMBIAN
+#if defined(SYMBIAN) || defined(HAIKU)
/* In Open C sched_get_priority_min/max do not work properly, so we undefine
* _POSIX_THREAD_PRIORITY_SCHEDULING here.
*/
@@ -1417,7 +1417,7 @@ static void suspend_signal_handler(PRIntn sig)
#if !defined(FREEBSD) && !defined(NETBSD) && !defined(OPENBSD) \
&& !defined(BSDI) && !defined(UNIXWARE) \
&& !defined(DARWIN) && !defined(RISCOS) \
- && !defined(SYMBIAN) /*XXX*/
+ && !defined(SYMBIAN) && !defined(HAIKU) /*XXX*/
PRIntn rv;
sigwait(&sigwait_set, &rv);
#endif
@@ -1461,7 +1461,7 @@ static void pt_SuspendSet(PRThread *thred)
PR_LOG(_pr_gc_lm, PR_LOG_ALWAYS,
("doing pthread_kill in pt_SuspendSet thred %p tid = %X\n",
thred, thred->id));
-#if defined(SYMBIAN)
+#if defined(SYMBIAN)
/* All signal group functions are not implemented in Symbian OS */
rv = 0;
#else
diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in
index 9ebd923..5a3276e 100644
--- a/pr/tests/Makefile.in
+++ b/pr/tests/Makefile.in
@@ -369,7 +369,7 @@ LIBPTHREAD = -lpthread
ifeq ($(OS_ARCH),AIX)
LIBPTHREAD = -lpthreads
endif
-ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
+ifeq (,$(filter-out Haiku FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
LIBPTHREAD =
endif
ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)
@@ -450,6 +450,15 @@ $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
endif
+ifeq ($(OS_ARCH),Haiku)
+ifeq ($(USE_IPV6),1)
+$(OBJDIR)/gethost: $(OBJDIR)/gethost.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+
ifeq ($(USE_PTHREADS), 1)
$(OBJDIR)/attach: $(OBJDIR)/attach.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
--
1.8.3.4

View File

@@ -1,446 +0,0 @@
From 50f8713d29dea6bca51fb974d8a87ecc2e58187a Mon Sep 17 00:00:00 2001
From: Jerome Duval <jerome.duval@gmail.com>
Date: Sat, 27 Sep 2014 10:57:28 +0000
Subject: Patch from 4.10.6
diff --git a/configure.in b/configure.in
index 2ab2383..7406732 100644
--- a/configure.in
+++ b/configure.in
@@ -1277,6 +1277,28 @@ case "$target" in
;;
esac
;;
+
+*-haiku*)
+ AC_DEFINE(XP_UNIX)
+ AC_DEFINE(HAIKU)
+ AC_DEFINE(HAVE_SOCKLEN_T)
+ AC_DEFINE(HAVE_FCNTL_FILE_LOCKING)
+ DSO_CFLAGS="-fPIC"
+ USE_PTHREADS=1
+ IMPL_STRATEGY=_PTH
+ MDCPUCFG_H=_linux.cfg
+ if test -n "$USE_64"; then
+ PR_MD_ASFILES=os_Linux_x86_64.s
+ else
+ PR_MD_ASFILES=os_Linux_x86.s
+ fi
+ PR_MD_CSRCS=linux.c
+ MKSHLIB='$(CC) $(DSO_LDOPTS) -o $@'
+ DSO_CFLAGS=-fPIC
+ DSO_LDOPTS='-shared -Wl,-soname -Wl,$(notdir $@)'
+ _OPTIMIZE_FLAGS=-O2
+ AC_CHECK_LIB(network, gethostbyaddr, [OS_LIBS="$OS_LIBS -lnetwork"])
+ ;;
*-bsdi*)
AC_DEFINE(XP_UNIX)
@@ -2515,7 +2537,7 @@ dnl The same goes for BeOS.
dnl OS/2 has dlfcn in libc.
case $target in
-*-darwin*|*-beos*|*-os2*)
+*-darwin*|*-beos*|*-haiku*|*-os2*)
;;
*)
AC_CHECK_LIB(dl, dlopen,
@@ -2622,7 +2644,7 @@ fi
esac
case "$target_os" in
-darwin*)
+darwin*|haiku*)
_HAVE_PTHREADS=1
;;
*)
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index b4b298b..98fcd34 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -285,7 +285,8 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) \
+ || defined(HAIKU)
#define _PR_POLL_AVAILABLE
#endif
#undef _PR_USE_POLL
@@ -306,7 +307,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
#endif
-#ifndef ANDROID
+#if !defined(ANDROID) && !defined(HAIKU)
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
#endif
diff --git a/pr/include/md/_pth.h b/pr/include/md/_pth.h
index eeeef04..ef60438 100644
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -117,7 +117,8 @@
|| defined(HPUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t) (t) = 0
#define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) (t) == 0
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
@@ -170,7 +171,7 @@
|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(UNIXWARE) \
- || defined(DARWIN) || defined(SYMBIAN)
+ || defined(DARWIN) || defined(SYMBIAN) || defined(HAIKU)
#define PT_NO_SIGTIMEDWAIT
#endif
@@ -201,7 +202,7 @@
#endif /* defined(_PR_DCETHREADS) */
#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
- || defined(FREEBSD) || defined(SYMBIAN)
+ || defined(FREEBSD) || defined(SYMBIAN) || defined(HAIKU)
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
#elif defined(NTO)
@@ -261,7 +262,8 @@ extern int (*_PT_aix_yield_fcn)();
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_YIELD() sched_yield()
#else
#error "Need to define _PT_PTHREAD_YIELD for this platform"
diff --git a/pr/include/md/_unixos.h b/pr/include/md/_unixos.h
index ea46b3a..b8e6825 100644
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -15,7 +15,7 @@
* not be redefined.
*/
#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
- && !defined(DARWIN)
+ && !defined(DARWIN) && !defined(HAIKU)
#ifndef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
@@ -46,7 +46,7 @@
*/
#include <sys/time.h>
#include <sys/types.h>
-#if defined(AIX) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN) || defined(HAIKU)
#include <sys/select.h>
#endif
diff --git a/pr/include/md/prosdep.h b/pr/include/md/prosdep.h
index 94d8945..3cd48da 100644
--- a/pr/include/md/prosdep.h
+++ b/pr/include/md/prosdep.h
@@ -52,7 +52,7 @@ PR_BEGIN_EXTERN_C
#elif defined(IRIX)
#include "md/_irix.h"
-#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HAIKU)
#include "md/_linux.h"
#elif defined(OSF1)
diff --git a/pr/src/io/prmapopt.c b/pr/src/io/prmapopt.c
index f92a76b..d155e48 100644
--- a/pr/src/io/prmapopt.c
+++ b/pr/src/io/prmapopt.c
@@ -102,15 +102,15 @@ PRStatus PR_CALLBACK _PR_SocketGetSocketOption(PRFileDesc *fd, PRSocketOptionDat
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- length = sizeof(bool);
+ length = sizeof(value);
rv = _PR_MD_GETSOCKOPT(
- fd, level, name, (char*)&bool, &length);
+ fd, level, name, (char*)&value, &length);
if (PR_SUCCESS == rv)
- data->value.mcast_loopback = (0 == bool) ? PR_FALSE : PR_TRUE;
+ data->value.mcast_loopback = (0 == value) ? PR_FALSE : PR_TRUE;
break;
}
case PR_SockOpt_RecvBufferSize:
@@ -252,13 +252,13 @@ PRStatus PR_CALLBACK _PR_SocketSetSocketOption(PRFileDesc *fd, const PRSocketOpt
case PR_SockOpt_McastLoopback:
{
#ifdef WIN32 /* Winsock */
- BOOL bool;
+ BOOL value;
#else
- PRUint8 bool;
+ PRUint8 value;
#endif
- bool = data->value.mcast_loopback ? 1 : 0;
+ value = data->value.mcast_loopback ? 1 : 0;
rv = _PR_MD_SETSOCKOPT(
- fd, level, name, (char*)&bool, sizeof(bool));
+ fd, level, name, (char*)&value, sizeof(value));
break;
}
case PR_SockOpt_RecvBufferSize:
diff --git a/pr/src/md/unix/linux.c b/pr/src/md/unix/linux.c
index 1b485a0..8a17e4e 100644
--- a/pr/src/md/unix/linux.c
+++ b/pr/src/md/unix/linux.c
@@ -25,12 +25,14 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
#ifdef _PR_PTHREADS
+#ifndef HAIKU
extern void _MD_unix_terminate_waitpid_daemon(void);
void _MD_CleanupBeforeExit(void)
{
_MD_unix_terminate_waitpid_daemon();
}
+#endif
#else /* ! _PR_PTHREADS */
diff --git a/pr/src/md/unix/uxrng.c b/pr/src/md/unix/uxrng.c
index da2f7e9..cbef872 100644
--- a/pr/src/md/unix/uxrng.c
+++ b/pr/src/md/unix/uxrng.c
@@ -86,7 +86,7 @@ GetHighResClock(void *buf, size_t maxbytes)
#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
|| defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD) \
- || defined(SYMBIAN) || defined(__GNU__))
+ || defined(SYMBIAN) || defined(__GNU__)) || defined(HAIKU)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c
index b2f6e43..6ff29e7 100644
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -1153,7 +1153,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByAddr(
* any usable implementation.
*/
-#if defined(ANDROID)
+#if defined(ANDROID) || defined(HAIKU)
/* Android's Bionic libc system includes prototypes for these in netdb.h,
* but doesn't actually include implementations. It uses the 5-arg form,
* so these functions end up not matching the prototype. So just rename
diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c
index e4fe519..98278da 100644
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -28,7 +28,7 @@
#include <sys/uio.h>
#include <sys/file.h>
#include <sys/ioctl.h>
-#if defined(DARWIN)
+#if defined(DARWIN) || defined(HAIKU)
#include <sys/utsname.h> /* for uname */
#endif
#if defined(SOLARIS) || defined(UNIXWARE)
@@ -180,7 +180,8 @@ static PRBool _pr_ipv6_v6only_on_by_default;
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PRSelectFdSetArg_t fd_set *
#else
#error "Cannot determine architecture"
@@ -3256,7 +3257,7 @@ static PRIOMethods _pr_socketpollfd_methods = {
|| defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
|| defined(OPENBSD) || defined(BSDI) || defined(NTO) \
|| defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) \
- || defined(SYMBIAN)
+ || defined(SYMBIAN) || defined(HAIKU)
#define _PR_FCNTL_FLAGS O_NONBLOCK
#else
#error "Can't determine architecture"
diff --git a/pr/src/pthreads/ptthread.c b/pr/src/pthreads/ptthread.c
index 9e12606..351c0bd 100644
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -25,7 +25,7 @@
#include <pthread_np.h>
#endif
-#ifdef SYMBIAN
+#if defined(SYMBIAN) || defined(HAIKU)
/* In Open C sched_get_priority_min/max do not work properly, so we undefine
* _POSIX_THREAD_PRIORITY_SCHEDULING here.
*/
@@ -1423,7 +1423,7 @@ static void suspend_signal_handler(PRIntn sig)
#if !defined(FREEBSD) && !defined(NETBSD) && !defined(OPENBSD) \
&& !defined(BSDI) && !defined(UNIXWARE) \
&& !defined(DARWIN) && !defined(RISCOS) \
- && !defined(SYMBIAN) /*XXX*/
+ && !defined(SYMBIAN) && !defined(HAIKU) /*XXX*/
PRIntn rv;
sigwait(&sigwait_set, &rv);
#endif
@@ -1467,7 +1467,7 @@ static void pt_SuspendSet(PRThread *thred)
PR_LOG(_pr_gc_lm, PR_LOG_ALWAYS,
("doing pthread_kill in pt_SuspendSet thred %p tid = %X\n",
thred, thred->id));
-#if defined(SYMBIAN)
+#if defined(SYMBIAN)
/* All signal group functions are not implemented in Symbian OS */
rv = 0;
#else
diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in
index df1f1f2..fd7e7bd 100644
--- a/pr/tests/Makefile.in
+++ b/pr/tests/Makefile.in
@@ -370,7 +370,7 @@ LIBPTHREAD = -lpthread
ifeq ($(OS_ARCH),AIX)
LIBPTHREAD = -lpthreads
endif
-ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
+ifeq (,$(filter-out Haiku FreeBSD OpenBSD BSD_OS QNX Darwin OpenUNIX,$(OS_ARCH)))
LIBPTHREAD =
endif
ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10)
@@ -451,6 +451,15 @@ $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
endif
+ifeq ($(OS_ARCH),Haiku)
+ifeq ($(USE_IPV6),1)
+$(OBJDIR)/gethost: $(OBJDIR)/gethost.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+$(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
+ $(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lnetwork $(EXTRA_LIBS) -o $@
+endif
+
ifeq ($(USE_PTHREADS), 1)
$(OBJDIR)/attach: $(OBJDIR)/attach.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
--
2.16.2
From 563af9c06ef061e025f071fcd323402b156a7c26 Mon Sep 17 00:00:00 2001
From: Adrien Destugues <pulkomandy@pulkomandy.tk>
Date: Sun, 6 May 2018 09:43:28 +0200
Subject: Fix build of libpurple on Haiku.
Enable the quirk used on BeOS to avoid redefinition of uint32, etc.
types.
diff --git a/pr/include/obsolete/protypes.h b/pr/include/obsolete/protypes.h
index 2275bce..a6a58ef 100644
--- a/pr/include/obsolete/protypes.h
+++ b/pr/include/obsolete/protypes.h
@@ -31,7 +31,7 @@ typedef PRIntn intn;
* BeOS defines all the int types below in its standard header
* file SupportDefs.h.
*/
-#ifdef XP_BEOS
+#if defined(XP_BEOS) || defined(__HAIKU__)
#include <support/SupportDefs.h>
#endif
@@ -56,7 +56,7 @@ typedef PRIntn intn;
* uint
*/
-#if !defined(XP_BEOS) && !defined(XP_OS2) && !defined(XP_UNIX) || defined(NTO)
+#if !defined(XP_BEOS) && !defined(__HAIKU__) && !defined(XP_OS2) && !defined(XP_UNIX) || defined(NTO)
typedef PRUintn uint;
#endif
@@ -64,7 +64,7 @@ typedef PRUintn uint;
* uint64
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(__HAIKU__)
typedef PRUint64 uint64;
#endif
@@ -72,7 +72,7 @@ typedef PRUint64 uint64;
* uint32
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(__HAIKU__)
#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
typedef PRUint32 uint32;
#else
@@ -84,7 +84,7 @@ typedef unsigned long uint32;
* uint16
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(__HAIKU__)
typedef PRUint16 uint16;
#endif
@@ -92,7 +92,7 @@ typedef PRUint16 uint16;
* uint8
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(__HAIKU__)
typedef PRUint8 uint8;
#endif
@@ -100,7 +100,7 @@ typedef PRUint8 uint8;
* int64
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
+#if !defined(XP_BEOS) && !defined(__HAIKU__) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
typedef PRInt64 int64;
#endif
@@ -108,7 +108,7 @@ typedef PRInt64 int64;
* int32
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(__HAIKU__) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
typedef PRInt32 int32;
@@ -121,7 +121,7 @@ typedef long int32;
* int16
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(__HAIKU__) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
typedef PRInt16 int16;
#endif
@@ -130,7 +130,7 @@ typedef PRInt16 int16;
* int8
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(__HAIKU__) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
typedef PRInt8 int8;
#endif
--
2.16.2

View File

@@ -1,26 +1,26 @@
From cd87dcbf617c39626938eb4e58ef69a42989556f Mon Sep 17 00:00:00 2001
From: Kacper Kasper <kacperkasper@gmail.com>
Date: Sat, 11 Aug 2018 00:33:28 +0200
Subject: Migrated previous patchsets
From 84edf90a3246ec87f4f28104d327d9d4e7a197fe Mon Sep 17 00:00:00 2001
From: Ken Mays <kmays2000@gmail.com>
Date: Sat, 27 Jun 2020 00:09:11 +0200
Subject: Migrated NSPR 4.19 patchset to NSPR 4.26
* NSPR 4.19 migration by Kacper Kasper
* Old patchset wouldn't apply anymore.
* Platform code by korli.
* pr/include/obsolete/prototypes.h by pulkomandy.
Fix build of libpurple.
* pr/include/prtypes.h by myself.
* Fix build of libpurple.
* pr/include/prtypes.h by Kacper Kasper.
Fix build of NSS. NSS uses XP_BEOS and defs for BeOS fail on GCC7.
diff --git a/configure.in b/configure.in
index ea0ae7f..c9bc83f 100644
index b62f1cd..a3b6610 100644
--- a/configure.in
+++ b/configure.in
@@ -1312,6 +1312,30 @@ case "$target" in
esac
@@ -1483,6 +1483,30 @@ tools are selected during the Xcode/Developer Tools installation.])
PR_MD_CSRCS=freebsd.c
;;
+*-haiku*)
+ AC_DEFINE(XP_UNIX)
+ AC_DEFINE(XP_HAIKU)
+ AC_DEFINE(HAIKU)
+ AC_DEFINE(Haiku)
+ AC_DEFINE(HAVE_SOCKLEN_T)
@@ -42,93 +42,92 @@ index ea0ae7f..c9bc83f 100644
+ AC_CHECK_LIB(network, gethostbyaddr, [OS_LIBS="$OS_LIBS -lnetwork"])
+ ;;
+
*-bsdi*)
+
*-hpux*)
AC_DEFINE(XP_UNIX)
AC_DEFINE(BSDI)
@@ -2560,7 +2584,7 @@ dnl The same goes for BeOS.
dnl OS/2 has dlfcn in libc.
case $target in
-*-darwin*|*-beos*|*-os2*)
+*-darwin*|*-beos*|*-haiku*|*-os2*)
AC_DEFINE(HPUX)
@@ -1632,7 +1656,7 @@ tools are selected during the Xcode/Developer Tools installation.])
fi
;;
*)
AC_CHECK_LIB(dl, dlopen,
@@ -2667,7 +2691,7 @@ fi
esac
case "$target_os" in
-darwin*)
+darwin*|haiku*)
_HAVE_PTHREADS=1
;;
*)
-*-linux*|*-gnu*|*-k*bsd*-gnu|*-android*|*-linuxandroid*)
+*-linux*|*-gnu*|*-k*bsd*-gnu|*-android*|*-linuxandroid*|*-haiku*)
if test -z "$USE_NSPR_THREADS"; then
USE_PTHREADS=1
IMPL_STRATEGY=_PTH
@@ -2514,7 +2538,7 @@ if test -n "$USE_PTHREADS"; then
_PTHREAD_LDFLAGS=-pthread
fi
;;
- *-linux*|*-gnu*|*-k*bsd*-gnu)
+ *-linux*|*-gnu*|*-k*bsd*-gnu|*-haiku*)
AC_DEFINE(_REENTRANT)
;;
esac
diff --git a/pr/include/md/_linux.h b/pr/include/md/_linux.h
index b4b298b..72acbd9 100644
index 9c0cff3..3e9874c 100644
--- a/pr/include/md/_linux.h
+++ b/pr/include/md/_linux.h
@@ -285,7 +285,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
@@ -299,7 +299,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#endif /* __arm__ */
#define USE_SETJMP
-#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) || defined(HAIKU)
+#if (defined(__GLIBC__) && __GLIBC__ >= 2) || defined(ANDROID) || defined(__HAIKU__)
#define _PR_POLL_AVAILABLE
#endif
#undef _PR_USE_POLL
@@ -306,7 +306,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
@@ -320,7 +320,7 @@ static inline PRInt32 _MD_ATOMIC_SET(PRInt32 *ptr, PRInt32 nv)
#define _PR_HAVE_GETADDRINFO
#define _PR_INET6_PROBE
#endif
-#ifndef ANDROID
+#if !defined(ANDROID) && !defined(HAIKU)
+#if !defined(ANDROID) && !defined(__HAIKU__)
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
#endif
diff --git a/pr/include/md/_pth.h b/pr/include/md/_pth.h
index 5603223..9d71422 100644
index 37d26e7..7c1d4c3 100644
--- a/pr/include/md/_pth.h
+++ b/pr/include/md/_pth.h
@@ -89,7 +89,8 @@
|| defined(HPUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
@@ -89,7 +89,7 @@
|| defined(HPUX) || defined(FREEBSD) \
|| defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \
|| defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(__HAIKU__)
#define _PT_PTHREAD_INVALIDATE_THR_HANDLE(t) (t) = 0
#define _PT_PTHREAD_THR_HANDLE_IS_INVALID(t) (t) == 0
#define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st)
@@ -116,7 +117,7 @@
|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(UNIXWARE) \
- || defined(DARWIN) || defined(SYMBIAN)
+ || defined(DARWIN) || defined(SYMBIAN) || defined(HAIKU)
@@ -116,7 +116,7 @@
|| defined(LINUX) || defined(__GNU__)|| defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(UNIXWARE) \
- || defined(DARWIN)
+ || defined(DARWIN) || defined(__HAIKU__)
#define PT_NO_SIGTIMEDWAIT
#endif
@@ -140,7 +141,7 @@
@@ -133,7 +133,7 @@
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
- || defined(FREEBSD) || defined(SYMBIAN)
+ || defined(FREEBSD) || defined(SYMBIAN) || defined(HAIKU)
- || defined(FREEBSD)
+ || defined(FREEBSD) || defined(__HAIKU__)
#define PT_PRIO_MIN sched_get_priority_min(SCHED_OTHER)
#define PT_PRIO_MAX sched_get_priority_max(SCHED_OTHER)
#elif defined(NTO)
@@ -198,7 +199,8 @@ extern int (*_PT_aix_yield_fcn)();
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
#define _PT_PTHREAD_YIELD() sched_yield()
@@ -177,7 +177,7 @@ extern int (*_PT_aix_yield_fcn)();
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(__HAIKU__)
#define _PT_PTHREAD_YIELD() sched_yield()
#else
#error "Need to define _PT_PTHREAD_YIELD for this platform"
diff --git a/pr/include/md/_unixos.h b/pr/include/md/_unixos.h
index ea46b3a..b8e6825 100644
index 7d444cd..0cc560b 100644
--- a/pr/include/md/_unixos.h
+++ b/pr/include/md/_unixos.h
@@ -15,7 +15,7 @@
@@ -136,7 +135,7 @@ index ea46b3a..b8e6825 100644
*/
#if !defined(LINUX) && !defined(__GNU__) && !defined(__GLIBC__) \
- && !defined(DARWIN)
+ && !defined(DARWIN) && !defined(HAIKU)
+ && !defined(DARWIN) && !defined(__HAIKU__)
#ifndef FD_SETSIZE
#define FD_SETSIZE 4096
#endif
@@ -144,133 +143,127 @@ index ea46b3a..b8e6825 100644
*/
#include <sys/time.h>
#include <sys/types.h>
-#if defined(AIX) || defined(SYMBIAN)
+#if defined(AIX) || defined(SYMBIAN) || defined(HAIKU)
-#if defined(AIX)
+#if defined(AIX) || defined(__HAIKU__)
#include <sys/select.h>
#endif
diff --git a/pr/include/md/prosdep.h b/pr/include/md/prosdep.h
index 94d8945..3cd48da 100644
index 42eba3d..e372315 100644
--- a/pr/include/md/prosdep.h
+++ b/pr/include/md/prosdep.h
@@ -52,7 +52,7 @@ PR_BEGIN_EXTERN_C
#elif defined(IRIX)
#include "md/_irix.h"
@@ -49,7 +49,7 @@ PR_BEGIN_EXTERN_C
#elif defined(HPUX)
#include "md/_hpux.h"
-#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(HAIKU)
+#elif defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) || defined(__HAIKU__)
#include "md/_linux.h"
#elif defined(OSF1)
#elif defined(DARWIN)
diff --git a/pr/include/obsolete/protypes.h b/pr/include/obsolete/protypes.h
index 2275bce..647fad0 100644
index 5400afb..65eb0f5 100644
--- a/pr/include/obsolete/protypes.h
+++ b/pr/include/obsolete/protypes.h
@@ -31,7 +31,7 @@ typedef PRIntn intn;
* BeOS defines all the int types below in its standard header
* file SupportDefs.h.
@@ -9,6 +9,9 @@
* possible time. The NSPR API is implemented and documented using
* the new definitions.
*/
-#ifdef XP_BEOS
+#if defined(XP_BEOS) || defined(XP_HAIKU)
#include <support/SupportDefs.h>
+#if defined(__HAIKU__)
+#include <SupportDefs.h>
+#endif
#if !defined(PROTYPES_H)
#define PROTYPES_H
@@ -35,7 +38,7 @@ typedef PRIntn intn;
*
* On OS/2, sys/types.h defines uint.
*/
-#if defined(XP_UNIX) || defined(XP_OS2)
+#if defined(XP_UNIX) || defined(XP_OS2) || defined(__HAIKU__)
#include <sys/types.h>
#endif
@@ -56,7 +56,7 @@ typedef PRIntn intn;
@@ -48,7 +51,7 @@ typedef PRIntn intn;
* uint
*/
-#if !defined(XP_BEOS) && !defined(XP_OS2) && !defined(XP_UNIX) || defined(NTO)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU) && !defined(XP_OS2) && !defined(XP_UNIX) || defined(NTO)
-#if !defined(XP_OS2) && !defined(XP_UNIX) || defined(NTO)
+#if !defined(XP_OS2) && !defined(XP_UNIX) && !defined(__HAIKU__) || defined(NTO)
typedef PRUintn uint;
#endif
@@ -64,7 +64,7 @@ typedef PRUintn uint;
@@ -56,13 +59,15 @@ typedef PRUintn uint;
* uint64
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU)
+#if !defined(__HAIKU__)
typedef PRUint64 uint64;
#endif
+#endif
@@ -72,7 +72,7 @@ typedef PRUint64 uint64;
/*
* uint32
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU)
#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
-#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
+#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO) && !defined(__HAIKU__)
typedef PRUint32 uint32;
#else
@@ -84,7 +84,7 @@ typedef unsigned long uint32;
typedef unsigned long uint32;
@@ -72,19 +77,23 @@ typedef unsigned long uint32;
* uint16
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU)
+#if !defined(__HAIKU__)
typedef PRUint16 uint16;
#endif
+#endif
@@ -92,7 +92,7 @@ typedef PRUint16 uint16;
/*
* uint8
*/
-#if !defined(XP_BEOS)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU)
+#if !defined(__HAIKU__)
typedef PRUint8 uint8;
#endif
+#endif
@@ -100,7 +100,7 @@ typedef PRUint8 uint8;
/*
* int64
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
+#if !defined(XP_BEOS) && !defined(XP_HAIKU) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
-#if !defined(_PR_AIX_HAVE_BSD_INT_TYPES)
+#if !defined(_PR_AIX_HAVE_BSD_INT_TYPES) && !defined(__HAIKU__)
typedef PRInt64 int64;
#endif
@@ -108,7 +108,7 @@ typedef PRInt64 int64;
* int32
@@ -93,7 +102,7 @@ typedef PRInt64 int64;
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(XP_HAIKU) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
#if !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
- && !defined(HPUX)
+ && !defined(HPUX) && !defined(__HAIKU__)
#if !defined(_WIN32) && !defined(XP_OS2) && !defined(NTO)
typedef PRInt32 int32;
@@ -121,7 +121,7 @@ typedef long int32;
* int16
#else
@@ -106,7 +115,7 @@ typedef long int32;
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(XP_HAIKU) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
#if !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
- && !defined(HPUX)
+ && !defined(HPUX) && !defined(__HAIKU__)
typedef PRInt16 int16;
#endif
@@ -130,7 +130,7 @@ typedef PRInt16 int16;
* int8
@@ -115,7 +124,7 @@ typedef PRInt16 int16;
*/
-#if !defined(XP_BEOS) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
+#if !defined(XP_BEOS) && !defined(XP_HAIKU) && !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
&& !defined(HPUX)
#if !defined(_PR_AIX_HAVE_BSD_INT_TYPES) \
- && !defined(HPUX)
+ && !defined(HPUX) && !defined(__HAIKU__)
typedef PRInt8 int8;
#endif
diff --git a/pr/include/prtypes.h b/pr/include/prtypes.h
index 94bca3c..2ae14be 100644
--- a/pr/include/prtypes.h
+++ b/pr/include/prtypes.h
@@ -64,7 +64,7 @@
#define PR_CALLBACK_DECL
#define PR_STATIC_CALLBACK(__x) static __x
-#elif defined(XP_BEOS)
+#elif defined(XP_BEOS) && !defined(XP_HAIKU)
#define PR_EXPORT(__type) extern __declspec(dllexport) __type
#define PR_EXPORT_DATA(__type) extern __declspec(dllexport) __type
diff --git a/pr/src/md/unix/linux.c b/pr/src/md/unix/linux.c
index 1b485a0..8a17e4e 100644
index 6bfc7a8..976085f 100644
--- a/pr/src/md/unix/linux.c
+++ b/pr/src/md/unix/linux.c
@@ -25,12 +25,14 @@ PRWord *_MD_HomeGCRegisters(PRThread *t, int isCurrent, int *np)
@@ -289,33 +282,33 @@ index 1b485a0..8a17e4e 100644
#else /* ! _PR_PTHREADS */
diff --git a/pr/src/md/unix/uxrng.c b/pr/src/md/unix/uxrng.c
index da2f7e9..cbef872 100644
index 4798590..ad10a18 100644
--- a/pr/src/md/unix/uxrng.c
+++ b/pr/src/md/unix/uxrng.c
@@ -86,7 +86,7 @@ GetHighResClock(void *buf, size_t maxbytes)
@@ -64,7 +64,7 @@ GetHighResClock(void *buf, size_t maxbytes)
#elif (defined(LINUX) || defined(FREEBSD) || defined(__FreeBSD_kernel__) \
|| defined(NETBSD) || defined(__NetBSD_kernel__) || defined(OPENBSD) \
- || defined(SYMBIAN) || defined(__GNU__))
+ || defined(SYMBIAN) || defined(__GNU__)) || defined(HAIKU)
- || defined(__GNU__))
+ || defined(__GNU__)) || defined(__HAIKU__)
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
diff --git a/pr/src/misc/prnetdb.c b/pr/src/misc/prnetdb.c
index affebf6..78d00a0 100644
index 6ad0242..32984fa 100644
--- a/pr/src/misc/prnetdb.c
+++ b/pr/src/misc/prnetdb.c
@@ -1153,7 +1153,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByAddr(
@@ -1198,7 +1198,7 @@ PR_IMPLEMENT(PRStatus) PR_GetHostByAddr(
* any usable implementation.
*/
-#if defined(ANDROID)
+#if defined(ANDROID) || defined(HAIKU)
+#if defined(ANDROID) || defined(__HAIKU__)
/* Android's Bionic libc system includes prototypes for these in netdb.h,
* but doesn't actually include implementations. It uses the 5-arg form,
* so these functions end up not matching the prototype. So just rename
diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c
index f6aa567..4d08aca 100644
index 3ad2d80..8f685c9 100644
--- a/pr/src/pthreads/ptio.c
+++ b/pr/src/pthreads/ptio.c
@@ -28,7 +28,7 @@
@@ -323,56 +316,33 @@ index f6aa567..4d08aca 100644
#include <sys/file.h>
#include <sys/ioctl.h>
-#if defined(DARWIN)
+#if defined(DARWIN) || defined(HAIKU)
+#if defined(DARWIN) || defined(__HAIKU__)
#include <sys/utsname.h> /* for uname */
#endif
#if defined(SOLARIS) || defined(UNIXWARE)
@@ -183,7 +183,8 @@ static PRBool _pr_ipv6_v6only_on_by_default;
@@ -183,7 +183,7 @@ static PRBool _pr_ipv6_v6only_on_by_default;
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \
|| defined(BSDI) || defined(NTO) || defined(DARWIN) \
- || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(SYMBIAN) \
+ || defined(HAIKU)
- || defined(UNIXWARE) || defined(RISCOS)
+ || defined(UNIXWARE) || defined(RISCOS) || defined(__HAIKU__)
#define _PRSelectFdSetArg_t fd_set *
#else
#error "Cannot determine architecture"
@@ -3352,7 +3353,7 @@ static PRIOMethods _pr_socketpollfd_methods = {
@@ -3477,7 +3477,7 @@ static PRIOMethods _pr_socketpollfd_methods = {
|| defined(LINUX) || defined(__GNU__) || defined(__GLIBC__) \
|| defined(AIX) || defined(FREEBSD) || defined(NETBSD) \
|| defined(OPENBSD) || defined(BSDI) || defined(NTO) \
|| defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) \
- || defined(SYMBIAN)
+ || defined(SYMBIAN) || defined(HAIKU)
- || defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS)
+ || defined(DARWIN) || defined(UNIXWARE) || defined(RISCOS) || defined(__HAIKU__)
#define _PR_FCNTL_FLAGS O_NONBLOCK
#else
#error "Can't determine architecture"
diff --git a/pr/src/pthreads/ptthread.c b/pr/src/pthreads/ptthread.c
index e61a4cb..ce22451 100644
--- a/pr/src/pthreads/ptthread.c
+++ b/pr/src/pthreads/ptthread.c
@@ -25,7 +25,7 @@
#include <pthread_np.h>
#endif
-#ifdef SYMBIAN
+#if defined(SYMBIAN) || defined(HAIKU)
/* In Open C sched_get_priority_min/max do not work properly, so we undefine
* _POSIX_THREAD_PRIORITY_SCHEDULING here.
*/
@@ -1371,7 +1371,7 @@ static void suspend_signal_handler(PRIntn sig)
#if !defined(FREEBSD) && !defined(NETBSD) && !defined(OPENBSD) \
&& !defined(BSDI) && !defined(UNIXWARE) \
&& !defined(DARWIN) && !defined(RISCOS) \
- && !defined(SYMBIAN) /*XXX*/
+ && !defined(SYMBIAN) && !defined(HAIKU)/*XXX*/
PRIntn rv;
sigwait(&sigwait_set, &rv);
#endif
diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in
index 79a67f0..6a1dd4d 100644
index a58a846..c5bd9a7 100644
--- a/pr/tests/Makefile.in
+++ b/pr/tests/Makefile.in
@@ -370,7 +370,7 @@ LIBPTHREAD = -lpthread
@@ -327,7 +327,7 @@ LIBPTHREAD = -lpthread
ifeq ($(OS_ARCH),AIX)
LIBPTHREAD = -lpthreads
endif
@@ -381,7 +351,7 @@ index 79a67f0..6a1dd4d 100644
LIBPTHREAD =
endif
endif
@@ -448,6 +448,15 @@ $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
@@ -405,6 +405,15 @@ $(OBJDIR)/prpoll: $(OBJDIR)/prpoll.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) -lsocket $(EXTRA_LIBS) -o $@
endif
@@ -398,5 +368,5 @@ index 79a67f0..6a1dd4d 100644
$(OBJDIR)/attach: $(OBJDIR)/attach.o
$(PURE) $(CC) $(XCFLAGS) $< $(LDOPTS) $(LIBPLC) $(LIBNSPR) $(LIBPTHREAD) $(EXTRA_LIBS) -o $@
--
2.16.4
2.27.0