diff options
author | wtc%netscape.com <devnull@localhost> | 2000-04-04 00:27:26 +0000 |
---|---|---|
committer | wtc%netscape.com <devnull@localhost> | 2000-04-04 00:27:26 +0000 |
commit | d03f5b02d834d217331fcdca5aa01c7d61a5c460 (patch) | |
tree | 8bc51bc144e92ae5535842b0b65fa108b372aaf8 | |
parent | 5af6ab2c71b1c434ba0d7df64e83a954b99d7a9f (diff) | |
download | nspr-hg-SeaMonkey_M15_BASE.tar.gz |
Bugzilla bug #31697: merged the Mac OS X (Darwin) port onto theSeaMonkey_M15_RELEASESeaMonkey_M15_BASE
NSPRPUB_CLIENT_BRANCH.
Modified files: Rhapsody.mk, arch.mk, _pth.h, _rhapsody.h, prlink.c,
rhapsody.c, uxproces.c, uxrng.c, ptio.c, pr/tests/Makefile,
pr/tests/Makefile.in
-rw-r--r-- | config/Rhapsody.mk | 17 | ||||
-rw-r--r-- | config/arch.mk | 3 | ||||
-rw-r--r-- | pr/include/md/_darwin.h | 2 | ||||
-rw-r--r-- | pr/include/md/_pth.h | 6 | ||||
-rw-r--r-- | pr/include/md/_rhapsody.h | 2 | ||||
-rw-r--r-- | pr/src/linking/prlink.c | 11 | ||||
-rw-r--r-- | pr/src/md/unix/darwin.c | 27 | ||||
-rw-r--r-- | pr/src/md/unix/rhapsody.c | 27 | ||||
-rw-r--r-- | pr/src/md/unix/uxproces.c | 8 | ||||
-rw-r--r-- | pr/src/md/unix/uxrng.c | 3 | ||||
-rw-r--r-- | pr/src/pthreads/ptio.c | 7 | ||||
-rw-r--r-- | pr/tests/Makefile | 2 | ||||
-rw-r--r-- | pr/tests/Makefile.in | 2 |
13 files changed, 90 insertions, 27 deletions
diff --git a/config/Rhapsody.mk b/config/Rhapsody.mk index 7f3c9116..afc1352e 100644 --- a/config/Rhapsody.mk +++ b/config/Rhapsody.mk @@ -21,12 +21,19 @@ include $(MOD_DEPTH)/config/UNIX.mk -CC = cc -ifeq ($(OS_RELEASE),5.0) -CCC = cc++ +# +# The default implementation strategy for Rhapsody is pthreads. +# +ifeq ($(CLASSIC_NSPR),1) +IMPL_STRATEGY = _EMU +DEFINES += -D_PR_LOCAL_THREADS_ONLY else -CCC = c++ +USE_PTHREADS = 1 +IMPL_STRATEGY = _PTH endif + +CC = cc +CCC = c++ RANLIB = ranlib ifeq (86,$(findstring 86,$(OS_TEST))) @@ -49,8 +56,6 @@ endif OS_CFLAGS = $(DSO_CFLAGS) $(OS_REL_CFLAGS) -Wmost -fno-common -pipe -DRHAPSODY -DHAVE_STRERROR -DHAVE_BSD_FLOCK -DEFINES += -D_PR_LOCAL_THREADS_ONLY - ARCH = rhapsody # May override this with -bundle to create a loadable module. diff --git a/config/arch.mk b/config/arch.mk index 67734e44..9f4be290 100644 --- a/config/arch.mk +++ b/config/arch.mk @@ -50,6 +50,9 @@ OS_ARCH := UNIXWARE OS_RELEASE := $(shell uname -v) endif endif +ifeq ($(OS_ARCH),Mac OS) +OS_ARCH := Rhapsody +endif ifeq ($(OS_ARCH),ncr) OS_ARCH := NCR endif diff --git a/pr/include/md/_darwin.h b/pr/include/md/_darwin.h index d97e6a3c..98a2f1ed 100644 --- a/pr/include/md/_darwin.h +++ b/pr/include/md/_darwin.h @@ -42,8 +42,8 @@ #define USE_MACH_DYLD #define _PR_HAVE_SOCKADDR_LEN #define _PR_STAT_HAS_ST_ATIMESPEC -#define _PR_TIMESPEC_HAS_TS_SEC #define _PR_NO_LARGE_FILES +#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY #define USE_SETJMP diff --git a/pr/include/md/_pth.h b/pr/include/md/_pth.h index 6e2e90c0..2fe641ff 100644 --- a/pr/include/md/_pth.h +++ b/pr/include/md/_pth.h @@ -93,7 +93,7 @@ #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(SOLARIS) \ || defined(HPUX) || defined(LINUX) || defined(FREEBSD) \ || defined(NETBSD) || defined(OPENBSD) || defined(BSDI) \ - || defined(VMS) || defined(NTO) + || defined(VMS) || defined(NTO) || defined(RHAPSODY) #define _PT_PTHREAD_ZERO_THR_HANDLE(t) (t) = 0 #define _PT_PTHREAD_THR_HANDLE_IS_ZERO(t) (t) == 0 #define _PT_PTHREAD_COPY_THR_HANDLE(st, dt) (dt) = (st) @@ -204,7 +204,7 @@ #define PT_PRIO_MIN 1 #define PT_PRIO_MAX 127 #elif defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \ - || defined(BSDI) /* XXX */ + || defined(BSDI) || defined(RHAPSODY) /* XXX */ #define PT_PRIO_MIN 0 #define PT_PRIO_MAX 126 #else @@ -237,7 +237,7 @@ extern int (*_PT_aix_yield_fcn)(); PR_END_MACRO #elif defined(HPUX) || defined(LINUX) || defined(SOLARIS) \ || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \ - || defined(BSDI) || defined(NTO) + || defined(BSDI) || defined(NTO) || defined(RHAPSODY) #define _PT_PTHREAD_YIELD() sched_yield() #else #error "Need to define _PT_PTHREAD_YIELD for this platform" diff --git a/pr/include/md/_rhapsody.h b/pr/include/md/_rhapsody.h index d97e6a3c..98a2f1ed 100644 --- a/pr/include/md/_rhapsody.h +++ b/pr/include/md/_rhapsody.h @@ -42,8 +42,8 @@ #define USE_MACH_DYLD #define _PR_HAVE_SOCKADDR_LEN #define _PR_STAT_HAS_ST_ATIMESPEC -#define _PR_TIMESPEC_HAS_TS_SEC #define _PR_NO_LARGE_FILES +#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY #define USE_SETJMP diff --git a/pr/src/linking/prlink.c b/pr/src/linking/prlink.c index e4d093f1..2601966f 100644 --- a/pr/src/linking/prlink.c +++ b/pr/src/linking/prlink.c @@ -734,7 +734,7 @@ pr_LoadLibraryByPathname(const char *name, PRIntn flags) NSModule h = NULL; if (NSCreateObjectFileImageFromFile(name, &ofi) == NSObjectFileImageSuccess) { - h = NSLinkModule(ofi, name, TRUE); + h = NSLinkModule(ofi, name, NSLINKMODULE_OPTION_PRIVATE); } #else #error Configuration error @@ -1083,7 +1083,14 @@ pr_FindSymbolInLib(PRLibrary *lm, const char *name) f = NULL; } #elif defined(USE_MACH_DYLD) - f = NSAddressOfSymbol(NSLookupAndBindSymbol(name)); + { + NSSymbol symbol; + symbol = NSLookupSymbolInModule(lm->dlh, name); + if (symbol != NULL) + f = NSAddressOfSymbol(symbol); + else + f = NULL; + } #endif #endif /* HAVE_DLL */ #endif /* XP_UNIX */ diff --git a/pr/src/md/unix/darwin.c b/pr/src/md/unix/darwin.c index ff5f1ad7..93421318 100644 --- a/pr/src/md/unix/darwin.c +++ b/pr/src/md/unix/darwin.c @@ -87,13 +87,32 @@ _MD_CREATE_THREAD( } #endif /* ! _PR_PTHREADS */ +#if defined(_PR_PTHREADS) + /* -** Whoops, we don't have a syscall stub for this +** Stubs for unimplemented functions */ -int mprotect (caddr_t addr, size_t size, int prot) + +int pthread_condattr_init(pthread_condattr_t *attr) +{ + return 0; +} + +int pthread_kill(pthread_t thread, int sig) { - return -1; -} + return ENOSYS; +} + +typedef struct siginfo_t siginfo_t; + +int sigtimedwait(const sigset_t *set, siginfo_t *info, + const struct timespec *timeout) +{ + errno = ENOSYS; + return -1; +} + +#endif /* _PR_PTHREADS */ /* rhapsody.c */ diff --git a/pr/src/md/unix/rhapsody.c b/pr/src/md/unix/rhapsody.c index ff5f1ad7..93421318 100644 --- a/pr/src/md/unix/rhapsody.c +++ b/pr/src/md/unix/rhapsody.c @@ -87,13 +87,32 @@ _MD_CREATE_THREAD( } #endif /* ! _PR_PTHREADS */ +#if defined(_PR_PTHREADS) + /* -** Whoops, we don't have a syscall stub for this +** Stubs for unimplemented functions */ -int mprotect (caddr_t addr, size_t size, int prot) + +int pthread_condattr_init(pthread_condattr_t *attr) +{ + return 0; +} + +int pthread_kill(pthread_t thread, int sig) { - return -1; -} + return ENOSYS; +} + +typedef struct siginfo_t siginfo_t; + +int sigtimedwait(const sigset_t *set, siginfo_t *info, + const struct timespec *timeout) +{ + errno = ENOSYS; + return -1; +} + +#endif /* _PR_PTHREADS */ /* rhapsody.c */ diff --git a/pr/src/md/unix/uxproces.c b/pr/src/md/unix/uxproces.c index 8c0a9b96..ac0c6ef8 100644 --- a/pr/src/md/unix/uxproces.c +++ b/pr/src/md/unix/uxproces.c @@ -27,7 +27,11 @@ #include <dlfcn.h> /* For dlopen, dlsym, dlclose */ #endif +#if defined(RHAPSODY) +#include <crt_externs.h> +#else extern char **environ; +#endif /* * HP-UX 9 doesn't have the SA_RESTART flag. @@ -156,7 +160,11 @@ ForkAndExec( childEnvp = envp; if (attr && attr->fdInheritBuffer) { if (NULL == childEnvp) { +#ifdef RHAPSODY + childEnvp = *(_NSGetEnviron()); +#else childEnvp = environ; +#endif } for (nEnv = 0; childEnvp[nEnv]; nEnv++) { } diff --git a/pr/src/md/unix/uxrng.c b/pr/src/md/unix/uxrng.c index 23b88705..305d13af 100644 --- a/pr/src/md/unix/uxrng.c +++ b/pr/src/md/unix/uxrng.c @@ -261,7 +261,8 @@ GetHighResClock(void *buf, size_t maxbytes) { return 0; } -#elif defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(NTO) || defined(QNX) +#elif defined(SCO) || defined(UNIXWARE) || defined(BSDI) || defined(NTO) \ + || defined(QNX) || defined(RHAPSODY) #include <sys/times.h> static size_t diff --git a/pr/src/pthreads/ptio.c b/pr/src/pthreads/ptio.c index b301ebd5..9dfcffeb 100644 --- a/pr/src/pthreads/ptio.c +++ b/pr/src/pthreads/ptio.c @@ -123,7 +123,7 @@ static ssize_t (*pt_aix_sendfile_fptr)() = NULL; #define _PRSockOptVal_t char * #elif defined(IRIX) || defined(OSF1) || defined(AIX) || defined(HPUX) \ || defined(LINUX) || defined(FREEBSD) || defined(BSDI) || defined(VMS) \ - || defined(NTO) || defined(OPENBSD) + || defined(NTO) || defined(OPENBSD) || defined(RHAPSODY) #define _PRSockOptVal_t void * #else #error "Cannot determine architecture" @@ -137,7 +137,7 @@ static ssize_t (*pt_aix_sendfile_fptr)() = NULL; || defined(OSF1) || defined(SOLARIS) \ || defined(HPUX10_30) || defined(HPUX11) || defined(LINUX) \ || defined(FREEBSD) || defined(NETBSD) || defined(OPENBSD) \ - || defined(BSDI) || defined(VMS) || defined(NTO) + || defined(BSDI) || defined(VMS) || defined(NTO) || defined(RHAPSODY) #define _PRSelectFdSetArg_t fd_set * #else #error "Cannot determine architecture" @@ -2424,7 +2424,8 @@ static PRIOMethods _pr_socketpollfd_methods = { #if defined(HPUX) || defined(OSF1) || defined(SOLARIS) || defined (IRIX) \ || defined(AIX) || defined(LINUX) || defined(FREEBSD) || defined(NETBSD) \ - || defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) + || defined(OPENBSD) || defined(BSDI) || defined(VMS) || defined(NTO) \ + || defined(RHAPSODY) #define _PR_FCNTL_FLAGS O_NONBLOCK #else #error "Can't determine architecture" diff --git a/pr/tests/Makefile b/pr/tests/Makefile index d1851723..943eaa10 100644 --- a/pr/tests/Makefile +++ b/pr/tests/Makefile @@ -423,7 +423,7 @@ LIBPTHREAD = -lpthread ifeq ($(OS_ARCH),AIX) LIBPTHREAD = -lpthreads endif -ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS NTO,$(OS_ARCH))) +ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS NTO Rhapsody,$(OS_ARCH))) LIBPTHREAD = endif ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10) diff --git a/pr/tests/Makefile.in b/pr/tests/Makefile.in index 30dad6d7..56104459 100644 --- a/pr/tests/Makefile.in +++ b/pr/tests/Makefile.in @@ -425,7 +425,7 @@ LIBPTHREAD = -lpthread ifeq ($(OS_ARCH),AIX) LIBPTHREAD = -lpthreads endif -ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS NTO,$(OS_ARCH))) +ifeq (,$(filter-out FreeBSD OpenBSD BSD_OS NTO Rhapsody,$(OS_ARCH))) LIBPTHREAD = endif ifeq ($(OS_ARCH)$(basename $(OS_RELEASE)),HP-UXB.10) |