[win32] integrate mainline
[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
48 # Check for which version of the compiler we're running
49 case "`$cc -version 2>&1`" in
50 *7.0*) # Mongoose 7.0
51 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1042,1048,1110,1116,1184 -OPT:Olimit=0"
52 optimize='none'
53 ;;
54 *7.*) # Mongoose 7.1+
55 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
56 optimize='-O3'
57 ;;
58 *6.2*) # Ragnarok 6.2
59 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184"
60 optimize='none'
61 ;;
62 *) # Be safe and not optimize
e8c10df3 63 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
85f483a2 64 optimize='none'
65 ;;
66 esac
67
68 ld=ld
e8c10df3 69 ldflags=' -L/usr/local/lib -L/usr/lib32 -L/lib32'
70 cccdlflags=' '
ce60aaad 71 # From: David Billinghurst <David.Billinghurst@riotinto.com.au>
72 # If you get complaints about so_locations then change the following
73 # line to something like:
74 # lddlflags="-n32 -shared -check_registry /usr/lib32/so_locations"
e8c10df3 75 lddlflags="-n32 -shared"
76 libc='/usr/lib32/libc.so'
77 plibpth='/usr/lib32 /lib32 /usr/ccs/lib'
78 nm_opt='-p'
79 nm_so_opt='-p'
80 ;;
37c4c505 81*gcc*)
82 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -D_POSIX_C_SOURCE"
83 optimize="-O3"
84 usenm='undef'
85 ;;
e8c10df3 86*)
87 # this is needed to force the old-32 paths
88 # since the system default can be changed.
85f483a2 89 ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100"
90 optimize='-O'
e8c10df3 91 ;;
92esac
c43fed53 93
16d20bd9 94# We don't want these libraries. Anyone know why?
ecfc5424 95set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'`
f4cb4c40 96shift
97libswanted="$*"
e8c10df3 98
99# I have conflicting reports about the sun, crypt, bsd, and PW
100# libraries on Irix 6.2.
101#
102# One user rerports:
103# Don't need sun crypt bsd PW under 6.2. You *may* need to link
104# with these if you want to run perl built under 6.2 on a 5.3 machine
105# (I haven't checked)
ecfc5424 106#
e8c10df3 107# Another user reported that if he included those libraries, a large number
108# of the tests failed (approx. 20-25) and he would get a core dump. To
109# make things worse, test results were inconsistent, i.e., some of the
110# tests would pass some times and fail at other times.
111# The safest thing to do seems to be to eliminate them.
112#
113# Actually, the only libs that you want are '-lm'. Everything else
114# you need is in libc. You do also need '-lbsd' if you choose not
115# to use the -D_BSD_* defines. Note that as of 6.2 the only
116# difference between '-lmalloc' and '-lc' malloc is the debugging
117# and control calls. -- scotth@sgi.com
f4cb4c40 118
e8c10df3 119set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /'`
120shift
121libswanted="$*"
eb1cfdd6 122
ed00029b 123# Perl 5.004_57 introduced new qsort code into pp_ctl.c that
124# makes IRIX 6.2 cc to emit bad code.
125pp_ctl_cflags='optimize=-O'
126
e5c9fcd0 127if [ "X$usethreads" = "X$define" ]; then
eb1cfdd6 128 if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
129 uname_r=`uname -r`
130 case "`uname -r`" in
131 6.0|6.1)
132 echo >&4 "IRIX $uname_r does not have the POSIX threads."
133 echo >&4 "You should upgrade to at least IRIX 6.3."
134 echo >&4 "Cannot continue, aborting."
135 exit 1
136 ;;
137 6.2)
138 echo >&4 ""
139cat >&4 <<EOF
140IRIX 6.2 $uname_r can have the POSIX threads.
141The following IRIX patches must, however, be installed:
142
143 1404 Irix 6.2 Posix 1003.1b man pages
144 1645 IRIX 6.2 & 6.3 POSIX header file updates
145 2000 Irix 6.2 Posix 1003.1b support modules
146 2254 Pthread library fixes
69ce17de 147 2401 6.2 all platform kernel rollup
148IMPORTANT:
149 Without patch 2401, a kernel bug in IRIX 6.2 will
150 cause your machine to panic and crash when running
151 threaded perl. IRIX 6.3 and up should be OK.
152
eb1cfdd6 153
154Cannot continue, aborting.
155EOF
156 exit 1
157 ;;
158 6.*|7.*)
159 echo >&4 "IRIX $uname_r should have the POSIX threads."
160 echo >&4 "But somehow you do not seem to have them installed."
161 echo >&4 "Cannot continue, aborting."
162 exit 1
163 ;;
164 esac
ed00029b 165 unset uname_r
eb1cfdd6 166 fi
eb1cfdd6 167 # -lpthread needs to come before -lc but after other libraries such
168 # as -lgdbm and such like. We assume here that -lc is present in
169 # libswanted. If that fails to be true in future, then this can be
170 # changed to add pthread to the very end of libswanted.
171 set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
6ee623d5 172 ld="${cc:-cc}"
eb1cfdd6 173 shift
174 libswanted="$*"
ed00029b 175 usemymalloc='n'
eb1cfdd6 176fi