summaryrefslogtreecommitdiff
path: root/hints
diff options
context:
space:
mode:
authorGisle Aas <gisle@aas.no>2005-05-21 01:55:21 -0700
committerH.Merijn Brand <h.m.brand@xs4all.nl>2005-05-22 14:08:03 +0000
commit2a9d46aca4fcc38a37d117c400a7d318e3e521b7 (patch)
treea9cf721b483b17c154d57c79957b900970149996 /hints
parente4305a6302fd35f8f8c1a7e612369beaaea58a4a (diff)
downloadperl-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.sh69
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
;;