3 # Please check with packages@netbsd.org before making modifications
8 archname=`uname -m`-${osname}
12 # NetBSD keeps dynamic loading dl*() functions in /usr/lib/crt0.o,
13 # so Configure doesn't find them (unless you abandon the nm scan).
14 # Also, NetBSD 0.9a was the first release to introduce shared
24 # NetBSD 1.3 and 1.3.1 on pmax shipped an `old' ld.so,
25 # which will not work.
33 if test -f /usr/libexec/ld.elf_so; then
37 cccdlflags="-DPIC -fPIC $cccdlflags"
38 lddlflags="-shared $lddlflags"
39 # gcc 4.6 doesn't support --whole-archive, but check for it
40 # if the user chooses a new compiler later, this is pointless
41 echo 'int f(void) { return 0; }' >try.c
42 if ${cc:-cc} $cccdlflags -c try.c -otry.o 2>&1 &&
43 ${cc:-cc} --whole-archive $lddlflags try.o -otry.so 2>&1 ; then
44 lddlflags="--whole-archive $lddlflags"
46 rm try.c try.o try.so 2>/dev/null
47 rpathflag="-Wl,-rpath,"
51 # Include the whole libgcc.a into the perl executable
52 # so that certain symbols needed by loadable modules
53 # built as C++ objects (__eh_alloc, __pure_virtual,
54 # etc.) will always be defined.
56 ccdlflags="-Wl,-whole-archive -lgcc \
57 -Wl,-no-whole-archive -Wl,-E $ccdlflags"
60 ccdlflags="-Wl,-E $ccdlflags"
63 elif test -f /usr/libexec/ld.so; then
67 cccdlflags="-DPIC -fPIC $cccdlflags"
68 lddlflags="-Bshareable $lddlflags"
77 # netbsd had these but they don't really work as advertised, in the
78 # versions listed below. if they are defined, then there isn't a
79 # way to make perl call setuid() or setgid(). if they aren't, then
80 # ($<, $>) = ($u, $u); will work (same for $(/$)). this is because
81 # you can not change the real userid of a process under 4.4BSD.
82 # netbsd fixed this in 1.3.2.
84 0.9*|1.[012]*|1.3|1.3.1)
90 0.9*|1.*|2.*|3.*|4.*|5.*)
91 d_getprotoent_r="$undef"
92 d_getprotobyname_r="$undef"
93 d_getprotobynumber_r="$undef"
94 d_setprotoent_r="$undef"
95 d_endprotoent_r="$undef"
96 d_getservent_r="$undef"
97 d_getservbyname_r="$undef"
98 d_getservbyport_r="$undef"
99 d_setservent_r="$undef"
100 d_endservent_r="$undef"
101 d_getprotoent_r_proto="0"
102 d_getprotobyname_r_proto="0"
103 d_getprotobynumber_r_proto="0"
104 d_setprotoent_r_proto="0"
105 d_endprotoent_r_proto="0"
106 d_getservent_r_proto="0"
107 d_getservbyname_r_proto="0"
108 d_getservbyport_r_proto="0"
109 d_setservent_r_proto="0"
110 d_endservent_r_proto="0"
114 # These are obsolete in any netbsd.
118 # there's no problem with vfork.
121 # This is there but in machine/ieeefp_h.
124 # This script UU/usethreads.cbu will get 'called-back' by Configure
125 # after it has prompted the user for whether to use threads.
126 cat > UU/usethreads.cbu <<'EOCBU'
127 case "$usethreads" in
130 for xxx in pthread; do
131 for yyy in $loclibpth $plibpth $glibpth dummy; do
133 if test -f "$zzz"; then
138 if test -f "$zzz"; then
142 zzz=`ls $yyy/lib$xxx.so.* 2>/dev/null`
143 if test "X$zzz" != X; then
148 if test "X$lpthread" != X; then
152 if test "X$lpthread" != X; then
154 libswanted="$libswanted $lpthread"
155 # There is no libc_r as of NetBSD 1.5.2, so no c -> c_r.
156 # This will be revisited when NetBSD gains a native pthreads
159 echo "$0: No POSIX threads library (-lpthread) found. " \
160 "You may want to install GNU pth. Aborting." >&4
165 # several reentrant functions are embedded in libc, but haven't
166 # been added to the header files yet. Let's hold off on using
167 # them until they are a valid part of the API
170 d_getprotobyname_r=$undef
171 d_getprotobynumber_r=$undef
172 d_getprotoent_r=$undef
173 d_getservbyname_r=$undef
174 d_getservbyport_r=$undef
175 d_getservent_r=$undef
176 d_setprotoent_r=$undef
177 d_setservent_r=$undef
178 d_endprotoent_r=$undef
179 d_endservent_r=$undef ;;
186 # Set sensible defaults for NetBSD: look for local software in
187 # /usr/pkg (NetBSD Packages Collection) and in /usr/local.
189 loclibpth="/usr/pkg/lib /usr/local/lib"
190 locincpth="/usr/pkg/include /usr/local/include"
197 for yyy in $loclibpth; do
198 ldflags="$ldflags $rpathflag$yyy"
205 echo 'int main() {}' > try.c
206 gcc=`${cc:-cc} -v -c try.c 2>&1|grep 'gcc version egcs-2'`
208 '' | "gcc version egcs-2.95."[3-9]*) ;; # 2.95.3 or better okay
211 *** Your gcc ($gcc) is known to be
212 *** too buggy on netbsd/alpha to compile Perl with optimization.
213 *** It is suggested you install the lang/gcc package which should
214 *** have at least gcc 2.95.3 which should work okay: use for example
215 *** Configure -Dcc=/usr/pkg/gcc-2.95.3/bin/cc. You could also
216 *** Configure -Doptimize=-O0 to compile Perl without any optimization
217 *** but that is not recommended.
227 # NetBSD/sparc 1.5.3/1.6.1 dumps core in the semid_ds test of Configure.
229 sparc) d_semctl_semid_ds=undef ;;
233 case "$usemallocwrap" in
234 '') usemallocwrap='define' ;;
237 # don't use perl malloc by default
238 case "$usemymalloc" in