Reply-To: gerberb@zenez.com
0000-Admin (0000) [Tue, 21 Sep 1999 11:07:46 +0000 (05:07 -0600)]
To: perl5-porters@perl.org
Subject: [ID 19990921.004] Changes for SCO OpenServer and UnixWare 7
Message-Id: <199909211707.LAA23611@devsys0.zenez.com>

(Snipped away the last lines of svr5.sh a la change #3725)

p4raw-link: @3725 on //depot/cfgperl: 5cf1d1f16c1401220ecaa7b3127343c7c6c095d2

p4raw-id: //depot/cfgperl@4214

Configure
MANIFEST
hints/sco.sh
hints/svr5.sh [new file with mode: 0644]

index c06f8a5..caea67e 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.9 1997/02/28 15:02:09 ram Exp $
 #
-# Generated on Mon Sep 20 22:50:41 EET DST 1999 [metaconfig 3.0 PL70]
+# Generated on Wed Sep 22 00:13:58 EET DST 1999 [metaconfig 3.0 PL70]
 # (with additional metaconfig patches by perlbug@perl.com)
 
 cat >/tmp/c1$$ <<EOF
@@ -874,7 +874,7 @@ al="$al MIPSEB MIPSEL MSDOS MTXINU MULTIMAX MVS"
 al="$al M_COFF M_I186 M_I286 M_I386 M_I8086 M_I86 M_I86SM"
 al="$al M_SYS3 M_SYS5 M_SYSIII M_SYSV M_UNIX M_XENIX"
 al="$al NeXT OCS88 OSF1 PARISC PC532 PORTAR POSIX"
-al="$al PWB R3000 RES RISC6000 RT Sun386i SVR3 SVR4"
+al="$al PWB R3000 RES RISC6000 RT Sun386i SVR3 SVR4 SVR5"
 al="$al SYSTYPE_BSD SYSTYPE_SVR4 SYSTYPE_SYSV Tek4132 Tek4300"
 al="$al UMAXV USGr4 USGr4_2 UTEK UTS UTek UnicomPBB UnicomPBD Utek"
 al="$al VMS Xenix286"
@@ -2310,7 +2310,10 @@ EOM
                        mips)   osname=mips_osf1 ;;
                        esac
                        ;;
-               uts) osname=uts 
+               unixware) osname=svr5
+                       osvers="$4"
+                       ;;
+               uts) osname=uts
                        osvers="$3"
                        ;;
                qnx) osname=qnx
index a570960..74ed56c 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -472,6 +472,7 @@ hints/stellar.sh    Hints for named architecture
 hints/sunos_4_0.sh     Hints for named architecture
 hints/sunos_4_1.sh     Hints for named architecture
 hints/svr4.sh          Hints for named architecture
+hints/svr5.sh          Hints for named architecture
 hints/ti1500.sh                Hints for named architecture
 hints/titanos.sh       Hints for named architecture
 hints/ultrix_4.sh      Hints for named architecture
index eb59845..1c70a4d 100644 (file)
@@ -9,6 +9,8 @@
 # Mostly rewritten on
 # Tue Jan 19 23:00:00 CET 1999
 # by Francois Desarmenien <desar@club-internet.fr>
+# Modified by Boyd Gerber <gerberb@zenez.com>
+# Tue Sep 21 1999
 ###############################################################
 #
 # To use cc,  use   sh Configure
@@ -82,6 +84,7 @@ case `/bin/uname -X | egrep '3\.2v'` in
    echo "\a" >&4
    echo "\a" >&4
    echo "  For UnixWare, use svr4.sh hints instead" >&4
+   echo "  For UnixWare 7.*, use svr5.sh hints instead" >&4
    echo "\a" >&4
    echo "***********************************************************" >&4
    exit
@@ -102,7 +105,7 @@ if test "$scorls" = "3"
 then 
     dlext=''
     case "$cc" in
-        gcc)    optimize='-O2' ;;
+        *gcc*)  optimize='-O2' ;;
         *)      ccflags="$ccflags -W0 -quiet"
                 optimize='-O' ;;
     esac
@@ -114,7 +117,7 @@ else
     ###############################################################
     # In Release 5, always compile ELF objects
     case "$cc" in
-        gcc)
+        *gcc*)
             ccflags="$ccflags -melf"
             optimize='-O2'
         ;;
@@ -139,7 +142,7 @@ else
     if test "$usedl" != "n"; then
         ld='ld'
         case "$cc" in
-            gcc)
+            *gcc*)
                 ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
                 cccdlflags='-fpic'
                 lddlflags='-G -L/usr/local/lib'
diff --git a/hints/svr5.sh b/hints/svr5.sh
new file mode 100644 (file)
index 0000000..44c03c9
--- /dev/null
@@ -0,0 +1,222 @@
+# svr5 hints, System V Release 5.x
+# Last modified 1999/09/21 by Boyd Gerber, gerberb@zenez.com
+
+# Use Configure -Dcc=gcc to use gcc.
+case "$cc" in
+'') cc='/bin/cc'
+    test -f $cc || cc='/usr/ccs/bin/cc'
+    ;;
+  *)
+    case "$gccversion" in
+      *2.95*) 
+        ccflags='-fno-strict-aliasing'
+      ;;
+      *);;
+    esac
+  ;;
+esac
+
+# want_ucb=''
+# want_dbm='yes'
+want_gdbm='yes'
+
+# We include support for using libraries in /usr/ucblib, but the setting
+# of libswanted excludes some libraries found there.  If you run into
+# problems, you may have to remove "ucb" from libswanted.  Just delete
+# the comment '#' from the sed command below.
+# ldflags='-L/usr/ccs/lib -L/usr/ucblib'
+# ccflags='-I/usr/include -I/usr/ucbinclude'
+# Don't use problematic libraries:
+libswanted=`echo " $libswanted " | sed -e 's/ malloc / /'` # -e 's/ ucb / /'`
+# libmalloc.a - Probably using Perl's malloc() anyway.
+# libucb.a - Remove it if you have problems ld'ing.  We include it because
+#   it is needed for ODBM_File and NDBM_File extensions.
+
+if [ "$want_ucb" ] ; then 
+    ldflags= '-L/usr/ccs/lib -L/usr/ucblib'
+    ccflags='-I/usr/include -I/usr/ucbinclude'
+  if [ -r /usr/ucblib/libucb.a ]; then # If using BSD-compat. library:
+    d_Gconvert='gcvt((x),(n),(b))'     # Try gcvt() before gconvert().
+    # Use the "native" counterparts, not the BSD emulation stuff:
+    d_bcmp='undef' d_bcopy='undef' d_bzero='undef' d_safebcpy='undef'
+    d_index='undef' d_killpg='undef' d_getprior='undef' d_setprior='undef'
+    d_setlinebuf='undef' 
+    # d_setregid='undef' d_setreuid='undef'  # ???
+  fi
+else
+#    libswanted=`echo " $libswanted " | sed -e 's/ ucb / /' -e 's/ dbm / /'`
+    libswanted=`echo " $libswanted " | sed -e 's/ ucb / /'`
+    glibpth=`echo " $glibpth " | sed -e 's/ \/usr\/ucblib / /'`
+
+    # a non ucb native version of libdbm for /usr/local is available from 
+    # http://www.sco.com/skunkware 
+    # if its installed (and not overidden) we'll use it.
+    if [ ! -f /usr/local/lib/libdbm.so -o ! "$want_dbm" ] ; then
+        libswanted=`echo " $libswanted " | sed -e 's/ dbm / /'`
+    fi
+fi
+
+if [ "$want_gdbm" -a -f /usr/local/lib/libgdbm.so ] ; then 
+    i_gdbm='define'
+else
+    i_gdbm='undef'
+   libswanted=`echo " $libswanted " | sed -e 's/ gdbm / /'`
+fi
+
+# Don't use problematic libraries:
+#   libmalloc.a - Probably using Perl's malloc() anyway.
+#   libc:  on UW7 don't want -lc explicitly - cc gives warnings/errors
+libswanted=`echo " $libswanted " | sed -e 's/ malloc / /' -e 's/ c / /'`
+
+# remove /shlib and /lib from library search path as both symlink to /usr/lib
+# where runtime shared libc is 
+glibpth=`echo " $glibpth " | sed -e 's/ \/shlib / /' -e 's/ \/lib / /`
+
+# UnixWare has /usr/lib/libc.so.1, /usr/lib/libc.so.1.1, and
+# /usr/ccs/lib/libc.so.  Configure chooses libc.so.1.1 while it
+# appears that /usr/ccs/lib/libc.so contains more symbols:
+#
+# Try the following if you want to use nm-extraction.  We'll just
+# skip the nm-extraction phase, since searching for all the different
+# library versions will be hard to keep up-to-date.
+#
+# if [ "" = "$libc" -a -f /usr/ccs/lib/libc.so -a \
+#   -f /usr/lib/libc.so.1 -a -f /usr/lib/libc.so.1.1 ]; then
+#     if nm -h /usr/ccs/lib/libc.so | egrep '\<_?select$' >/dev/null; then
+#      if nm -h /usr/lib/libc.so.1 | egrep '\<_?select$'` >/dev/null ||
+#         nm -h /usr/lib/libc.so.1.1 | egrep '\<_?select$'` >/dev/null; then
+#          :
+#      else
+#          libc=/usr/ccs/lib/libc.so
+#      fi
+#     fi
+# fi
+#
+#  Don't bother with nm.  Just compile & link a small C program.
+case "$usenm" in
+'') usenm=false;;
+esac
+
+# Broken C-Shell tests (Thanks to Tye McQueen):
+# The OS-specific checks may be obsoleted by the this generic test.
+       sh_cnt=`sh -c 'echo /*' | wc -c`
+       csh_cnt=`csh -f -c 'glob /*' 2>/dev/null | wc -c`
+       csh_cnt=`expr 1 + $csh_cnt`
+if [ "$sh_cnt" -ne "$csh_cnt" ]; then
+    echo "You're csh has a broken 'glob', disabling..." >&2
+    d_csh='undef'
+fi
+
+# Unixware-specific problems.  The undocumented -X argument to uname 
+# is probably a reasonable way of detecting UnixWare.  
+# UnixWare has a broken csh.  (This might already be detected above).
+# Configure can't detect memcpy or memset on Unixware 2 or 7
+#
+#    Leave leading tabs on the next two lines so Configure doesn't 
+#    propagate these variables to config.sh
+       uw_ver=`uname -v`
+       uw_isuw=`uname -X 2>&1 | grep Release`
+
+if [ "$uw_isuw" = "Release = 5" ]; then
+   case $uw_ver in
+   7*)
+       d_csh='undef'
+       d_memcpy='define'
+       d_memset='define'
+       stdio_cnt='((fp)->__cnt)'
+       d_stdio_cnt_lval='define'
+       stdio_ptr='((fp)->__ptr)'
+       d_stdio_ptr_lval='define'
+       ;;
+   esac
+fi
+
+###############################################################
+# Dynamic loading section:
+#
+# ccdlflags : must tell the linker to export all global symbols
+# cccdlflags: must tell the compiler to generate relocatable code
+# lddlflags : must tell the linker to output a shared library
+#
+# /usr/local/lib is added for convenience, since additional libraries
+# are usually put there 
+#
+# use shared perl lib    
+useshrplib='true'
+
+case "$cc" in
+       *gcc*)
+           ccdlflags='-Xlinker -Bexport -L/usr/local/lib'
+           cccdlflags='-fpic'
+           lddlflags='-G -L/usr/local/lib'
+        ;;
+        *)
+           ccdlflags='-Wl,-Bexport -L/usr/local/lib'
+           cccdlflags='-KPIC'
+           lddlflags='-G -Wl,-Bexport -L/usr/local/lib'
+        ;;
+esac
+
+###############################################################
+# Use dynamic loading
+usedl='define'
+dlext='so'
+dlsrc='dl_dlopen.xs'
+
+# Configure may fail to find lstat() since it's a static/inline function
+# in <sys/stat.h> on Unisys U6000 SVR4, UnixWare 2.x, and possibly other
+# SVR4 derivatives.  (Though UnixWare has it in /usr/ccs/lib/libc.so.)
+d_lstat=define
+
+
+# DDE SMES Supermax Enterprise Server
+case "`uname -sm`" in
+"UNIX_SV SMES")
+    # the *grent functions are in libgen.
+    libswanted="$libswanted gen"
+    # csh is broken (also) in SMES
+    # This may already be detected by the generic test above.
+    d_csh='undef'
+    case "$cc" in
+    *gcc*) ;;
+    *) # for cc we need -K PIC (not -K pic)
+       cccdlflags="$cccdlflags -K PIC"
+       ;;
+    esac
+    ;;
+esac
+
+# 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'
+case "$usethreads" in
+$define|true|[yY]*)
+        ccflags="$ccflags"
+        set `echo X "$libswanted "| sed -e 's/ c / pthread c /'`
+        shift
+        libswanted="$*"
+  case "$cc" in
+       *gcc*)
+           ccflags="-D_REENTRANT $ccflags -fpic -pthread"
+           cccdlflags='-fpic'
+           lddlflags='-pthread -G -L/usr/local/lib '
+        ;;
+        *)
+           ccflags="-D_REENTRANT $ccflags -KPIC -Kthread"
+           ccdlflags='-Kthread -Wl,-Bexport -L/usr/local/lib'
+           cccdlflags='-KPIC -Kthread'
+           lddlflags='-G -Kthread -Wl,-Bexport -L/usr/local/lib'
+           ldflags='-Kthread -L/usr/local/lib -L/usr/gnu/lib'
+        ;;
+  esac
+esac
+EOCBU
+
+# End of Unixware-specific tests.
+# Configure may fail to find lstat() since it's a static/inline function
+# in <sys/stat.h> on Unisys U6000 SVR4, UnixWare 2.x, and possibly other
+# SVR4 derivatives.  (Though UnixWare has it in /usr/ccs/lib/libc.so.)
+d_lstat=define
+
+d_suidsafe='define'    # "./Configure -d" can't figure this out easilly
+