[PATCH for 5.004_64] Configure patch Config_64-01
[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 *)      cccdlflags='-DPIC -fpic'
98         lddlflags="-Bshareable $lddlflags"
99         ;;
100 esac
101
102 cat <<'EOM' >&4
103
104 Some users have reported that Configure halts when testing for
105 the O_NONBLOCK symbol with a syntax error.  This is apparently a
106 sh error.  Rerunning Configure with ksh apparently fixes the
107 problem.  Try
108         ksh Configure [your options]
109
110 EOM
111
112 # XXX EXPERIMENTAL  A.D.  03/09/1998
113 # XXX This script UU/usethreads.cbu will get 'called-back' by Configure
114 # XXX after it has prompted the user for whether to use threads.
115 cat > UU/usethreads.cbu <<'EOSH'
116 case "$usethreads" in
117 $define)
118     if [ ! -r /usr/lib/libc_r.a ]; then
119         cat <<'EOM' >&4
120
121 The re-entrant C library /usr/lib/libc_r.a does not exist; cannot build
122 threaded Perl.  Consider upgrading to a newer FreeBSD snapshot or release:
123 at least the FreeBSD 3.0-971225-SNAP is known to have the libc_r.a.
124
125 EOM
126         exit 1
127     fi
128     # Patches to libc_r may be required.
129     # Print out a note about them here.
130
131     # These checks by Andy Dougherty <doughera@lafcol.lafayette.edu>
132     # Please update or change them as you learn more!
133     # -lc_r must REPLACE -lc.  AD  03/10/1998
134     set `echo X "$libswanted "| sed -e 's/ c / c_r /'`
135     shift
136     libswanted="$*"
137     # Configure will probably pick the wrong libc to use for nm scan.
138     # The safest quick-fix is just to not use nm at all.
139     usenm=false
140     # Is vfork buggy in 3.0?
141     case "$osvers" in
142         3.0) usevfork=false ;;
143     esac
144     ;;
145 esac
146 EOSH
147 # XXX EXPERIMENTAL  --end of call-back