Threading patches for OS/2 (missing files taken from previous patch):
[p5sagit/p5-mst-13.2.git] / hints / irix_6.sh
1 # hints/irix_6.sh
2 #
3 # original from Krishna Sethuraman, krishna@sgi.com
4 #
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
10
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
22
23 # Threaded by Jarkko Hietaniemi <jhi@iki.fi> on 11/18/97
24 #    - POSIX threads knowledge by IRIX version
25
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.
30
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)
33 case "$cc" in
34 '')
35     if test -f /usr/lib32/libm.so
36     then
37         cc='cc -n32'
38     fi ;;
39 esac
40
41 # Check for which compiler we're using
42
43 case "$cc" in
44 *"cc -n32"*)
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
61         ccflags="$ccflags -D_BSD_TYPES -D_BSD_TIME -woff 1009,1110,1184 -OPT:Olimit=0"
62              optimize='none'
63              ;;
64         esac
65
66         ld=ld
67         ldflags=' -L/usr/local/lib -L/usr/lib32 -L/lib32'
68         cccdlflags=' '
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"
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.
82         ccflags="$ccflags -32 -D_BSD_TYPES -D_BSD_TIME -Olimit 3100"
83         optimize='-O'     
84         ;;
85 esac
86
87 # This should be a Configure thing, but not for now...
88 pp_sys_cflags='ccflags="$ccflags -DHAS_TELLDIR_PROTOTYPE"'
89
90 # We don't want these libraries.  Anyone know why?
91 set `echo X "$libswanted "|sed -e 's/ socket / /' -e 's/ nsl / /' -e 's/ dl / /'`
92 shift
93 libswanted="$*"
94
95 # I have conflicting reports about the sun, crypt, bsd, and PW
96 # libraries on Irix 6.2.
97 #
98 # One user rerports:
99 # Don't need sun crypt bsd PW under 6.2.  You *may* need to link
100 # with these if you want to run perl built under 6.2 on a 5.3 machine
101 # (I haven't checked)
102 #
103 # Another user reported that if he included those libraries, a large number
104 # of the tests failed (approx. 20-25) and he would get a core dump. To
105 # make things worse, test results were inconsistent, i.e., some of the
106 # tests would pass some times and fail at other times.
107 # The safest thing to do seems to be to eliminate them.
108 #
109 #  Actually, the only libs that you want are '-lm'.  Everything else
110 # you need is in libc.  You do also need '-lbsd' if you choose not
111 # to use the -D_BSD_* defines.  Note that as of 6.2 the only
112 # difference between '-lmalloc' and '-lc' malloc is the debugging
113 # and control calls. -- scotth@sgi.com
114
115 set `echo X "$libswanted "|sed -e 's/ sun / /' -e 's/ crypt / /' -e 's/ bsd / /' -e 's/ PW / /'`
116 shift
117 libswanted="$*"
118
119 if [ "X$usethreads" != "X" ]; then
120     if test ! -f /usr/include/pthread.h -o ! -f /usr/lib/libpthread.so; then
121         uname_r=`uname -r`
122         case "`uname -r`" in
123         6.0|6.1)
124             echo >&4 "IRIX $uname_r does not have the POSIX threads."
125             echo >&4 "You should upgrade to at least IRIX 6.3."
126             echo >&4 "Cannot continue, aborting."
127             exit 1
128             ;;
129         6.2)
130             echo >&4 ""
131 cat >&4 <<EOF
132 IRIX 6.2 $uname_r can have the POSIX threads.
133 The following IRIX patches must, however, be installed:
134
135         1404 Irix 6.2 Posix 1003.1b man pages
136         1645 IRIX 6.2 & 6.3 POSIX header file updates
137         2000 Irix 6.2 Posix 1003.1b support modules
138         2254 Pthread library fixes
139         2401 6.2 all platform kernel rollup
140 IMPORTANT:
141         Without patch 2401, a kernel bug in IRIX 6.2 will
142         cause your machine to panic and crash when running
143         threaded perl. IRIX 6.3 and up should be OK.
144
145
146 Cannot continue, aborting.
147 EOF
148             exit 1
149             ;;
150         6.*|7.*)
151             echo >&4 "IRIX $uname_r should have the POSIX threads."
152             echo >&4 "But somehow you do not seem to have them installed."
153             echo >&4 "Cannot continue, aborting."
154             exit 1
155             ;;
156         esac
157         unset uname-r
158     fi
159     ccflags="-DUSE_THREADS $ccflags"
160     cppflags="-DUSE_THREADS $cppflags"
161     # -lpthread needs to come before -lc but after other libraries such
162     # as -lgdbm and such like. We assume here that -lc is present in
163     # libswanted. If that fails to be true in future, then this can be
164     # changed to add pthread to the very end of libswanted.
165     set `echo X "$libswanted "| sed -e 's/ c / pthread /'`
166     ld="cc"
167     shift
168     libswanted="$*"
169 fi