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