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