diff options
author | Gisle Aas <gisle@aas.no> | 2005-05-21 01:55:21 -0700 |
---|---|---|
committer | H.Merijn Brand <h.m.brand@xs4all.nl> | 2005-05-22 14:08:03 +0000 |
commit | 2a9d46aca4fcc38a37d117c400a7d318e3e521b7 (patch) | |
tree | a9cf721b483b17c154d57c79957b900970149996 /hints | |
parent | e4305a6302fd35f8f8c1a7e612369beaaea58a4a (diff) | |
download | perl-2a9d46aca4fcc38a37d117c400a7d318e3e521b7.tar.gz |
Enable 64bitall builds for Solaris x86
Message-ID: <lr1x801sly.fsf@caliper.activestate.com>
p4raw-id: //depot/perl@24539
Diffstat (limited to 'hints')
-rw-r--r-- | hints/solaris_2.sh | 69 |
1 files changed, 39 insertions, 30 deletions
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 <S.Parsons@ftel.co.uk> 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 <S.Parsons@ftel.co.uk> 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 <setjmp.h> @@ -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 <<EOM + processor=`uname -p`; + if test "$processor" = sparc; then + libc='/usr/lib/sparcv9/libc.so' + if test ! -f $libc; then + cat >&4 <<EOM I do not see the 64-bit libc, $libc. Cannot continue, aborting. EOM - exit 1 + exit 1 + fi fi case "${cc:-cc} -v 2>/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 ;; |