[PATCH for 5.004_04 and 5.004_64] (Was: Obsoleted svr4.sh)
Andy Dougherty [Thu, 23 Apr 1998 11:10:15 +0000 (07:10 -0400)]
Date: Thu, 23 Apr 1998 11:10:15 -0400 (EDT)
Subject: [PATCH 5.004_64] Start new perldelta
Date: Thu, 23 Apr 1998 12:12:38 -0400 (EDT)
(above branched perldelta -> perldelta4, new perldelta will be
created/added next change)
Subject: [PATCH] BSD Platforms need STRUCT_TM_HASZONE
Date: Tue, 12 May 1998 09:58:49 -0400 (EDT)

p4raw-id: //depot/perl@951

MANIFEST
ext/POSIX/hints/bsdos.pl [new file with mode: 0644]
ext/POSIX/hints/freebsd.pl [new file with mode: 0644]
ext/POSIX/hints/netbsd.pl [new file with mode: 0644]
ext/POSIX/hints/openbsd.pl [new file with mode: 0644]
hints/svr4.sh
pod/perldelta4.pod [moved from pod/perldelta.pod with 100% similarity]

index 567e852..3e117e8 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -227,8 +227,12 @@ ext/POSIX/Makefile.PL              POSIX extension makefile writer
 ext/POSIX/POSIX.pm             POSIX extension Perl module
 ext/POSIX/POSIX.pod            POSIX extension documentation
 ext/POSIX/POSIX.xs             POSIX extension external subroutines
+ext/POSIX/hints/bsdos.pl       Hint for POSIX for named architecture
+ext/POSIX/hints/freebsd.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/linux.pl       Hint for POSIX for named architecture
+ext/POSIX/hints/netbsd.pl      Hint for POSIX for named architecture
 ext/POSIX/hints/next_3.pl      Hint for POSIX for named architecture
+ext/POSIX/hints/openbsd.pl     Hint for POSIX for named architecture
 ext/POSIX/hints/sunos_4.pl     Hint for POSIX for named architecture
 ext/POSIX/typemap              POSIX extension interface types
 ext/SDBM_File/Makefile.PL      SDBM extension makefile writer
diff --git a/ext/POSIX/hints/bsdos.pl b/ext/POSIX/hints/bsdos.pl
new file mode 100644 (file)
index 0000000..62732ac
--- /dev/null
@@ -0,0 +1,3 @@
+# BSD platforms have extra fields in struct tm that need to be initialized.
+#  XXX A Configure test is needed.
+$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/ext/POSIX/hints/freebsd.pl b/ext/POSIX/hints/freebsd.pl
new file mode 100644 (file)
index 0000000..62732ac
--- /dev/null
@@ -0,0 +1,3 @@
+# BSD platforms have extra fields in struct tm that need to be initialized.
+#  XXX A Configure test is needed.
+$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/ext/POSIX/hints/netbsd.pl b/ext/POSIX/hints/netbsd.pl
new file mode 100644 (file)
index 0000000..62732ac
--- /dev/null
@@ -0,0 +1,3 @@
+# BSD platforms have extra fields in struct tm that need to be initialized.
+#  XXX A Configure test is needed.
+$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
diff --git a/ext/POSIX/hints/openbsd.pl b/ext/POSIX/hints/openbsd.pl
new file mode 100644 (file)
index 0000000..62732ac
--- /dev/null
@@ -0,0 +1,3 @@
+# BSD platforms have extra fields in struct tm that need to be initialized.
+#  XXX A Configure test is needed.
+$self->{CCFLAGS} = $Config{ccflags} . ' -DSTRUCT_TM_HASZONE' ;
index 922736a..0a38702 100644 (file)
@@ -1,15 +1,19 @@
 # svr4 hints, System V Release 4.x
-# Last modified 1995/01/28 by Tye McQueen, tye@metronet.com
+# Last modified 1996/10/25 by Tye McQueen, tye@metronet.com
+# Merged 1998/04/23 with perl5.004_04 distribution by 
+# Andy Dougherty <doughera@lafayette.edu>
+
 # Use Configure -Dcc=gcc to use gcc.
 case "$cc" in
 '') cc='/bin/cc'
     test -f $cc || cc='/usr/ccs/bin/cc'
     ;;
 esac
+
 # We include support for using libraries in /usr/ucblib, but the setting
-# of libswanted excludes some libraries found there.  You may want to
-# prevent "ucb" from being removed from libswanted and see if perl will
-# build on your system.
+# 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:
@@ -17,56 +21,98 @@ 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 [ -r /usr/ucblib/libucb.a ]; then   # If using BSD-compat. library:
-    d_gconvert='undef' # Unusuable under UnixWare 1.1 [use gcvt() instead]
+    d_Gconvert='gcvt'  # 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'
+    d_setlinebuf='undef' 
+    # d_setregid='undef' d_setreuid='undef'  # ???
 fi
-d_suidsafe='define'    # "./Configure -d" can't figure this out easilly
-usevfork='false'
 
-# Configure may fail to find lstat() since it's a static/inline
-# function in <sys/stat.h> on Unisys U6000 SVR4, and possibly
-# other SVR4 derivatives.
-d_lstat=define
+# 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 has a broken csh.  The undocumented -X argument to uname is probably
 # a reasonable way of detecting UnixWare.  Also in 2.1.1 the fields in
 # FILE* got renamed!
-uw_ver=`uname -v`
-uw_isuw=`uname -X 2>&1 | grep Release`
+#
+#      Leave leading tabs 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 = 4.2MP" ]; then
    case $uw_ver in
    2.1)
-      d_csh='undef'
-      ;;
+       d_csh='undef'
+       ;;
    2.1.*)
-      d_csh='undef'
-      stdio_cnt='((fp)->__cnt)'
-      d_stdio_cnt_lval='define'
-      stdio_ptr='((fp)->__ptr)'
-      d_stdio_ptr_lval='define'
-      ;;
+       d_csh='undef'
+       stdio_cnt='((fp)->__cnt)'
+       d_stdio_cnt_lval='define'
+       stdio_ptr='((fp)->__ptr)'
+       d_stdio_ptr_lval='define'
+       ;;
    esac
 fi
 
 # DDE SMES Supermax Enterprise Server
 case "`uname -sm`" in
 "UNIX_SV SMES")
-       if test "$cc" = '/bin/cc' -o "$gccversion" = ""
-       then
-               # for cc we need -K PIC (not -K pic)
-               cccdlflags="$cccdlflags -K PIC"
-       fi
-       # the *grent functions are in libgen.
-       libswanted="$libswanted gen"
-       # csh is broken (also) in SMES
-       d_csh='undef'
+    # 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
 
+# 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
+
 cat <<'EOM' >&4
 
 If you wish to use dynamic linking, you must use 
similarity index 100%
rename from pod/perldelta.pod
rename to pod/perldelta4.pod