3 # original from Krishna Sethuraman, krishna@sgi.com
5 # Modified Mon Jul 22 14:52:25 EDT 1996
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
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
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
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
23 # Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97
24 # - POSIX threads knowledge by IRIX version
26 # gcc-enabled by Kurt Starsinic <kstar@isinet.com> on 3/24/1998
28 # 64-bitty by Jarkko Hietaniemi on 9/1998
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.
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)
39 if test -f /usr/lib32/libm.so
45 # Check for which compiler we're using
50 libscheck='case "`/usr/bin/file $xxx`" in
55 # Perl 5.004_57 introduced new qsort code into pp_ctl.c that
56 # makes IRIX cc prior to 7.2.1 to emit bad code.
57 # so some serious hackery follows to set pp_ctl flags correctly.
59 # Check for which version of the compiler we're running
60 case "`$cc -version 2>&1`" in
62 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1042,1048,1110,1116,1174,1184,1552 -OPT:Olimit=0"
65 *7.1*|*7.2|*7.20) # Mongoose 7.1+
66 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1174,1184,1552 -OPT:Olimit=0"
68 # This is a temporary fix for 5.005.
69 # Leave pp_ctl_cflags line at left margin for Configure. See
70 # hints/README.hints, especially the section
71 # =head2 Propagating variables to config.sh
72 pp_ctl_cflags='optimize=-O'
74 *7.*) # Mongoose 7.2.1+
75 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1174,1184,1552 -OPT:Olimit=0:space=ON"
79 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1174,1184,1552"
82 *) # Be safe and not optimize
83 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1174,1184,1552 -OPT:Olimit=0"
88 # this is to accommodate the 'modules' capability of the
89 # 7.2 MIPSPro compilers, which allows for the compilers to be installed
90 # in a nondefault location. Almost everything works as expected, but
91 # /usr/include isn't caught properly. Hence see the /usr/include/pthread.h
92 # change below to include TOOLROOT (a modules environment variable),
93 # and the following code. Additional
94 # code to accommodate the 'modules' environment should probably be added
95 # here if possible, or be inserted as a ${TOOLROOT} reference before
96 # absolute paths (again, see the pthread.h change below).
97 # -- krishna@sgi.com, 8/23/98
99 if [ "X${TOOLROOT}" != "X" ]; then
100 # we cant set cppflags because it gets overwritten
101 # we dont actually need $TOOLROOT/usr/include on the cc line cuz the
102 # modules functionality already includes it but
103 # XXX - how do I change cppflags in the hints file?
104 ccflags="$ccflags -I${TOOLROOT}/usr/include"
105 usrinc="${TOOLROOT}/usr/include"
109 # perl's malloc can return improperly aligned buffer
110 # usemymalloc='undef'
111 malloc_cflags='ccflags="-DSTRICT_ALIGNMENT $ccflags"'
112 # NOTE: -L/usr/lib32 -L/lib32 are automatically selected by the linker
113 ldflags=' -L/usr/local/lib32 -L/usr/local/lib'
115 # From: David Billinghurst <David.Billinghurst@riotinto.com.au>
116 # If you get complaints about so_locations then change the following
117 # line to something like:
118 # lddlflags="-n32 -shared -check_registry /usr/lib32/so_locations"
119 lddlflags="-n32 -shared"
120 libc='/usr/lib32/libc.so'
121 plibpth='/usr/lib32 /lib32 /usr/ccs/lib'
126 ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -D_POSIX_C_SOURCE"
130 # Without the -mabi=64 gcc in 64-bit IRIX has problems passing
131 # and returning small structures. This affects inet_*() and semctl().
132 # See http://reality.sgi.com/ariel/freeware/gcc-2.8.1-notes.html
133 # for more information. Reported by Lionel Cons <lionel.cons@cern.ch>.
134 IRIX64) ccflags="$ccflags -mabi=64"
135 ldflags="$ldflags -mabi=64 -L/usr/lib64"
136 lddlflags="$lddlflags -mabi=64"
138 *) ccflags="$ccflags -DIRIX32_SEMUN_BROKEN_BY_GCC"
143 # this is needed to force the old-32 paths
144 # since the system default can be changed.
145 ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100"
150 # Don't groan about unused libraries.
151 ldflags="$ldflags -Wl,-woff,84"
153 # We don't want these libraries.
154 # Socket networking is in libc, these are not installed by default,
155 # and just slow perl down. (scotth@sgi.com)
156 set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'`
160 # Irix 6.5.6 seems to have a broken header <sys/mode.h>
161 # don't include that (it doesn't contain S_IFMT, S_IFREG, et al)
165 # I have conflicting reports about the sun, crypt, bsd, and PW
166 # libraries on Irix 6.2.
169 # Don't need sun crypt bsd PW under 6.2. You *may* need to link
170 # with these if you want to run perl built under 6.2 on a 5.3 machine
171 # (I haven't checked)
173 # Another user reported that if he included those libraries, a large number
174 # of the tests failed (approx. 20-25) and he would get a core dump. To
175 # make things worse, test results were inconsistent, i.e., some of the
176 # tests would pass some times and fail at other times.
177 # The safest thing to do seems to be to eliminate them.
179 # Actually, the only libs that you want are '-lm'. Everything else
180 # you need is in libc. You do also need '-lbsd' if you choose not
181 # to use the -D_BSD_* defines. Note that as of 6.2 the only
182 # difference between '-lmalloc' and '-lc' malloc is the debugging
183 # and control calls, which aren't used by perl. -- scotth@sgi.com
185 set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /' -e 's/ malloc / /'`
189 cat > UU/usethreads.cbu <<'EOCBU'
190 # This script UU/usethreads.cbu will get 'called-back' by Configure
191 # after it has prompted the user for whether to use threads.
192 case "$usethreads" in
194 if test ! -f ${TOOLROOT}/usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
198 IRIX `uname -r` does not support POSIX threads.
199 You should upgrade to at least IRIX 6.2 with pthread patches.
204 IRIX 6.2 can have the POSIX threads.
205 However, the following IRIX patches (or their replacements) MUST be installed:
206 1404 Irix 6.2 Posix 1003.1b man pages
207 1645 IRIX 6.2 & 6.3 POSIX header file updates
208 2000 Irix 6.2 Posix 1003.1b support modules
209 2254 Pthread library fixes
210 2401 6.2 all platform kernel rollup
212 Without patch 2401, a kernel bug in IRIX 6.2 will
213 cause your machine to panic and crash when running
214 threaded perl. IRIX 6.3 and up should be OK.
219 IRIX `uname -r` should have the POSIX threads.
220 But, somehow, you do not seem to have them installed.
225 Cannot continue, aborting.
229 set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
239 # The -n32 makes off_t to be 8 bytes, so we should have largefileness.
241 cat > UU/use64bitint.cbu <<'EOCBU'
242 # This script UU/use64bitint.cbu will get 'called-back' by Configure
243 # after it has prompted the user for whether to use 64 bit integers.
244 case "$use64bitint" in
249 IRIX `uname -r` does not support 64-bit types.
250 You should upgrade to at least IRIX 6.2.
251 Cannot continue, aborting.
260 cat > UU/use64bitall.cbu <<'EOCBU'
261 # This script UU/use64bitall.cbu will get 'called-back' by Configure
262 # after it has prompted the user for whether to be maximally 64-bitty.
263 case "$use64bitall" in
265 ccflags="`echo $ccflags|sed -e 's%-n32%%'` -64"
266 ldflags="`echo $ldflags|sed -e 's%-n32%%'` -64"
267 lddlflags="`echo $ldfdllags|sed -e 's%-n32%%'` -64"
268 loclibpth="$loclibpth /usr/lib64"
269 libscheck='case "`file $xxx`" in
271 *) xxx=/no/64-bit$xxx ;;