summaryrefslogtreecommitdiff
path: root/hints/netbsd.sh
diff options
context:
space:
mode:
Diffstat (limited to 'hints/netbsd.sh')
-rw-r--r--hints/netbsd.sh28
1 files changed, 25 insertions, 3 deletions
diff --git a/hints/netbsd.sh b/hints/netbsd.sh
index 67cd95c2ad..24ffe15f73 100644
--- a/hints/netbsd.sh
+++ b/hints/netbsd.sh
@@ -1,17 +1,39 @@
# hints/netbsd.sh
-# netbsd keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
+#
+# talk to mrg@eterna.com.au 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.
case "$osvers" in
-0.9*|0.8*)
+0.9|0.8*)
usedl="$undef"
;;
*) d_dlopen=$define
d_dlerror=$define
- cccdlflags="-DPIC -fpic $cccdlflags"
+# 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"
+# netbsd has these but they don't really work as advertised. if they
+# are defined, then there isn't a 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.
+ d_setregid="$undef"
+ d_setreuid="$undef"
+ d_setrgid="$undef"
+ d_setruid="$undef"
;;
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"'
+
+case "$archname" in
+'')
+ archname=`uname -m`-${osname}
+ ;;
+esac