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@lafayette.edu> 24# Date: Tue Mar 10 16:07:00 EST 1998 25# 26# Support for FreeBSD/ELF 27# Ollivier Robert <roberto@keltia.freenix.fr> 28# Date: Wed Sep 2 16:22:12 CEST 1998 29# 30# The two flags "-fpic -DPIC" are used to indicate a 31# will-be-shared object. Configure will guess the -fpic, (and the 32# -DPIC is not used by perl proper) but the full define is included to 33# be consistent with the FreeBSD general shared libs building process. 34# 35# setreuid and friends are inherently broken in all versions of FreeBSD 36# before 2.1-current (before approx date 4/15/95). It is fixed in 2.0.5 37# and what-will-be-2.1 38# 39 40case "$osvers" in 410.*|1.0*) 42 usedl="$undef" 43 ;; 441.1*) 45 malloctype='void *' 46 groupstype='int' 47 d_setregid='undef' 48 d_setreuid='undef' 49 d_setrgid='undef' 50 d_setruid='undef' 51 ;; 522.0-release*) 53 d_setregid='undef' 54 d_setreuid='undef' 55 d_setrgid='undef' 56 d_setruid='undef' 57 ;; 58# 59# Trying to cover 2.0.5, 2.1-current and future 2.1/2.2 60# It does not covert all 2.1-current versions as the output of uname 61# changed a few times. 62# 63# Even though seteuid/setegid are available, they've been turned off 64# because perl isn't coded with saved set[ug]id variables in mind. 65# In addition, a small patch is required to suidperl to avoid a security 66# problem with FreeBSD. 67# 682.0.5*|2.0-built*|2.1*) 69 usevfork='true' 70 case "$usemymalloc" in 71 "") usemymalloc='n' 72 ;; 73 esac 74 d_setregid='define' 75 d_setreuid='define' 76 d_setegid='undef' 77 d_seteuid='undef' 78 test -r ./broken-db.msg && . ./broken-db.msg 79 ;; 80# 81# 2.2 and above have phkmalloc(3). 82# don't use -lmalloc (maybe there's an old one from 1.1.5.1 floating around) 832.2*) 84 usevfork='true' 85 case "$usemymalloc" in 86 "") usemymalloc='n' 87 ;; 88 esac 89 libswanted=`echo $libswanted | sed 's/ malloc / /'` 90 libswanted=`echo $libswanted | sed 's/ bind / /'` 91 # iconv gone in Perl 5.8.1, but if someone compiles 5.8.0 or earlier. 92 libswanted=`echo $libswanted | sed 's/ iconv / /'` 93 d_setregid='define' 94 d_setreuid='define' 95 d_setegid='define' 96 d_seteuid='define' 97 # d_dosuid='define' # Obsolete. 98 ;; 99*) usevfork='true' 100 case "$usemymalloc" in 101 "") usemymalloc='n' 102 ;; 103 esac 104 libswanted=`echo $libswanted | sed 's/ malloc / /'` 105 ;; 106esac 107 108# Dynamic Loading flags have not changed much, so they are separated 109# out here to avoid duplicating them everywhere. 110case "$osvers" in 1110.*|1.0*) ;; 112 1131.*|2.*) 114 cccdlflags='-DPIC -fpic' 115 lddlflags="-Bshareable $lddlflags" 116 ;; 117 1183*|4*|5*|6*) 119 objformat=`/usr/bin/objformat` 120 if [ x$objformat = xaout ]; then 121 if [ -e /usr/lib/aout ]; then 122 libpth="/usr/lib/aout /usr/local/lib /usr/lib" 123 glibpth="/usr/lib/aout /usr/local/lib /usr/lib" 124 fi 125 lddlflags='-Bshareable' 126 else 127 libpth="/usr/lib /usr/local/lib" 128 glibpth="/usr/lib /usr/local/lib" 129 ldflags="-Wl,-E " 130 lddlflags="-shared " 131 fi 132 cccdlflags='-DPIC -fPIC' 133 ;; 134*) 135 libpth="/usr/lib /usr/local/lib" 136 glibpth="/usr/lib /usr/local/lib" 137 ldflags="-Wl,-E " 138 lddlflags="-shared " 139 cccdlflags='-DPIC -fPIC' 140 ;; 141esac 142 143case "$osvers" in 1440.*|1.*|2.*|3.*) ;; 145 146*) 147 ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H" 148 if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then 149 usenm=false 150 fi 151 ;; 152esac 153 154cat <<'EOM' >&4 155 156Some users have reported that Configure halts when testing for 157the O_NONBLOCK symbol with a syntax error. This is apparently a 158sh error. Rerunning Configure with ksh apparently fixes the 159problem. Try 160 ksh Configure [your options] 161 162EOM 163 164# From: Anton Berezin <tobez@plab.ku.dk> 165# To: perl5-porters@perl.org 166# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type 167# Date: 30 Nov 1998 19:46:24 +0100 168# Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk> 169 170signal_t='void' 171d_voidsig='define' 172 173# set libperl.so.X.X for 2.2.X 174case "$osvers" in 1752.2*) 176 # unfortunately this code gets executed before 177 # the equivalent in the main Configure so we copy a little 178 # from Configure XXX Configure should be fixed. 179 if $test -r $src/patchlevel.h;then 180 patchlevel=`awk '/define[ ]+PERL_VERSION/ {print $3}' $src/patchlevel.h` 181 subversion=`awk '/define[ ]+PERL_SUBVERSION/ {print $3}' $src/patchlevel.h` 182 else 183 patchlevel=0 184 subversion=0 185 fi 186 libperl="libperl.so.$patchlevel.$subversion" 187 unset patchlevel 188 unset subversion 189 ;; 190esac 191 192# This script UU/usethreads.cbu will get 'called-back' by Configure 193# after it has prompted the user for whether to use threads. 194cat > UU/usethreads.cbu <<'EOCBU' 195case "$usethreads" in 196$define|true|[yY]*) 197 lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'` 198 case "$osvers" in 199 0.*|1.*|2.0*|2.1*) cat <<EOM >&4 200I did not know that FreeBSD $osvers supports POSIX threads. 201 202Feel free to tell perlbug@perl.org otherwise. 203EOM 204 exit 1 205 ;; 206 207 2.2.[0-7]*) 208 cat <<EOM >&4 209POSIX threads are not supported well by FreeBSD $osvers. 210 211Please consider upgrading to at least FreeBSD 2.2.8, 212or preferably to the most recent -RELEASE or -STABLE 213version (see http://www.freebsd.org/releases/). 214 215(While 2.2.7 does have pthreads, it has some problems 216 with the combination of threads and pipes and therefore 217 many Perl tests will either hang or fail.) 218EOM 219 exit 1 220 ;; 221 222 [3-5].*) 223 if [ ! -r "$lc_r" ]; then 224 cat <<EOM >&4 225POSIX threads should be supported by FreeBSD $osvers -- 226but your system is missing the shared libc_r. 227(/sbin/ldconfig -r doesn't find any). 228 229Consider using the latest STABLE release. 230EOM 231 exit 1 232 fi 233 # 500016 is the first osreldate in which one could 234 # just link against libc_r without disposing of libc 235 # at the same time. 500016 ... up to whatever it was 236 # on the 31st of August 2003 can still be used with -pthread, 237 # but it is not necessary. 238 239 # Anton Berezin says that post 500something we're wrong to be 240 # to be using -lc_r, and should just be using -pthread on the 241 # linker line. 242 # So presumably really we should be checking that $osver is 5.*) 243 # and that `/sbin/sysctl -n kern.osreldate` -ge 500016 244 # or -lt 500something and only in that range not doing this: 245 ldflags="-pthread $ldflags" 246 247 # Both in 4.x and 5.x gethostbyaddr_r exists but 248 # it is "Temporary function, not threadsafe"... 249 # Presumably earlier it didn't even exist. 250 d_gethostbyaddr_r="undef" 251 d_gethostbyaddr_r_proto="0" 252 ;; 253 254 *) 255 # 7.x doesn't install libc_r by default, and Configure 256 # would fail in the code following 257 # 258 # gethostbyaddr_r() appears to have been implemented in 6.x+ 259 ldflags="-pthread $ldflags" 260 ;; 261 262 esac 263 264 case "$osvers" in 265 [1-4]*) 266 set `echo X "$libswanted "| sed -e 's/ c / c_r /'` 267 shift 268 libswanted="$*" 269 ;; 270 *) 271 set `echo X "$libswanted "| sed -e 's/ c //'` 272 shift 273 libswanted="$*" 274 ;; 275 esac 276 277 # Configure will probably pick the wrong libc to use for nm scan. 278 # The safest quick-fix is just to not use nm at all... 279 usenm=false 280 281 case "$osvers" in 282 2.2.8*) 283 # ... but this does not apply for 2.2.8 - we know it's safe 284 libc="$lc_r" 285 usenm=true 286 ;; 287 esac 288 289 unset lc_r 290 291 # Even with the malloc mutexes the Perl malloc does not 292 # seem to be threadsafe in FreeBSD? 293 case "$usemymalloc" in 294 '') usemymalloc=n ;; 295 esac 296esac 297EOCBU 298 299# malloc wrap works 300case "$usemallocwrap" in 301'') usemallocwrap='define' ;; 302esac 303 304# XXX Under FreeBSD 6.0 (and probably most other similar versions) 305# Perl_die(NULL) generates a warning: 306# pp_sys.c:491: warning: null format string 307# Configure supposedely tests for this, but apparently the test doesn't 308# work. Volunteers with FreeBSD are needed to improving the Configure test. 309# Meanwhile, the following workaround should be safe on all versions 310# of FreeBSD. 311d_printf_format_null='undef' 312