fix AIX hints for PL_* changes
[p5sagit/p5-mst-13.2.git] / hints / freebsd.sh
1 # Original based on info from
2 # Carl M. Fongheiser <cmf@ins.infonet.net>
3 # Date: Thu, 28 Jul 1994 19:17:05 -0500 (CDT)
4 #
5 # Additional 1.1.5 defines from 
6 # Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
7 # Date: Wed, 28 Sep 1994 00:37:46 +0100 (MET)
8 #
9 # Additional 2.* defines from
10 # Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
11 # Date: Sat, 8 Apr 1995 20:53:41 +0200 (MET DST)
12 #
13 # Additional 2.0.5 and 2.1 defined from
14 # Ollivier Robert <Ollivier.Robert@keltia.frmug.fr.net>
15 # Date: Fri, 12 May 1995 14:30:38 +0200 (MET DST)
16 #
17 # Additional 2.2 defines from
18 # Mark Murray <mark@grondar.za>
19 # Date: Wed, 6 Nov 1996 09:44:58 +0200 (MET)
20 #
21 # Modified to ensure we replace -lc with -lc_r, and
22 # to put in place-holders for various specific hints.
23 # Andy Dougherty <doughera@lafcol.lafayette.edu>
24 # Date: Tue Mar 10 16:07:00 EST 1998
25 #
26 # The two flags "-fpic -DPIC" are used to indicate a
27 # will-be-shared object.  Configure will guess the -fpic, (and the
28 # -DPIC is not used by perl proper) but the full define is included to 
29 # be consistent with the FreeBSD general shared libs building process.
30 #
31 # setreuid and friends are inherently broken in all versions of FreeBSD
32 # before 2.1-current (before approx date 4/15/95). It is fixed in 2.0.5
33 # and what-will-be-2.1
34 #
35
36 case "$osvers" in
37 0.*|1.0*)
38         usedl="$undef"
39         ;;
40 1.1*)
41         malloctype='void *'
42         groupstype='int'
43         d_setregid='undef'
44         d_setreuid='undef'
45         d_setrgid='undef'
46         d_setruid='undef'
47         ;;
48 2.0-release*)
49         d_setregid='undef'
50         d_setreuid='undef'
51         d_setrgid='undef'
52         d_setruid='undef'
53         ;;
54 #
55 # Trying to cover 2.0.5, 2.1-current and future 2.1/2.2
56 # It does not covert all 2.1-current versions as the output of uname
57 # changed a few times.
58 #
59 # Even though seteuid/setegid are available, they've been turned off
60 # because perl isn't coded with saved set[ug]id variables in mind.
61 # In addition, a small patch is requried to suidperl to avoid a security
62 # problem with FreeBSD.
63 #
64 2.0.5*|2.0-built*|2.1*)
65         usevfork='true'
66         usemymalloc='n'
67         d_setregid='define'
68         d_setreuid='define'
69         d_setegid='undef'
70         d_seteuid='undef'
71         test -r ./broken-db.msg && . ./broken-db.msg
72         ;;
73 #
74 # 2.2 and above have phkmalloc(3).
75 # don't use -lmalloc (maybe there's an old one from 1.1.5.1 floating around)
76 2.2*)
77         usevfork='true'
78         usemymalloc='n'
79         libswanted=`echo $libswanted | sed 's/ malloc / /'`
80         d_setregid='define'
81         d_setreuid='define'
82         d_setegid='undef'
83         d_seteuid='undef'
84         ;;
85 #
86 # Guesses at what will be needed after 2.2
87 *)      usevfork='true'
88         usemymalloc='n'
89         libswanted=`echo $libswanted | sed 's/ malloc / /'`
90         ;;
91 esac
92
93 # Dynamic Loading flags have not changed much, so they are separated
94 # out here to avoid duplicating them everywhere.
95 case "$osvers" in
96 0.*|1.0*) ;;
97
98 3.0*)   if [ -e /usr/lib/aout ]; then
99             libpth="/usr/lib/aout /usr/local/lib /usr/lib"
100             glibpth="/usr/lib/aout /usr/local/lib /usr/lib"
101         fi
102         cccdlflags='-DPIC -fpic'
103         lddlflags='-Bshareable'
104         ;;
105
106 *)      cccdlflags='-DPIC -fpic'
107         lddlflags="-Bshareable $lddlflags"
108         ;;
109 esac
110
111 cat <<'EOM' >&4
112
113 Some users have reported that Configure halts when testing for
114 the O_NONBLOCK symbol with a syntax error.  This is apparently a
115 sh error.  Rerunning Configure with ksh apparently fixes the
116 problem.  Try
117         ksh Configure [your options]
118
119 EOM
120
121 # XXX EXPERIMENTAL  A.D.  03/09/1998
122 # XXX This script UU/usethreads.cbu will get 'called-back' by Configure
123 # XXX after it has prompted the user for whether to use threads.
124 cat > UU/usethreads.cbu <<'EOSH'
125 case "$usethreads" in
126 $define)
127     case "$osvers" in  
128         3.0*) ldflags="-pthread $ldflags"
129               ;;
130         2.2*) if [ ! -r /usr/lib/libc_r ]; then
131                 cat <<'EOM' >&4
132 POSIX threads are not supported by default on FreeBSD $uname_r.  Follow the
133 instructions in 'man pthread' to build and install the needed libraries.
134 EOM
135                  exit 1
136               fi
137               set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
138               shift
139               libswanted="$*"
140               # Configure will probably pick the wrong libc to use for nm
141               # scan.
142               # The safest quick-fix is just to not use nm at all.
143               usenm=false
144               ;;
145          *)   cat <<'EOM' >&4
146 It is not known if FreeBSD $uname_r supports POSIX threads or not.  Consider
147 upgrading to the latest STABLE release.
148 EOM
149               exit 1
150               ;;
151     esac
152     ;;
153 esac
154 EOSH
155 # XXX EXPERIMENTAL  --end of call-back