bump patchlevel to 52; other little tweaks for threads, win32 builds
[p5sagit/p5-mst-13.2.git] / hints / irix_6.sh
CommitLineData
85f483a2 1# hints/irix_6.sh
e8c10df3 2#
3# original from Krishna Sethuraman, krishna@sgi.com
4#
ba51d756 5# Modified Mon Jul 22 14:52:25 EDT 1996
e8c10df3 6# Andy Dougherty <doughera@lafcol.lafayette.edu>
7# with help from Dean Roehrich <roehrich@cray.com>.
8# cc -n32 update info from Krishna Sethuraman, krishna@sgi.com.
9# additional update from Scott Henry, scotth@sgi.com
f4cb4c40 10
ba51d756 11# Futzed with by John Stoffel <jfs@fluent.com> on 4/24/1997
12# - assumes 'cc -n32' by default
13# - tries to check for various compiler versions and do the right
14# thing when it can
15# - warnings turned off (-n32 messages):
16# 1116 - non-void function should return a value
17# 1048 - cast between pointer-to-object and pointer-to-function
18# 1042 - operand types are incompatible
19
20# Tweaked by Chip Salzenberg <chip@perl.com> on 5/13/97
21# - don't assume 'cc -n32' if the n32 libm.so is missing
85f483a2 22
eb1cfdd6 23# Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97
24# - POSIX threads knowledge by IRIX version
25
37c4c505 26# gcc-enabled by Kurt Starsinic <kstar@isinet.com> on 3/24/1998
27
e8c10df3 28# Use sh Configure -Dcc='cc -n32' to try compiling with -n32.
29# or -Dcc='cc -n32 -mips3' (or -mips4) to force (non)portability
30# Don't bother with -n32 unless you have the 7.1 or later compilers.
31# But there's no quick and light-weight way to check in 6.2.
f4cb4c40 32
ba51d756 33# Let's assume we want to use 'cc -n32' by default, unless the
34# necessary libm is missing (which has happened at least twice)
85f483a2 35case "$cc" in
36'')
ba51d756 37 if test -f /usr/lib32/libm.so
38 then
39 cc='cc -n32'
40 fi ;;
85f483a2 41esac
42
43# Check for which compiler we're using
44
e8c10df3 45case "$cc" in
46*"cc -n32"*)
85f483a2 47
29c7c2ae 48 # Perl 5.004_57 introduced new qsort code into pp_ctl.c that
49 # makes IRIX cc prior to 7.2.1 to emit bad code.
50 # so some serious hackery follows to set pp_ctl flags correctly.
51
85f483a2 52 # Check for which version of the compiler we're running
53 case "`$cc -version 2>&1`" in
54 *7.0*) # Mongoose 7.0
55 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1042,1048,1110,1116,1184 -OPT:Olimit=0"
589615b8 56 optimize='none'
85f483a2 57 ;;
cd25c765 58 *7.1*|*7.2|*7.20) # Mongoose 7.1+
85f483a2 59 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
589615b8 60 optimize='-O3'
cd25c765 61# This is a temporary fix for 5.005.
62# Leave pp_ctl_cflags line at left margin for Configure. See
63# hints/README.hints, especially the section
64# =head2 Propagating variables to config.sh
65pp_ctl_cflags='optimize=-O'
29c7c2ae 66 ;;
67 *7.*) # Mongoose 7.2.1+
589615b8 68 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=ON"
69 optimize='-O3'
85f483a2 70 ;;
71 *6.2*) # Ragnarok 6.2
72 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184"
589615b8 73 optimize='none'
85f483a2 74 ;;
75 *) # Be safe and not optimize
29c7c2ae 76 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
85f483a2 77 optimize='none'
78 ;;
79 esac
80
9ea370a7 81# this is to accommodate the 'modules' capability of the
82# 7.2 MIPSPro compilers, which allows for the compilers to be installed
83# in a nondefault location. Almost everything works as expected, but
84# /usr/include isn't caught properly. Hence see the /usr/include/pthread.h
85# change below to include TOOLROOT (a modules environment variable),
86# and the following code. Additional
87# code to accommodate the 'modules' environment should probably be added
88# here if possible, or be inserted as a ${TOOLROOT} reference before
89# absolute paths (again, see the pthread.h change below).
90# -- krishna@sgi.com, 8/23/98
91
92if [ "X${TOOLROOT}" != "X" ]; then
93# we cant set cppflags because it gets overwritten
94# we dont actually need $TOOLROOT/usr/include on the cc line cuz the
95# modules functionality already includes it but
96# XXX - how do I change cppflags in the hints file?
97 ccflags="$ccflags -I${TOOLROOT}/usr/include"
98 usrinc="${TOOLROOT}/usr/include"
99fi
100
589615b8 101 ld=$cc
f5a8bab6 102 # perl's malloc can return improperly aligned buffer
589615b8 103 # usemymalloc='undef'
104malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
29c7c2ae 105 # NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
106 ldflags=' -L/usr/local/lib32 -L/usr/local/lib'
e8c10df3 107 cccdlflags=' '
ce60aaad 108 # From: David Billinghurst <David.Billinghurst@riotinto.com.au>
109 # If you get complaints about so_locations then change the following
110 # line to something like:
111 # lddlflags="-n32 -shared -check_registry /usr/lib32/so_locations"
e8c10df3 112 lddlflags="-n32 -shared"
113 libc='/usr/lib32/libc.so'
114 plibpth='/usr/lib32 /lib32 /usr/ccs/lib'
115 nm_opt='-p'
116 nm_so_opt='-p'
117 ;;
37c4c505 118*gcc*)
119 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -D_POSIX_C_SOURCE"
120 optimize="-O3"
121 usenm='undef'
122 ;;
e8c10df3 123*)
124 # this is needed to force the old-32 paths
125 # since the system default can be changed.
85f483a2 126 ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100"
127 optimize='-O'
e8c10df3 128 ;;
129esac
c43fed53 130
f5a8bab6 131# We don't want these libraries.
132# Socket networking is in libc, these are not installed by default,
133# and just slow perl down. (scotth@sgi.com)
ecfc5424 134set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'`
f4cb4c40 135shift
136libswanted="$*"
e8c10df3 137
138# I have conflicting reports about the sun, crypt, bsd, and PW
139# libraries on Irix 6.2.
140#
141# One user rerports:
142# Don't need sun crypt bsd PW under 6.2. You *may* need to link
143# with these if you want to run perl built under 6.2 on a 5.3 machine
144# (I haven't checked)
ecfc5424 145#
e8c10df3 146# Another user reported that if he included those libraries, a large number
147# of the tests failed (approx. 20-25) and he would get a core dump. To
148# make things worse, test results were inconsistent, i.e., some of the
149# tests would pass some times and fail at other times.
150# The safest thing to do seems to be to eliminate them.
151#
152# Actually, the only libs that you want are '-lm'. Everything else
153# you need is in libc. You do also need '-lbsd' if you choose not
154# to use the -D_BSD_* defines. Note that as of 6.2 the only
155# difference between '-lmalloc' and '-lc' malloc is the debugging
f5a8bab6 156# and control calls, which aren't used by perl. -- scotth@sgi.com
f4cb4c40 157
f5a8bab6 158set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /' -e 's/ malloc / /'`
e8c10df3 159shift
160libswanted="$*"
eb1cfdd6 161
29c7c2ae 162if [ "X$usethreads" = "X$define" -o "X$usethreads" = "Xy" ]; then
9ea370a7 163 if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
eb1cfdd6 164 uname_r=`uname -r`
165 case "`uname -r`" in
29c7c2ae 166 5*|6.0|6.1)
eb1cfdd6 167 echo >&4 "IRIX $uname_r does not have the POSIX threads."
29c7c2ae 168 echo >&4 "You should upgrade to at least IRIX 6.2 with pthread patches."
eb1cfdd6 169 echo >&4 "Cannot continue, aborting."
170 exit 1
171 ;;
172 6.2)
173 echo >&4 ""
174cat >&4 <<EOF
175IRIX 6.2 $uname_r can have the POSIX threads.
29c7c2ae 176The following IRIX patches (or their replacements) must, however, be installed:
eb1cfdd6 177
178 1404 Irix 6.2 Posix 1003.1b man pages
179 1645 IRIX 6.2 & 6.3 POSIX header file updates
180 2000 Irix 6.2 Posix 1003.1b support modules
181 2254 Pthread library fixes
69ce17de 182 2401 6.2 all platform kernel rollup
183IMPORTANT:
184 Without patch 2401, a kernel bug in IRIX 6.2 will
185 cause your machine to panic and crash when running
186 threaded perl. IRIX 6.3 and up should be OK.
187
eb1cfdd6 188
189Cannot continue, aborting.
190EOF
191 exit 1
192 ;;
193 6.*|7.*)
194 echo >&4 "IRIX $uname_r should have the POSIX threads."
195 echo >&4 "But somehow you do not seem to have them installed."
196 echo >&4 "Cannot continue, aborting."
197 exit 1
198 ;;
199 esac
ed00029b 200 unset uname_r
eb1cfdd6 201 fi
eb1cfdd6 202 # -lpthread needs to come before -lc but after other libraries such
203 # as -lgdbm and such like. We assume here that -lc is present in
204 # libswanted. If that fails to be true in future, then this can be
205 # changed to add pthread to the very end of libswanted.
206 set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
d5cd9753 207 ld="${cc:-cc}"
eb1cfdd6 208 shift
209 libswanted="$*"
ed00029b 210 usemymalloc='n'
eb1cfdd6 211fi