summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorwtc%netscape.com <devnull@localhost>2000-07-06 20:46:03 +0000
committerwtc%netscape.com <devnull@localhost>2000-07-06 20:46:03 +0000
commitf7aca14a83e3c74d34092d1c67a62e35b8c0354f (patch)
tree9beb2f7a55786d0fc4e54d4dd735381b987e2471
parentbf62dcd82a5e7890e0c1158b0d92cb25e4323d0d (diff)
downloadnspr-hg-f7aca14a83e3c74d34092d1c67a62e35b8c0354f.tar.gz
Bugzilla bug #41524: fixed build problems on NetBSD-current with ELF
object format. r=taya@sm.sony.co.jp. a=brendan@mozilla.org. Modified files: NetBSD.mk, _netbsd.h, prlink.c (NSPRPUB_CLIENT_BRANCH)
-rw-r--r--config/NetBSD.mk21
-rw-r--r--pr/include/md/_netbsd.h9
-rw-r--r--pr/src/linking/prlink.c3
3 files changed, 21 insertions, 12 deletions
diff --git a/config/NetBSD.mk b/config/NetBSD.mk
index 1aeac473..44a96cdf 100644
--- a/config/NetBSD.mk
+++ b/config/NetBSD.mk
@@ -25,6 +25,10 @@ CC = gcc
CCC = g++
RANLIB = ranlib
+ifndef OBJECT_FMT
+OBJECT_FMT := $(shell if echo __ELF__ | $${CC:-cc} -E - | grep -q __ELF__ ; then echo a.out ; else echo ELF ; fi)
+endif
+
OS_REL_CFLAGS =
ifeq (86,$(findstring 86,$(OS_TEST)))
CPU_ARCH = x86
@@ -44,20 +48,15 @@ endif
ARCH = netbsd
+ifeq($(OBJECT_FMT),ELF)
+DLL_SUFFIX = so
+else
DLL_SUFFIX = so.1.0
+endif
-DSO_CFLAGS = -fPIC
+DSO_CFLAGS = -fPIC -DPIC
DSO_LDFLAGS =
-DSO_LDOPTS = -Bshareable
-ifeq ($(OS_TEST),alpha)
-DSO_LDOPTS = -shared
-endif
-ifeq ($(OS_TEST),mips)
-DSO_LDOPTS = -shared
-endif
-ifeq ($(OS_TEST),pmax)
-DSO_LDOPTS = -shared
-endif
+DSO_LDOPTS = -x -shared
ifdef LIBRUNPATH
DSO_LDOPTS += -R$(LIBRUNPATH)
diff --git a/pr/include/md/_netbsd.h b/pr/include/md/_netbsd.h
index 49aca74b..45b04493 100644
--- a/pr/include/md/_netbsd.h
+++ b/pr/include/md/_netbsd.h
@@ -39,7 +39,11 @@
#define _PR_SI_ARCHITECTURE "arm32"
#endif
+#if defined(__ELF__)
+#define PR_DLL_SUFFIX ".so"
+#else
#define PR_DLL_SUFFIX ".so.1.0"
+#endif
#define _PR_VMBASE 0x30000000
#define _PR_STACK_VMBASE 0x50000000
@@ -52,6 +56,8 @@
#define _PR_HAVE_SOCKADDR_LEN
#define _PR_NO_LARGE_FILES
#define _PR_STAT_HAS_ST_ATIMESPEC
+#define _PR_POLL_AVAILABLE
+#define _PR_USE_POLL
#define _PR_HAVE_SYSV_SEMAPHORES
#define PR_HAVE_SYSV_NAMED_SHARED_MEMORY
@@ -210,7 +216,10 @@ struct _MDCPU {
* unwrapped version.
*/
#define _MD_SELECT(nfds,r,w,e,tv) syscall(SYS_select,nfds,r,w,e,tv)
+#if defined(_PR_POLL_AVAILABLE)
+#include <poll.h>
#define _MD_POLL(fds,nfds,timeout) syscall(SYS_poll,fds,nfds,timeout)
+#endif
#if NetBSD1_3 == 1L
typedef unsigned int nfds_t;
diff --git a/pr/src/linking/prlink.c b/pr/src/linking/prlink.c
index b4cde65a..c42491ef 100644
--- a/pr/src/linking/prlink.c
+++ b/pr/src/linking/prlink.c
@@ -64,7 +64,8 @@
* On these platforms, symbols have a leading '_'.
*/
#if defined(SUNOS4) || defined(RHAPSODY) || defined(NEXTSTEP) \
- || defined(OPENBSD) || defined(WIN16) || defined(NETBSD)
+ || defined(OPENBSD) || defined(WIN16) \
+ || (defined(NETBSD) && !defined(__ELF__))
#define NEED_LEADING_UNDERSCORE
#endif