This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Syntax fix.
[perl5.git] / hints / solaris_2.sh
CommitLineData
bc1ad331 1# hints/solaris_2.sh
83bd2f30 2# Last modified: Mon Jan 29 12:52:28 2001
73ad924b
LC
3# Lupe Christoph <lupe@lupe-christoph.de>
4# Based on version by:
bc1ad331 5# Andy Dougherty <doughera@lafayette.edu>
73ad924b 6# Which was based on input from lots of folks, especially
bc1ad331 7# Dean Roehrich <roehrich@ironwood-fddi.cray.com>
73ad924b
LC
8# Additional input from Alan Burlison, Jarkko Hietaniemi,
9# and Richard Soderberg.
d420ca49
AD
10#
11# See README.solaris for additional information.
12#
73ad924b
LC
13# For consistency with gcc, we do not adopt Sun Marketing's
14# removal of the '2.' prefix from the Solaris version number.
15# (Configure tries to detect an old fixincludes and needs
16# this information.)
17
bc1ad331
JH
18# If perl fails tests that involve dynamic loading of extensions, and
19# you are using gcc, be sure that you are NOT using GNU as and ld. One
20# way to do that is to invoke Configure with
73ad924b 21#
bc1ad331
JH
22# sh Configure -Dcc='gcc -B/usr/ccs/bin/'
23#
24# (Note that the trailing slash is *required*.)
25# gcc will occasionally emit warnings about "unused prefix", but
26# these ought to be harmless. See below for more details.
73ad924b 27
bc1ad331 28# See man vfork.
83bd2f30 29usevfork=${usevfork:-false}
bc1ad331 30
83bd2f30
LC
31# Solaris has secure SUID scripts
32d_suidsafe=${d_suidsafe:-define}
33
34# Several people reported problems with perl's malloc, especially
35# when use64bitall is defined or when using gcc.
36# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg01318.html
37# http://www.xray.mpe.mpg.de/mailing-lists/perl5-porters/2001-01/msg00465.html
38usemymalloc=${usemymalloc:-false}
bc1ad331
JH
39
40# Avoid all libraries in /usr/ucblib.
73ad924b
LC
41# /lib is just a symlink to /usr/lib
42set `echo $glibpth | sed -e 's@/usr/ucblib@@' -e 's@ /lib @ @'`
bc1ad331
JH
43glibpth="$*"
44
73ad924b
LC
45# Remove unwanted libraries. -lucb contains incompatible routines.
46# -lld and -lsec don't do anything useful. -lcrypt does not
47# really provide anything we need over -lc, so we drop it, too.
bc1ad331
JH
48# -lmalloc can cause a problem with GNU CC & Solaris. Specifically,
49# libmalloc.a may allocate memory that is only 4 byte aligned, but
50# GNU CC on the Sparc assumes that doubles are 8 byte aligned.
51# Thanks to Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>
73ad924b 52set `echo " $libswanted " | sed -e 's@ ld @ @' -e 's@ malloc @ @' -e 's@ ucb @ @' -e 's@ sec @ @' -e 's@ crypt @ @'`
bc1ad331
JH
53libswanted="$*"
54
b1db1e90 55# Look for architecture name. We want to suggest a useful default.
a0d0e21e
LW
56case "$archname" in
57'')
58 if test -f /usr/bin/arch; then
59 archname=`/usr/bin/arch`
60 archname="${archname}-${osname}"
61 elif test -f /usr/ucb/arch; then
62 archname=`/usr/ucb/arch`
63 archname="${archname}-${osname}"
64 fi
65 ;;
66esac
a0d0e21e 67
73ad924b
LC
68cat > UU/workshoplibpth.cbu << 'EOCBU'
69# This script UU/workshoplibpth.cbu will get 'called-back'
70# by other CBUs this script creates.
da8f3004 71case "$workshoplibpth_done" in
73ad924b
LC
72 '') if test `uname -p` = "sparc"; then
73 case "$use64bitall" in
74 "$define"|true|[yY]*)
75 # add SPARC-specific 64 bit libraries
76 loclibpth="$loclibpth /usr/lib/sparcv9"
77 if test -n "$workshoplibs"; then
78 loclibpth=`echo $loclibpth | sed -e "s% $workshoplibs%%" `
79 for lib in $workshoplibs; do
80 # Logically, it should be sparcv9.
81 # But the reality fights back, it's v9.
82 loclibpth="$loclibpth $lib/sparcv9 $lib/v9"
83 done
84 fi
da8f3004 85 ;;
73ad924b 86 *) loclibpth="$loclibpth $workshoplibs"
da8f3004
JH
87 ;;
88 esac
73ad924b
LC
89 else
90 loclibpth="$loclibpth $workshoplibs"
91 fi
da8f3004
JH
92 workshoplibpth_done="$define"
93 ;;
94esac
95EOCBU
96
d503bed0 97case "$cc" in
c678381b
JH
98'') if test -f /opt/SUNWspro/bin/cc; then
99 cat <<EOF >&4
d503bed0
JH
100
101You specified no cc but you seem to have the Workshop compiler installed,
102using that. If you want something else, specify that in the command line,
103e.g. Configure -Dcc=gcc
104
105EOF
c678381b 106 cc=/opt/SUNWspro/bin/cc
d503bed0
JH
107 fi
108 ;;
109esac
110
da8f3004
JH
111######################################################
112# General sanity testing. See below for excerpts from the Solaris FAQ.
113#
114# From roehrich@ironwood-fddi.cray.com Wed Sep 27 12:51:46 1995
115# Date: Thu, 7 Sep 1995 16:31:40 -0500
116# From: Dean Roehrich <roehrich@ironwood-fddi.cray.com>
117# To: perl5-porters@africa.nicoh.com
118# Subject: Re: On perl5/solaris/gcc
119#
73ad924b 120# Here's another draft of the perl5/solaris/gcc sanity-checker.
da8f3004 121
bd89102f
AD
122case `type ${cc:-cc}` in
123*/usr/ucb/cc*) cat <<END >&4
8e07c86e 124
73ad924b 125NOTE: Some people have reported problems with /usr/ucb/cc.
bd89102f
AD
126If you have difficulties, please make sure the directory
127containing your C compiler is before /usr/ucb in your PATH.
8e07c86e
AD
128
129END
130;;
131esac
132
133
134# Check that /dev/fd is mounted. If it is not mounted, let the
135# user know that suid scripts may not work.
d0aa90f6 136df /dev/fd 2>&1 > /dev/null
8e07c86e
AD
137case $? in
1380) ;;
139*)
68dc0745 140 cat <<END >&4
8e07c86e
AD
141
142NOTE: Your system does not have /dev/fd mounted. If you want to
143be able to use set-uid scripts you must ask your system administrator
144to mount /dev/fd.
145
146END
147 ;;
148esac
149
150
151# See if libucb can be found in /usr/lib. If it is, warn the user
152# that this may cause problems while building Perl extensions.
153/usr/bin/ls /usr/lib/libucb* >/dev/null 2>&1
154case $? in
1550)
68dc0745 156 cat <<END >&4
8e07c86e
AD
157
158NOTE: libucb has been found in /usr/lib. libucb should reside in
159/usr/ucblib. You may have trouble while building Perl extensions.
160
a0d0e21e
LW
161END
162;;
163esac
40000a8c 164
bd89102f
AD
165# Use shell built-in 'type' command instead of /usr/bin/which to
166# avoid possible csh start-up problems and also to use the same shell
167# we'll be using to Configure and make perl.
168# The path name is the last field in the output, but the type command
169# has an annoying array of possible outputs, e.g.:
170# make is hashed (/opt/gnu/bin/make)
171# cc is /usr/ucb/cc
172# foo not found
173# use a command like type make | awk '{print $NF}' | sed 's/[()]//g'
8e07c86e
AD
174
175# See if make(1) is GNU make(1).
176# If it is, make sure the setgid bit is not set.
177make -v > make.vers 2>&1
178if grep GNU make.vers > /dev/null 2>&1; then
bd89102f
AD
179 tmp=`type make | awk '{print $NF}' | sed 's/[()]//g'`
180 case "`/usr/bin/ls -lL $tmp`" in
8e07c86e 181 ??????s*)
68dc0745 182 cat <<END >&2
73ad924b 183
8e07c86e
AD
184NOTE: Your PATH points to GNU make, and your GNU make has the set-group-id
185bit set. You must either rearrange your PATH to put /usr/ccs/bin before the
186GNU utilities or you must ask your system administrator to disable the
187set-group-id bit on GNU make.
188
189END
190 ;;
191 esac
192fi
193rm -f make.vers
194
73ad924b
LC
195cat > UU/cc.cbu <<'EOCBU'
196# This script UU/cc.cbu will get 'called-back' by Configure after it
197# has prompted the user for the C compiler to use.
198
8e07c86e
AD
199# If the C compiler is gcc:
200# - check the fixed-includes
201# - check as(1) and ld(1), they should not be GNU
bd89102f 202# (GNU as and ld 2.8.1 and later are reportedly ok, however.)
8e07c86e 203# If the C compiler is not gcc:
73ad924b
LC
204# - Check if it is the Workshop/Forte compiler.
205# If it is, prepare for 64 bit and long doubles.
8e07c86e 206# - check as(1) and ld(1), they should not be GNU
bd89102f 207# (GNU as and ld 2.8.1 and later are reportedly ok, however.)
8e07c86e
AD
208#
209# Watch out in case they have not set $cc.
1acf53c5 210
73ad924b 211# Perl compiled with some combinations of GNU as and ld may not
e766ed8d
AD
212# be able to perform dynamic loading of extensions. If you have a
213# problem with dynamic loading, be sure that you are using the Solaris
214# /usr/ccs/bin/as and /usr/ccs/bin/ld. You can do that with
215# sh Configure -Dcc='gcc -B/usr/ccs/bin/'
73ad924b 216# (note the trailing slash is required).
e766ed8d
AD
217# Combinations that are known to work with the following hints:
218#
219# gcc-2.7.2, GNU as 2.7, GNU ld 2.7
220# egcs-1.0.3, GNU as 2.9.1 and GNU ld 2.9.1
73ad924b 221# --Andy Dougherty <doughera@lafayette.edu>
e766ed8d
AD
222# Tue Apr 13 17:19:43 EDT 1999
223
1acf53c5
SZ
224# Get gcc to share its secrets.
225echo 'main() { return 0; }' > try.c
bd89102f
AD
226 # Indent to avoid propagation to config.sh
227 verbose=`${cc:-cc} -v -o try try.c 2>&1`
1acf53c5
SZ
228
229if echo "$verbose" | grep '^Reading specs from' >/dev/null 2>&1; then
8e07c86e
AD
230 #
231 # Using gcc.
232 #
8e07c86e 233
e766ed8d 234 # See if as(1) is GNU as(1). GNU as(1) might not work for this job.
1acf53c5
SZ
235 if echo "$verbose" | grep ' /usr/ccs/bin/as ' >/dev/null 2>&1; then
236 :
237 else
68dc0745 238 cat <<END >&2
8e07c86e 239
e766ed8d
AD
240NOTE: You are using GNU as(1). GNU as(1) might not build Perl. If you
241have trouble, you can use /usr/ccs/bin/as by including -B/usr/ccs/bin/
bd89102f 242in your ${cc:-cc} command. (Note that the trailing "/" is required.)
8e07c86e
AD
243
244END
e766ed8d
AD
245 # Apparently not needed, at least for as 2.7 and later.
246 # cc="${cc:-cc} -B/usr/ccs/bin/"
1acf53c5 247 fi
8e07c86e 248
e766ed8d 249 # See if ld(1) is GNU ld(1). GNU ld(1) might not work for this job.
bd89102f 250 # Recompute $verbose since we may have just changed $cc.
d5fdf557 251 verbose=`${cc:-cc} -v -o try try.c 2>&1 | grep ld 2>&1`
e766ed8d 252
bd89102f 253 if echo "$verbose" | grep ' /usr/ccs/bin/ld ' >/dev/null 2>&1; then
e766ed8d
AD
254 # Ok, gcc directly calls the Solaris /usr/ccs/bin/ld.
255 :
256 elif echo "$verbose" | grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
257 # Hmm. gcc doesn't call /usr/ccs/bin/ld directly, but it
258 # does appear to be using it eventually. egcs-1.0.3's ld
259 # wrapper does this.
260 # All Solaris versions of ld I've seen contain the magic
261 # string used in the grep.
1acf53c5
SZ
262 :
263 else
e766ed8d
AD
264 # No evidence yet of /usr/ccs/bin/ld. Some versions
265 # of egcs's ld wrapper call /usr/ccs/bin/ld in turn but
266 # apparently don't reveal that unless you pass in -V.
267 # (This may all depend on local configurations too.)
d5fdf557 268
c4a5d551
RB
269 # Recompute verbose with -Wl,-v to find GNU ld if present
270 verbose=`${cc:-cc} -v -Wl,-v -o try try.c 2>&1 | grep ld 2>&1`
271
d5fdf557 272 myld=`echo $verbose| grep ld | awk '/\/ld/ {print $1}'`
e766ed8d
AD
273 # This assumes that gcc's output will not change, and that
274 # /full/path/to/ld will be the first word of the output.
c4a5d551 275 # Thus myld is something like /opt/gnu/sparc-sun-solaris2.5/bin/ld
e766ed8d 276
c4a5d551
RB
277 # Allow that $myld may be '', due to changes in gcc's output
278 if ${myld:-ld} -V 2>&1 |
279 grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
e766ed8d
AD
280 # Ok, /usr/ccs/bin/ld eventually does get called.
281 :
282 else
c4a5d551 283 echo "Found GNU ld='$myld'" >&4
e766ed8d 284 cat <<END >&2
8e07c86e 285
e766ed8d
AD
286NOTE: You are using GNU ld(1). GNU ld(1) might not build Perl. If you
287have trouble, you can use /usr/ccs/bin/ld by including -B/usr/ccs/bin/
bd89102f 288in your ${cc:-cc} command. (Note that the trailing "/" is required.)
8e07c86e 289
e766ed8d
AD
290I will try to use GNU ld by passing in the -Wl,-E flag, but if that
291doesn't work, you should use -B/usr/ccs/bin/ instead.
292
8e07c86e 293END
e766ed8d 294 ccdlflags="$ccdlflags -Wl,-E"
74144837 295 lddlflags="$lddlflags -Wl,-E -G"
e766ed8d 296 fi
1acf53c5 297 fi
8e07c86e 298
1acf53c5 299else
8e07c86e
AD
300 #
301 # Not using gcc.
302 #
8e07c86e 303
73ad924b
LC
304 ccversion="`${cc:-cc} -V 2>&1|sed -n -e '1s/^cc: //p'`"
305 case "$ccversion" in
306 *WorkShop*) ccname=workshop ;;
307 *) ccversion='' ;;
308 esac
309
310 case "$ccname" in
311 workshop)
312 cat >try.c <<EOM
313#include <sunmath.h>
314int main() { return(0); }
315EOM
316 workshoplibs=`cc -### try.c -lsunmath -o try 2>&1|sed -n '/ -Y /s%.* -Y "P,\(.*\)".*%\1%p'|tr ':' '\n'|grep '/SUNWspro/'`
317 . ./workshoplibpth.cbu
318 ;;
319 esac
320
e766ed8d 321 # See if as(1) is GNU as(1). GNU might not work for this job.
8e07c86e
AD
322 case `as --version < /dev/null 2>&1` in
323 *GNU*)
68dc0745 324 cat <<END >&2
8e07c86e 325
e766ed8d 326NOTE: You are using GNU as(1). GNU as(1) might not build Perl.
bd89102f
AD
327You must arrange to use /usr/ccs/bin/as, perhaps by adding /usr/ccs/bin
328to the beginning of your PATH.
8e07c86e
AD
329
330END
331 ;;
332 esac
333
e766ed8d 334 # See if ld(1) is GNU ld(1). GNU ld(1) might not work for this job.
91d1e749 335 # ld --version doesn't properly report itself as a GNU tool,
336 # as of ld version 2.6, so we need to be more strict. TWP 9/5/96
604c6cff
AD
337 # Sun's ld always emits the "Software Generation Utilities" string.
338 if ld -V 2>&1 | grep "ld: Software Generation Utilities" >/dev/null 2>&1; then
339 # Ok, ld is /usr/ccs/bin/ld.
340 :
91d1e749 341 else
604c6cff 342 cat <<END >&2
8e07c86e 343
e766ed8d
AD
344NOTE: You are apparently using GNU ld(1). GNU ld(1) might not build Perl.
345You should arrange to use /usr/ccs/bin/ld, perhaps by adding /usr/ccs/bin
bd89102f 346to the beginning of your PATH.
8e07c86e
AD
347
348END
91d1e749 349 fi
8e07c86e 350
1acf53c5 351fi
8e07c86e
AD
352
353# as --version or ld --version might dump core.
bd89102f 354rm -f try try.c
8e07c86e
AD
355rm -f core
356
693762b4 357# XXX
73ad924b 358EOCBU
693762b4 359
de6124c8 360cat > UU/usethreads.cbu <<'EOCBU'
73ad924b 361# This script UU/usethreads.cbu will get 'called-back' by Configure
104d25b7 362# after it has prompted the user for whether to use threads.
104d25b7
JH
363case "$usethreads" in
364$define|true|[yY]*)
104d25b7
JH
365 ccflags="-D_REENTRANT $ccflags"
366
73ad924b 367 # sched_yield is in -lposix4 up to Solaris 2.6, in -lrt starting with Solaris 2.7
7bd161a1
LC
368 case `uname -r` in
369 5.[0-6] | 5.5.1) sched_yield_lib="posix4" ;;
370 *) sched_yield_lib="rt";
371 esac
372 set `echo X "$libswanted "| sed -e "s/ c / $sched_yield_lib pthread c /"`
104d25b7
JH
373 shift
374 libswanted="$*"
375
376 # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp()
377 # when linked with the threads library, such that whatever positive
378 # value you pass to siglongjmp(), sigsetjmp() returns 1.
379 # Thanks to Simon Parsons <S.Parsons@ftel.co.uk> for this report.
380 # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by
381 # siglongjmp in a MT program". As of 19980622, there is no patch
382 # available.
383 cat >try.c <<'EOM'
384 /* Test for sig(set|long)jmp bug. */
385 #include <setjmp.h>
73ad924b 386
104d25b7
JH
387 main()
388 {
389 sigjmp_buf env;
390 int ret;
73ad924b 391
104d25b7
JH
392 ret = sigsetjmp(env, 1);
393 if (ret) { return ret == 2; }
394 siglongjmp(env, 2);
395 }
396EOM
7bd161a1 397 if test "`arch`" = i86pc -a `uname -r` = 5.6 && \
104d25b7
JH
398 ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then
399 d_sigsetjmp=$undef
400 cat << 'EOM' >&2
401
402You will see a *** WHOA THERE!!! *** message from Configure for
403d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh
404for more information.
405
406EOM
407 fi
673e8799
JH
408
409 # These prototypes should be visible since we using
410 # -D_REENTRANT, but that does not seem to work.
34073cab
JH
411 # It does seem to work for getnetbyaddr_r, weirdly enough,
412 # and other _r functions. (Solaris 8)
673e8799
JH
413
414 d_ctermid_r_proto="$define"
415 d_gethostbyaddr_r_proto="$define"
416 d_gethostbyname_r_proto="$define"
417 d_getnetbyname_r_proto="$define"
418 d_getprotobyname_r_proto="$define"
419 d_getprotobynumber_r_proto="$define"
420 d_getservbyname_r_proto="$define"
421 d_getservbyport_r_proto="$define"
422
34073cab
JH
423 # Ditto. (Solaris 7)
424 d_readdir_r_proto="$define"
425 d_readdir64_r_proto="$define"
d8c5b8d1
JH
426 d_tmpnam_r_proto="$define"
427 d_ttyname_r_proto="$define"
34073cab 428
6e4796bd 429 ;;
123f9af1 430esac
104d25b7
JH
431EOCBU
432
923fc586 433cat > UU/uselargefiles.cbu <<'EOCBU'
73ad924b 434# This script UU/uselargefiles.cbu will get 'called-back' by Configure
5fce3f1f 435# after it has prompted the user for whether to use large files.
bd9b35c9 436case "$uselargefiles" in
10cc9d2a 437''|$define|true|[yY]*)
9422c00b
JH
438
439# Keep these in the left margin.
45c9e83b
JH
440ccflags_uselargefiles="`getconf LFS_CFLAGS 2>/dev/null`"
441ldflags_uselargefiles="`getconf LFS_LDFLAGS 2>/dev/null`"
442libswanted_uselargefiles="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`"
9422c00b 443
45c9e83b
JH
444 ccflags="$ccflags $ccflags_uselargefiles"
445 ldflags="$ldflags $ldflags_uselargefiles"
446 libswanted="$libswanted $libswanted_uselargefiles"
6f587e79 447 ;;
bd9b35c9 448esac
5fce3f1f 449EOCBU
6b8eaf93 450
2f4ff158
JH
451# This is truly a mess.
452case "$usemorebits" in
453"$define"|true|[yY]*)
73ad924b
LC
454 use64bitint="$define"
455 uselongdouble="$define"
2f4ff158
JH
456 ;;
457esac
458
73ad924b
LC
459if test `uname -p` = "sparc"; then
460 cat > UU/use64bitint.cbu <<'EOCBU'
461# This script UU/use64bitint.cbu will get 'called-back' by Configure
462# after it has prompted the user for whether to use 64 bit integers.
463case "$use64bitint" in
464"$define"|true|[yY]*)
465 case "`uname -r`" in
466 5.[0-4])
467 cat >&4 <<EOM
468Solaris `uname -r|sed -e 's/^5\./2./'` does not support 64-bit integers.
469You should upgrade to at least Solaris 2.5.
470EOM
471 exit 1
472 ;;
473 esac
474 ;;
475esac
476EOCBU
477
478 cat > UU/use64bitall.cbu <<'EOCBU'
479# This script UU/use64bitall.cbu will get 'called-back' by Configure
c4eb8127
JH
480# after it has prompted the user for whether to be maximally 64 bitty.
481case "$use64bitall-$use64bitall_done" in
482"$define-"|true-|[yY]*-)
104d25b7 483 case "`uname -r`" in
73ad924b 484 5.[0-6])
104d25b7 485 cat >&4 <<EOM
73ad924b
LC
486Solaris `uname -r|sed -e 's/^5\./2./'` does not support 64-bit pointers.
487You should upgrade to at least Solaris 2.7.
104d25b7
JH
488EOM
489 exit 1
490 ;;
491 esac
282f2f4c
JH
492 libc='/usr/lib/sparcv9/libc.so'
493 if test ! -f $libc; then
9b119d5a 494 cat >&4 <<EOM
282f2f4c
JH
495
496I do not see the 64-bit libc, $libc.
497Cannot continue, aborting.
498
499EOM
500 exit 1
e6f120fa 501 fi
73ad924b 502 . ./workshoplibpth.cbu
4c07fe1d
JH
503 case "$cc -v 2>/dev/null" in
504 *gcc*)
9b119d5a 505 echo 'main() { return 0; }' > try.c
9636b992
CT
506 case "`${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not supported by this configuration'`" in
507 *"m64 is not supported"*)
9b119d5a
RB
508 cat >&4 <<EOM
509
e6f120fa
JH
510Full 64-bit build is not supported by this gcc configuration.
511Check http://gcc.gnu.org/ for the latest news of availability
512of gcc for 64-bit Sparc.
513
9b119d5a
RB
514Cannot continue, aborting.
515
516EOM
517 exit 1
9636b992 518 ;;
73ad924b 519 esac
9b119d5a
RB
520 ccflags="$ccflags -mcpu=v9 -m64"
521 if test X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then
522 ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
523 fi
524 # no changes to ld flags, as (according to man ld):
525 #
526 # There is no specific option that tells ld to link 64-bit
527 # objects; the class of the first object that gets processed
528 # by ld determines whether it is to perform a 32-bit or a
529 # 64-bit link edit.
4c07fe1d
JH
530 ;;
531 *)
0d926123 532 ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
923fc586 533 ldflags="$ldflags `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
0d926123 534 lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`"
4c07fe1d 535 ;;
73ad924b 536 esac
b1b472cb 537 libscheck='case "`/usr/bin/file $xxx`" in
7b65db70
JH
538*64-bit*|*SPARCV9*) ;;
539*) xxx=/no/64-bit$xxx ;;
540esac'
5ae8d7b4 541
e9a51be3 542 use64bitall_done=yes
6f587e79
JH
543 ;;
544esac
4c07fe1d 545EOCBU
73ad924b
LC
546
547 # Actually, we want to run this already now, if so requested,
548 # because we need to fix up things right now.
549 case "$use64bitall" in
550 "$define"|true|[yY]*)
551 # CBUs expect to be run in UU
552 cd UU; . ./use64bitall.cbu; cd ..
631e9f25 553 ;;
73ad924b
LC
554 esac
555fi
b0ca24c6 556
923fc586 557cat > UU/uselongdouble.cbu <<'EOCBU'
73ad924b 558# This script UU/uselongdouble.cbu will get 'called-back' by Configure
923fc586 559# after it has prompted the user for whether to use long doubles.
e9a51be3
JH
560case "$uselongdouble" in
561"$define"|true|[yY]*)
73ad924b 562 if test -f /opt/SUNWspro/lib/libsunmath.so; then
6d707089
AD
563 # Unfortunately libpth has already been set and
564 # searched, so we need to add in everything manually.
565 libpth="$libpth /opt/SUNWspro/lib"
73ad924b
LC
566 libs="$libs -lsunmath"
567 ldflags="$ldflags -L/opt/SUNWspro/lib -R/opt/SUNWspro/lib"
568 d_sqrtl=define
8364ae4d 569 else
73ad924b
LC
570 cat >&4 <<EOM
571
572The Sun Workshop math library is not installed; therefore I do not
573know how to do long doubles, sorry. I'm disabling the use of long
574doubles.
575EOM
576 uselongdouble="$undef"
8364ae4d 577 fi
e9a51be3
JH
578 ;;
579esac
73ad924b 580EOCBU
e9a51be3 581
73ad924b 582rm -f try.c try.o try a.out