Rhapsody/Darwin patches from Wilfredo Sanchez.
[p5sagit/p5-mst-13.2.git] / hints / solaris_2.sh
index 236db7d..203257b 100644 (file)
@@ -285,19 +285,6 @@ rm -f core
 # XXX
 EOSH
 
-# Damon.Atkins@nabaus.com.au 19-Mar-1999
-# Large Files Support
-if [ -x /usr/bin/getconf ] ; then
-    ccflags="$ccflags `/usr/bin/getconf LFS_CFLAGS`"
-    [ "X${ccflags}"    = "X " ]    && ccflags=''
-    ldflags="$ldflags `/usr/bin/getconf LFS_LDFLAGS`"
-    [ "X${ldflags}" = "X " ]       && ldflags=''
-    libswanted="$libswanted `/usr/bin/getconf LFS_LIBS`"
-    [ "X${libswanted}" = "X " ]    && libswanted=''
-    lintflags="$lintflags `/usr/bin/getconf LFS_LINTFLAGS`"
-    [ "X${lintflags}"  = "X " ]    && lintflags=''
-fi
-
 # This script UU/usethreads.cbu will get 'called-back' by Configure 
 # after it has prompted the user for whether to use threads.
 cat > UU/usethreads.cbu <<'EOCBU'
@@ -346,29 +333,43 @@ EOM
 esac
 EOCBU
 
-# This script UU/use64bits.cbu will get 'called-back' by Configure 
+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`"
+    ;;
+esac
+
+# 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
-           ccflags="$ccflags `getconf LFS_CFLAGS` -DUSE_LONG_LONG"
-           ldflags="$ldflags `getconf LFS_LDFLAGS`"
-           libswanted="$libswanted `getconf LFS_LIBS`"
            # 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=/usr/lib/sparcv9
+           ;;
+esac
 # This is just a trick to include some useful notes.
 cat > /dev/null <<'End_of_Solaris_Notes'
 
@@ -500,5 +501,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