From 2a9d46aca4fcc38a37d117c400a7d318e3e521b7 Mon Sep 17 00:00:00 2001 From: Gisle Aas Date: Sat, 21 May 2005 01:55:21 -0700 Subject: Enable 64bitall builds for Solaris x86 Message-ID: p4raw-id: //depot/perl@24539 --- hints/solaris_2.sh | 69 ++++++++++++++++++++++++++++++------------------------ 1 file changed, 39 insertions(+), 30 deletions(-) (limited to 'hints') diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index 22cc95ea7c..fd774869b3 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -56,11 +56,11 @@ libswanted="$*" case "$archname" in '') if test -f /usr/bin/arch; then - archname=`/usr/bin/arch` - archname="${archname}-${osname}" + archname=`/usr/bin/arch` + archname="${archname}-${osname}" elif test -f /usr/ucb/arch; then - archname=`/usr/ucb/arch` - archname="${archname}-${osname}" + archname=`/usr/ucb/arch` + archname="${archname}-${osname}" fi ;; esac @@ -356,12 +356,12 @@ cat > UU/usethreads.cbu <<'EOCBU' # after it has prompted the user for whether to use threads. case "$usethreads" in $define|true|[yY]*) - ccflags="-D_REENTRANT $ccflags" + ccflags="-D_REENTRANT $ccflags" # -lpthread overrides some lib C functions, so put it before c. - set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` - shift - libswanted="$*" + set `echo X "$libswanted "| sed -e "s/ c / pthread c /"` + shift + libswanted="$*" # sched_yield is available in the -lrt library. However, # we can also pick up the equivalent yield() function in the @@ -377,14 +377,14 @@ $define|true|[yY]*) libswanted="$*" fi - # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp() - # when linked with the threads library, such that whatever positive - # value you pass to siglongjmp(), sigsetjmp() returns 1. - # Thanks to Simon Parsons for this report. - # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by - # siglongjmp in a MT program". As of 19980622, there is no patch - # available. - cat >try.c <<'EOM' + # On Solaris 2.6 x86 there is a bug with sigsetjmp() and siglongjmp() + # when linked with the threads library, such that whatever positive + # value you pass to siglongjmp(), sigsetjmp() returns 1. + # Thanks to Simon Parsons for this report. + # Sun BugID is 4117946, "sigsetjmp always returns 1 when called by + # siglongjmp in a MT program". As of 19980622, there is no patch + # available. + cat >try.c <<'EOM' /* Test for sig(set|long)jmp bug. */ #include @@ -398,9 +398,9 @@ $define|true|[yY]*) siglongjmp(env, 2); } EOM - if test "`arch`" = i86pc -a `uname -r` = 5.6 && \ - ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then - d_sigsetjmp=$undef + if test "`arch`" = i86pc -a `uname -r` = 5.6 && \ + ${cc:-cc} try.c -lpthread >/dev/null 2>&1 && ./a.out; then + d_sigsetjmp=$undef cat << 'EOM' >&2 You will see a *** WHOA THERE!!! *** message from Configure for @@ -408,7 +408,7 @@ d_sigsetjmp. Keep the recommended value. See hints/solaris_2.sh for more information. EOM - fi + fi # These prototypes should be visible since we using # -D_REENTRANT, but that does not seem to work. @@ -460,7 +460,7 @@ case "$usemorebits" in ;; esac -if test `uname -p` = "sparc"; then +if test `uname -p` = sparc -o `uname -p` = i386; then cat > UU/use64bitint.cbu <<'EOCBU' # This script UU/use64bitint.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use 64 bit integers. @@ -510,15 +510,18 @@ EOM exit 1 ;; esac - libc='/usr/lib/sparcv9/libc.so' - if test ! -f $libc; then - cat >&4 <&4 </dev/null" in *gcc*) @@ -537,9 +540,12 @@ EOM exit 1 ;; esac - loclibpth="/usr/lib/sparcv9 $loclibpth" - ccflags="$ccflags -mcpu=v9 -m64" - if test X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then + if test "$processor" = sparc; then + loclibpth="/usr/lib/sparcv9 $loclibpth" + ccflags="$ccflags -mcpu=v9" + fi + ccflags="$ccflags -m64" + if test $processor = sparc -a X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then # This adds in -Wa,-xarch=v9. I suspect that's superfluous, # since the -m64 above should do that already. Someone # with gcc-3.x.x, please test with gcc -v. A.D. 20-Nov-2003 @@ -554,10 +560,13 @@ EOM lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS 2>/dev/null`" echo "int main() { return(0); } " > try.c tryworkshopcc="${cc:-cc} try.c -o try $ccflags" - loclibpth="/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 `$getworkshoplibs` $loclibpth" + if test "$processor" = sparc; then + loclibpth="/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 $loclibpth" + fi + loclibpth="`$getworkshoplibs` $loclibpth" ;; esac - + unset processor use64bitall_done=yes archname64=64 ;; -- cgit v1.2.1