summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile.SH5
-rw-r--r--hints/netbsd.sh61
-rwxr-xr-xmakedepend.SH1
-rw-r--r--unixish.h2
4 files changed, 32 insertions, 37 deletions
diff --git a/Makefile.SH b/Makefile.SH
index 3095db84bf..22bb3357cd 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -46,9 +46,12 @@ true)
os2*) # OS/2 doesn't need anything special for LD_LIBRARY_PATH.
ldlibpth=''
;;
- sunos*|freebsd[23]*|netbsd*)
+ sunos*|freebsd[23]*)
linklibperl="-lperl"
;;
+ netbsd*)
+ linklibperl="-L. -lperl"
+ ;;
aix*)
shrpldflags="-H512 -T512 -bhalt:4 -bM:SRE -bE:perl.exp"
case "$osvers" in
diff --git a/hints/netbsd.sh b/hints/netbsd.sh
index 71d508448a..a8cc7dc708 100644
--- a/hints/netbsd.sh
+++ b/hints/netbsd.sh
@@ -1,12 +1,11 @@
# hints/netbsd.sh
#
-# talk to mrg@eterna.com.au if you want to change this file.
+# talk to packages@netbsd.org if you want to change this file.
#
# netbsd keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
# so Configure doesn't find them (unless you abandon the nm scan).
# this should be *just* 0.9 below as netbsd 0.9a was the first to
-# introduce shared libraries. however, they don't work/build on
-# pmax, powerpc and alpha ports correctly, yet.
+# introduce shared libraries.
case "$archname" in
'')
@@ -19,34 +18,26 @@ case "$osvers" in
usedl="$undef"
;;
*)
- case `uname -m` in
- alpha|powerpc|pmax)
+ if [ -f /usr/libexec/ld.elf_so ]; then
+ d_dlopen=$define
+ d_dlerror=$define
+ ccdlflags="-Wl,-E -Wl,-R${PREFIX}/lib $ccdlflags"
+ cccdlflags="-DPIC -fPIC $cccdlflags"
+ lddlflags="--whole-archive -shared $lddlflags"
+ elif [ "`uname -m`" = "pmax" ]; then
+# NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so, which will not work.
d_dlopen=$undef
- ;;
-# this doesn't work (yet).
-# alpha)
-# d_dlopen=$define
-# d_dlerror=$define
-# cccdlflags="-DPIC -fPIC $cccdlflags"
-# lddlflags="-shared $lddlflags"
-# ;;
- *)
+ elif [ -f /usr/libexec/ld.so ]; then
d_dlopen=$define
d_dlerror=$define
+ ccdlflags="-Wl,-R${PREFIX}/lib $ccdlflags"
# we use -fPIC here because -fpic is *NOT* enough for some of the
# extensions like Tk on some netbsd platforms (the sparc is one)
cccdlflags="-DPIC -fPIC $cccdlflags"
lddlflags="-Bforcearchive -Bshareable $lddlflags"
- ;;
- esac
- ;;
-esac
-# netbsd 1.3 linker warns about setr[gu]id being deprecated.
-# (setregid, setreuid, preferred?)
-case "$osvers" in
-1.3|1.3*)
- d_setrgid="$undef"
- d_setruid="$undef"
+ else
+ d_dlopen=$undef
+ fi
;;
esac
@@ -55,25 +46,25 @@ esac
# way to make perl call setuid() or setgid(). if they aren't, then
# ($<, $>) = ($u, $u); will work (same for $(/$)). this is because
# you can not change the real userid of a process under 4.4BSD.
-# netbsd fixed this in 1.2A.
+# netbsd fixed this in 1.3.2.
case "$osvers" in
-0.9*|1.0*|1.1*|1.2_*|1.2|1.2.*)
+0.9*|1.[012]*|1.3|1.3.1)
d_setregid="$undef"
d_setreuid="$undef"
d_setrgid="$undef"
d_setruid="$undef"
;;
esac
-# netbsd 1.3 linker warns about setr[gu]id being deprecated.
-# (setregid, setreuid, preferred?)
-case "$osvers" in
-1.3|1.3*)
- d_setrgid="$undef"
- d_setruid="$undef"
- ;;
-esac
-# vfork is ok on NetBSD.
+# there's no problem with vfork.
case "$usevfork" in
'') usevfork=true ;;
esac
+
+# Avoid telldir prototype conflict in pp_sys.c (NetBSD uses const DIR *)
+# Configure should test for this. Volunteers?
+pp_sys_cflags='ccflags="$ccflags -DHAS_TELLDIR_PROTOTYPE"'
+
+# Pre-empt the /usr/bin/perl question of installperl.
+installusrbinperl='n'
+
diff --git a/makedepend.SH b/makedepend.SH
index 74c3ecb817..8176204e35 100755
--- a/makedepend.SH
+++ b/makedepend.SH
@@ -67,6 +67,7 @@ if test -f Makefile; then
# to be out of date. I don't know if OS/2 has touch, so do this:
case "$osname" in
os2) ;;
+ netbsd) ;;
*) $touch $firstmakefile ;;
esac
fi
diff --git a/unixish.h b/unixish.h
index 2a6cbcdb88..eab2de1643 100644
--- a/unixish.h
+++ b/unixish.h
@@ -89,7 +89,7 @@
*/
/* #define ALTERNATE_SHEBANG "#!" / **/
-#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX)
+#if !defined(NSIG) || defined(M_UNIX) || defined(M_XENIX) || defined(__NetBSD__)
# include <signal.h>
#endif