This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Plan better.
[perl5.git] / hints / netbsd.sh
CommitLineData
a0d0e21e 1# hints/netbsd.sh
4633a7c4 2#
099685bc 3# talk to packages@netbsd.org if you want to change this file.
4633a7c4
LW
4#
5# netbsd keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
232e078e 6# so Configure doesn't find them (unless you abandon the nm scan).
4633a7c4 7# this should be *just* 0.9 below as netbsd 0.9a was the first to
099685bc 8# introduce shared libraries.
c9ef717e
MG
9
10case "$archname" in
11'')
12 archname=`uname -m`-${osname}
13 ;;
14esac
15
a0d0e21e 16case "$osvers" in
4633a7c4 170.9|0.8*)
a0d0e21e
LW
18 usedl="$undef"
19 ;;
c9ef717e 20*)
099685bc
JH
21 if [ -f /usr/libexec/ld.elf_so ]; then
22 d_dlopen=$define
23 d_dlerror=$define
900cf02d
JH
24 # Include the whole libgcc.a, required for Xerces-P, which
25 # needs __eh_alloc, __pure_virtual, and others.
26 # XXX This should be obsoleted by gcc-3.0.
27 ccdlflags="-Wl,-whole-archive -lgcc -Wl,-no-whole-archive \
30afd0dc 28 -Wl,-E $ccdlflags"
099685bc
JH
29 cccdlflags="-DPIC -fPIC $cccdlflags"
30 lddlflags="--whole-archive -shared $lddlflags"
31 elif [ "`uname -m`" = "pmax" ]; then
32# NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so, which will not work.
900cf02d
JH
33 case "$osvers" in
34 1.3|1.3.1)
35 d_dlopen=$undef
36 ;;
37 esac
099685bc 38 elif [ -f /usr/libexec/ld.so ]; then
c9ef717e
MG
39 d_dlopen=$define
40 d_dlerror=$define
4633a7c4
LW
41# we use -fPIC here because -fpic is *NOT* enough for some of the
42# extensions like Tk on some netbsd platforms (the sparc is one)
c9ef717e 43 cccdlflags="-DPIC -fPIC $cccdlflags"
9f060c84 44 lddlflags="-Bshareable $lddlflags"
099685bc
JH
45 else
46 d_dlopen=$undef
47 fi
491527d0
GS
48 ;;
49esac
c9ef717e
MG
50
51# netbsd had these but they don't really work as advertised, in the
52# versions listed below. if they are defined, then there isn't a
53# way to make perl call setuid() or setgid(). if they aren't, then
54# ($<, $>) = ($u, $u); will work (same for $(/$)). this is because
55# you can not change the real userid of a process under 4.4BSD.
099685bc 56# netbsd fixed this in 1.3.2.
229e211d 57case "$osvers" in
099685bc 580.9*|1.[012]*|1.3|1.3.1)
4633a7c4
LW
59 d_setregid="$undef"
60 d_setreuid="$undef"
a0d0e21e
LW
61 ;;
62esac
c4f23d77 63
434e0566
JH
64# These are obsolete in any netbsd.
65d_setrgid="$undef"
66d_setruid="$undef"
67
099685bc 68# there's no problem with vfork.
900cf02d
JH
69usevfork=true
70
9a368ae6
JH
71# This is there but in machine/ieeefp_h.
72ieeefp_h="define"
73
7b938c21
JH
74# This script UU/usethreads.cbu will get 'called-back' by Configure
75# after it has prompted the user for whether to use threads.
76cat > UU/usethreads.cbu <<'EOCBU'
77case "$usethreads" in
78$define|true|[yY]*)
79 # The GNU pth is the recommended user-level pthreads implementation.
80 # As of NetBSD 1.5.2 there are no kernel pthreads.
81 if pkg_info -qe pth; then
82 # Add -lpthread.
83 libswanted="$libswanted pthread"
7b938c21
JH
84 # There is no libc_r as of NetBSD 1.5.2, so no c -> c_r.
85 else
86 echo "$0: You need to install the GNU pth. Aborting." >&4
87 exit 1
88 fi
89 ;;
90esac
0b196741 91EOCBU
7b938c21 92
2bf2710f 93# Recognize the NetBSD packages collection.
b9685307
JH
94# GDBM might be here, pth might be there.
95if test -d /usr/pkg/lib; then
96 loclibpth="$loclibpth /usr/pkg/lib"
30afd0dc
JH
97 if [ -f /usr/libexec/ld.elf_so ]; then
98 ldflags="$ldflags -Wl,-R/usr/pkg/lib"
99 else
100 ldflags="$ldflags -R/usr/pkg/lib"
101 fi
b9685307 102fi
2bf2710f 103test -d /usr/pkg/include && locincpth="$locincpth /usr/pkg/include"