X-Git-Url: https://perl5.git.perl.org/perl5.git/blobdiff_plain/d6083e444522cedf943784098e5c0b0c01e3c3e1..b2b23189a6e87ef8e3bbd5dfc9cc93945580dd22:/hints/solaris_2.sh diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index d6556d2..bf2f195 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -45,8 +45,7 @@ case "$archname" in ;; esac -test -z "`${cc:-cc} -V 2>&1|grep -i workshop`" || ccisworkshop="$define" -test -z "`${cc:-cc} -v 2>&1|grep -i gcc`" || ccisgcc="$define" +test -z "`${cc:-cc} -V 2>&1|grep -i workshop`" || ccname=workshop cat >UU/workshoplibpth.cbu<<'EOCBU' case "$workshoplibpth_done" in @@ -70,8 +69,8 @@ case "$workshoplibpth_done" in esac EOCBU -case "$ccisworkshop" in -"$define") +case "$ccname" in +workshop) cat >try.c < int main() { return(0); } @@ -328,8 +327,12 @@ case "$usethreads" in $define|true|[yY]*) ccflags="-D_REENTRANT $ccflags" - # sched_yield is in -lposix4 - set `echo X "$libswanted "| sed -e 's/ c / posix4 pthread c /'` + # sched_yield is in -lposix4 up to Solaris 2.6, in -lrt starting with Solaris 7 + case `uname -r` in + 5.[0-6] | 5.5.1) sched_yield_lib="posix4" ;; + *) sched_yield_lib="rt"; + esac + set `echo X "$libswanted "| sed -e "s/ c / $sched_yield_lib pthread c /"` shift libswanted="$*" @@ -354,7 +357,7 @@ $define|true|[yY]*) siglongjmp(env, 2); } EOM - if test "`arch`" = i86pc -a "$osvers" = 2.6 && \ + 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 @@ -374,9 +377,15 @@ cat > UU/uselargefiles.cbu <<'EOCBU' # after it has prompted the user for whether to use large files. case "$uselargefiles" in ''|$define|true|[yY]*) - ccflags="$ccflags `getconf LFS_CFLAGS 2>/dev/null`" - ldflags="$ldflags `getconf LFS_LDFLAGS 2>/dev/null`" - libswanted="$libswanted `getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" + +# Keep these in the left margin. +ccflags_uselargefiles="`getconf LFS_CFLAGS 2>/dev/null`" +ldflags_uselargefiles="`getconf LFS_LDFLAGS 2>/dev/null`" +libswanted_uselargefiles="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" + + ccflags="$ccflags $ccflags_uselargefiles" + ldflags="$ldflags $ldflags_uselargefiles" + libswanted="$libswanted $libswanted_uselargefiles" ;; esac EOCBU @@ -387,10 +396,10 @@ cat > UU/use64bitint.cbu <<'EOCBU' case "$use64bitint" in "$define"|true|[yY]*) case "`uname -r`" in - 2.[1-6]) + 5.[1-6]) cat >&4 </dev/null" in *gcc*) echo 'main() { return 0; }' > try.c - if ${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep -e \ - '-m64 is not supported by this configuration'; then + case "`${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not supported by this configuration'`" in + *"m64 is not supported"*) cat >&4 </dev/null` != X; then ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`" @@ -467,18 +477,20 @@ cat > UU/uselongdouble.cbu <<'EOCBU' # after it has prompted the user for whether to use long doubles. case "$uselongdouble-$uselongdouble_done" in "$define-"|true-|[yY]*-) - case "$ccisworkshop" in - '') cat <&4 < /dev/null <<'End_of_Solaris_Notes'