This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
correct FSF address in various places
[perl5.git] / hints / irix_6.sh
CommitLineData
85f483a2 1# hints/irix_6.sh
e8c10df3
SH
2#
3# original from Krishna Sethuraman, krishna@sgi.com
4#
ba51d756 5# Modified Mon Jul 22 14:52:25 EDT 1996
e8c10df3
SH
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
CS
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
MB
23# Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97
24# - POSIX threads knowledge by IRIX version
25
37c4c505
KS
26# gcc-enabled by Kurt Starsinic <kstar@isinet.com> on 3/24/1998
27
e8c10df3
SH
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
CS
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
SH
35case "$cc" in
36'')
ba51d756
CS
37 if test -f /usr/lib32/libm.so
38 then
39 cc='cc -n32'
40 fi ;;
85f483a2
SH
41esac
42
43# Check for which compiler we're using
44
e8c10df3
SH
45case "$cc" in
46*"cc -n32"*)
85f483a2 47
29c7c2ae
SH
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
SH
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
AD
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
SH
66 ;;
67 *7.*) # Mongoose 7.2.1+
589615b8
SH
68 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0:space=ON"
69 optimize='-O3'
85f483a2
SH
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
SH
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
SH
77 optimize='none'
78 ;;
79 esac
80
589615b8 81 ld=$cc
f5a8bab6 82 # perl's malloc can return improperly aligned buffer
589615b8
SH
83 # usemymalloc='undef'
84malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
29c7c2ae
SH
85 # NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
86 ldflags=' -L/usr/local/lib32 -L/usr/local/lib'
e8c10df3 87 cccdlflags=' '
ce60aaad
TB
88 # From: David Billinghurst <David.Billinghurst@riotinto.com.au>
89 # If you get complaints about so_locations then change the following
90 # line to something like:
91 # lddlflags="-n32 -shared -check_registry /usr/lib32/so_locations"
e8c10df3
SH
92 lddlflags="-n32 -shared"
93 libc='/usr/lib32/libc.so'
94 plibpth='/usr/lib32 /lib32 /usr/ccs/lib'
95 nm_opt='-p'
96 nm_so_opt='-p'
97 ;;
37c4c505
KS
98*gcc*)
99 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -D_POSIX_C_SOURCE"
100 optimize="-O3"
101 usenm='undef'
102 ;;
e8c10df3
SH
103*)
104 # this is needed to force the old-32 paths
105 # since the system default can be changed.
85f483a2
SH
106 ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100"
107 optimize='-O'
e8c10df3
SH
108 ;;
109esac
c43fed53 110
f5a8bab6
GS
111# We don't want these libraries.
112# Socket networking is in libc, these are not installed by default,
113# and just slow perl down. (scotth@sgi.com)
ecfc5424 114set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'`
f4cb4c40
AD
115shift
116libswanted="$*"
e8c10df3
SH
117
118# I have conflicting reports about the sun, crypt, bsd, and PW
119# libraries on Irix 6.2.
120#
121# One user rerports:
122# Don't need sun crypt bsd PW under 6.2. You *may* need to link
123# with these if you want to run perl built under 6.2 on a 5.3 machine
124# (I haven't checked)
ecfc5424 125#
e8c10df3
SH
126# Another user reported that if he included those libraries, a large number
127# of the tests failed (approx. 20-25) and he would get a core dump. To
128# make things worse, test results were inconsistent, i.e., some of the
129# tests would pass some times and fail at other times.
130# The safest thing to do seems to be to eliminate them.
131#
132# Actually, the only libs that you want are '-lm'. Everything else
133# you need is in libc. You do also need '-lbsd' if you choose not
134# to use the -D_BSD_* defines. Note that as of 6.2 the only
135# difference between '-lmalloc' and '-lc' malloc is the debugging
f5a8bab6 136# and control calls, which aren't used by perl. -- scotth@sgi.com
f4cb4c40 137
f5a8bab6 138set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /' -e 's/ malloc / /'`
e8c10df3
SH
139shift
140libswanted="$*"
eb1cfdd6 141
29c7c2ae 142if [ "X$usethreads" = "X$define" -o "X$usethreads" = "Xy" ]; then
eb1cfdd6
MB
143 if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
144 uname_r=`uname -r`
145 case "`uname -r`" in
29c7c2ae 146 5*|6.0|6.1)
eb1cfdd6 147 echo >&4 "IRIX $uname_r does not have the POSIX threads."
29c7c2ae 148 echo >&4 "You should upgrade to at least IRIX 6.2 with pthread patches."
eb1cfdd6
MB
149 echo >&4 "Cannot continue, aborting."
150 exit 1
151 ;;
152 6.2)
153 echo >&4 ""
154cat >&4 <<EOF
155IRIX 6.2 $uname_r can have the POSIX threads.
29c7c2ae 156The following IRIX patches (or their replacements) must, however, be installed:
eb1cfdd6
MB
157
158 1404 Irix 6.2 Posix 1003.1b man pages
159 1645 IRIX 6.2 & 6.3 POSIX header file updates
160 2000 Irix 6.2 Posix 1003.1b support modules
161 2254 Pthread library fixes
69ce17de
MB
162 2401 6.2 all platform kernel rollup
163IMPORTANT:
164 Without patch 2401, a kernel bug in IRIX 6.2 will
165 cause your machine to panic and crash when running
166 threaded perl. IRIX 6.3 and up should be OK.
167
eb1cfdd6
MB
168
169Cannot continue, aborting.
170EOF
171 exit 1
172 ;;
173 6.*|7.*)
174 echo >&4 "IRIX $uname_r should have the POSIX threads."
175 echo >&4 "But somehow you do not seem to have them installed."
176 echo >&4 "Cannot continue, aborting."
177 exit 1
178 ;;
179 esac
ed00029b 180 unset uname_r
eb1cfdd6 181 fi
eb1cfdd6
MB
182 # -lpthread needs to come before -lc but after other libraries such
183 # as -lgdbm and such like. We assume here that -lc is present in
184 # libswanted. If that fails to be true in future, then this can be
185 # changed to add pthread to the very end of libswanted.
186 set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
d5cd9753 187 ld="${cc:-cc}"
eb1cfdd6
MB
188 shift
189 libswanted="$*"
ed00029b 190 usemymalloc='n'
eb1cfdd6 191fi