EOM
exit 1
fi
- # In principle, on FreeBSD 4.X, you can dispense
- # with -pthread like this:
- # cc -o tt{,.c} -nostdlib -lc_r /usr/lib/crt1.o
- # On modern 5.X, however, one has to link with
- # BOTH libc and libc_r.
- # Using -pthread is just easier.
- # If one wants to link against an alternative
- # threads implementation (libthr, libpthread, etc),
- # one has to jump through a number of hoops anyway,
- # so no win there, so leave the -pthread in.
- # --Anton Berezin <tobez>
+ # 500016 is the first osreldate in which one could
+ # just link against libc_r without disposing of libc
+ # at the same time. 500016 ... up to whatever it was
+ # on the 31st of August 2003 can still be used with -pthread,
+ # but it is not necessary.
+
+ # Anton Berezin says that post 500something we're wrong to be
+ # to be using -lc_r, and should just be using -pthread on the
+ # linker line.
+ # So presumably really we should be checking that $osver is 5.*)
+ # and that `/sbin/sysctl -n kern.osreldate` -ge 500016
+ # or -lt 500something and only in that range not doing this:
ldflags="-pthread $ldflags"
- case "$osvers" in
+
# Both in 4.x and 5.x gethostbyaddr_r exists but
# it is "Temporary function, not threadsafe"...
- 4.*) d_gethostbyaddr_r="undef"
- d_gethostbyaddr_r_proto="0"
- ;;
- 5.*) d_gethostbyaddr_r="undef"
- d_gethostbyaddr_r_proto="0"
-
- ;;
- esac
+ # Presumably earlier it didn't even exist.
+ d_gethostbyaddr_r="undef"
+ d_gethostbyaddr_r_proto="0"
;;
esac
- set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
- shift
- libswanted="$*"
+ case "$osvers" in
+ [1-4]*)
+ set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
+ shift
+ libswanted="$*"
+ ;;
+ *)
+ set `echo X "$libswanted "| sed -e 's/ c //'`
+ shift
+ libswanted="$*"
+ ;;
+ esac
+
# Configure will probably pick the wrong libc to use for nm scan.
# The safest quick-fix is just to not use nm at all...
usenm=false
# Even with the malloc mutexes the Perl malloc does not
# seem to be threadsafe in FreeBSD?
- usemymalloc=n
-
+ case "$usemymalloc" in
+ '') usemymalloc=n ;;
+ esac
esac
EOCBU
+# malloc wrap works
+case "$usemallocwrap" in
+'') usemallocwrap='define' ;;
+esac