diff options
Diffstat (limited to 'hints/solaris_2.sh')
-rw-r--r-- | hints/solaris_2.sh | 101 |
1 files changed, 70 insertions, 31 deletions
diff --git a/hints/solaris_2.sh b/hints/solaris_2.sh index 8c280e3fb7..96bd2d603a 100644 --- a/hints/solaris_2.sh +++ b/hints/solaris_2.sh @@ -333,54 +333,47 @@ EOM esac EOCBU -# This script UU/uselfs.cbu will get 'called-back' by Configure -# after it has prompted the user for whether to use large files. -cat > UU/uselfs.cbu <<'EOCBU' case "$uselargefiles" in -$define|true|[yY]*) - lfcflags="`getconf LFS_CFLAGS 2>/dev/null`" - lfldflags="`getconf LFS_LDFLAGS 2>/dev/null`" - lflibs="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e 's@ -l@ @g`" - case "$lfcflags$lfldflags$lflibs" in - '');; - *) uselonglong="$define" - echo "(Large files in Solaris require also long longs, using long longs...)" - ccflags="$ccflags -DUSE_LONG_LONG $lfcflags" - ldflags="$ldflags $ldldflags" - libswanted="$libswanted $lflibs" - ;; - esac - lfcflags='' - lfldflags='' - lflibs='' - ;; +''|$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`" + ;; esac -EOCBU -# This script UU/use64bits.cbu will get 'called-back' by Configure +# This script UU/use64bitint.cbu will get 'called-back' by Configure # after it has prompted the user for whether to use 64 bits. -cat > UU/use64bits.cbu <<'EOCBU' -case "$use64bits" in +cat > UU/use64bitint.cbu <<'EOCBU' +case "$use64bitint" in $define|true|[yY]*) case "`uname -r`" in - 2.[1-5]) + 2.[1-6]) cat >&4 <<EOM -Solaris `uname -r` does not support 64-bit interfaces. -You should upgrade to at least Solaris 2.6. +Solaris `uname -r` does not support 64-bit integers. +You should upgrade to at least Solaris 2.7. EOM exit 1 ;; esac - case "$ccflags" in - *-DUSE_LONG_LONG*) ;; - *) ccflags="$ccflags -DUSE_LONG_LONG" ;; - esac # When a 64-bit cc becomes available $archname64 # may need setting so that $archname gets it attached. ;; esac EOCBU +case "$use64bitall" in +$define|true|[yY]*) + ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS`" + ldflags="$ccflags `getconf XBS5_LP64_OFF64_LDFLAGS`" + lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS`" + loclibpth="$loclibpth /usr/lib/sparcv9" + libscheck='case "`file $xxx`" in +*64-bit*|*SPARCV9*) ;; +*) xxx=/no/64-bit$xxx ;; +esac' + ;; +esac + # This is just a trick to include some useful notes. cat > /dev/null <<'End_of_Solaris_Notes' @@ -512,5 +505,51 @@ Date: 25 Jul 1995 12:20:18 GMT Perl 5 compiled out of the box. +7.0) 64-bitness, from Alan Burlison (added by jhi 2000-02-21) + + You need a machine running Solaris 2.7 or above. + + Here's some rules: + + 1. Solaris 2.7 and above will run in either 32 bit or 64 bit mode, + via a reboot. + 2. You can build 64 bit apps whilst running 32 bit mode and vice-versa. + 3. 32 bit apps will run under Solaris running in either 32 or 64 bit mode. + 4. 64 bit apps require Solaris to be running 64 bit mode + 5. It is possible to select the appropriate 32 or 64 bit version of an + app at run-time using isaexec(3). + 6. You can detect the OS mode using "isainfo -v", e.g. + fubar$ isainfo -v # Ultra 30 in 64 bit mode + 64-bit sparcv9 applications + 32-bit sparc applications + 7. To compile 64 bit you need to use the flag "-xarch=v9". + getconf(1) will tell you this, e.g. + fubar$ getconf -a | grep v9 + XBS5_LP64_OFF64_CFLAGS: -xarch=v9 + XBS5_LP64_OFF64_LDFLAGS: -xarch=v9 + XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9 + XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_CFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_LDFLAGS: -xarch=v9 + _XBS5_LP64_OFF64_LINTFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_CFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_LDFLAGS: -xarch=v9 + _XBS5_LPBIG_OFFBIG_LINTFLAGS: -xarch=v9 + + > > Now, what should we do, then? Should -Duse64bits in a v9 box cause + > > Perl to compiled in v9 mode? Or should we for compatibility stick + > > with 32 bit builds and let the people in the know to add the -xarch=v9 + > > to ccflags (and ldflags?)? + + > I think the second (explicit) mechanism should be the default. Unless + > you want to allocate more than ~ 4Gb of memory inside Perl, you don't + > need Perl to be a 64-bit app. Put it this way, on a machine running + > Solaris 8, there are 463 executables under /usr/bin, but only 15 of + > those require 64 bit versions - mainly because they invade the kernel + > address space, e.g. adb, kgmon etc. Certainly we don't recommend users + > to build 64 bit apps unless they need the address space. + End_of_Solaris_Notes |