perl5.000 patch.0n: [address Configure and build issues]
Andy Dougherty [Sun, 5 Mar 1995 22:11:42 +0000 (22:11 +0000)]
This is my patch  patch.0n  for perl5.000.

This _very_ small patch
    1.  updates the linux and dec_osf hints files,
    2.  adds sv_isobject to global.sym,
    3.  updates Configure to deal with recent Linux nm output, and
    4.  fixes the names in File::Path.

This patch addresses only Configure and build issues for which I have
tested solutions.  It does nothing else.  Maybe some of the other patches
floating around should be included.  Maybe not.  I'm afraid I just
don't have time to think about them now.

Unless something's broken, I hope not to issue any more patches :-)
(Yes, I've said that before, but this one's _really_ small, and linux
support was broken.:-)  Thanks to Kenneth Albanowski for researching,
implementing, and testing the Linux patch.

Configure
U/dist3_051.pat
embed.h
global.sym
hints/dec_osf.sh
hints/linux.sh
lib/File/Path.pm

index 86f28eb..e6153de 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -20,7 +20,7 @@
 
 # $Id: Head.U,v 3.0.1.6 1994/10/29 15:54:19 ram Exp $
 #
-# Generated on Tue Feb 28 10:00:27 EST 1995 [metaconfig 3.0 PL51]
+# Generated on Mon Mar  6 11:00:02 EST 1995 [metaconfig 3.0 PL51]
 
 cat >/tmp/c1$$ <<EOF
 ARGGGHHHH!!!!!
@@ -3084,7 +3084,7 @@ $echo $n ".$c"
 $grep fprintf libc.tmp > libc.ptf
 xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
 xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
-if com="$sed -n -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+if com="$sed -n -e 's/__IO//' -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
        eval $xscan;\
        $contains '^fprintf$' libc.list >/dev/null 2>&1; then
                eval $xrun
@@ -3127,7 +3127,7 @@ elif com="$sed -n -e '/Def. Text/s/.* \([^ ]*\)\$/\1/p'";\
                eval $xrun
 else
        nm -p $* 2>/dev/null >libc.tmp
-       com="$sed -n -e 's/^.* [ADTS]  *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
+       com="$sed -n -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
        eval "<libc.tmp $com >libc.list"
        if $contains '^fprintf$' libc.list >/dev/null 2>&1; then
                nm_opt='-p'
index fd2ea67..1a671d8 100644 (file)
@@ -7,6 +7,8 @@ Oldconfig.U
     Clean up and extend the $osvers detection for DEC OSF/1 on the Alpha.
 archname.U
     Protect against spaces in the output of uname -m.
+libc.U
+    Pick up Linux nm output with leading __IO.
 sig_name.U
     Look in <linux/signals.h> too.
 usrinc.U
@@ -84,6 +86,45 @@ Prereq:  3.0.1.1
        else
                tarch="$osname"
        fi
+Index: libc.U
+Prereq:  3.0.1.7 
+*** mcon/U/libc.U      Sat Oct 29 15:28:06 1994
+--- /home2/doughera/lib/dist/U/libc.U  Mon Mar  6 10:34:07 1995
+***************
+*** 218,224 ****
+  xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
+  xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+  ?X: BSD-like output, I-type for Linux
+! if com="$sed -n -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+--- 218,225 ----
+  xscan='eval "<libc.ptf $com >libc.list"; $echo $n ".$c" >&4'
+  xrun='eval "<libc.tmp $com >libc.list"; echo "done" >&4'
+  ?X: BSD-like output, I-type for Linux
+! ?X: Some versions of Linux include a leading __IO in the symbol name.
+! if com="$sed -n -e 's/__IO//' -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+       eval $xscan;\
+       $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               eval $xrun
+***************
+*** 263,269 ****
+               eval $xrun
+  else
+       nm -p $* 2>/dev/null >libc.tmp
+!      com="$sed -n -e 's/^.* [ADTS]  *_[_.]*//p' -e 's/^.* [ADTS] //p'";\
+       eval "<libc.tmp $com >libc.list"
+       if $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               nm_opt='-p'
+--- 264,270 ----
+               eval $xrun
+  else
+       nm -p $* 2>/dev/null >libc.tmp
+!      com="$sed -n -e 's/^.* [ADTSI]  *_[_.]*//p' -e 's/^.* [ADTSI] //p'";\
+       eval "<libc.tmp $com >libc.list"
+       if $contains '^fprintf$' libc.list >/dev/null 2>&1; then
+               nm_opt='-p'
 Index: sig_name.U
 Prereq:  3.0.1.2 
 *** mcon/U/sig_name.U  Wed Jun 22 01:20:22 1994
diff --git a/embed.h b/embed.h
index 7ee837e..67ab7dc 100644 (file)
--- a/embed.h
+++ b/embed.h
 #define sv_inc         Perl_sv_inc
 #define sv_insert      Perl_sv_insert
 #define sv_isa         Perl_sv_isa
+#define sv_isobject    Perl_sv_isobject
 #define sv_len         Perl_sv_len
 #define sv_magic       Perl_sv_magic
 #define sv_mortalcopy  Perl_sv_mortalcopy
index 54b78c2..54217de 100644 (file)
@@ -938,6 +938,7 @@ sv_grow
 sv_inc
 sv_insert
 sv_isa
+sv_isobject
 sv_len
 sv_magic
 sv_mortalcopy
index 38b48e5..85de7cb 100644 (file)
@@ -1,3 +1,11 @@
 # hints/dec_osf.sh
+case "$optimize" in
+'')
+    case "$cc" in 
+    *gcc*) ;;
+    *) optimize='-O2 -Olimit 2900' ;;
+    esac
+    ;;
+esac
 ccflags="$ccflags -DSTANDARD_C"
 lddlflags='-shared -expect_unresolved "*" -s'
index cde47b1..97be1d7 100644 (file)
@@ -1,14 +1,22 @@
 # hints/linux.sh
 # Original version by rsanders
-# Additional dlext support by Kenneth Albanowski <kjahds@kjahds.com>
+# Additional support by Kenneth Albanowski <kjahds@kjahds.com>
 #
 # First pass at ELF support by Andy Dougherty <doughera@lafcol.lafayette.edu>
 # Fri Feb  3 14:05:00 EST 1995
 # Use   sh Configure -Dcc=gcc-elf     to try using gcc-elf.  It might work.
 #
+# Last updated Mon Mar  6 10:18:10 EST 1995
+#
+
+# Why is this needed?
+bin='/usr/bin'
+
+# Apparently some versions of gcc 2.6.2 are picking up _G_HAVE_BOOL
+# from somewhere (_G_config.h maybe?) but not actually defining bool.
+# Anyone really know what's going on?
+ccflags='-Dbool=char -DHAS_BOOL'
 
-ccflags='-I/usr/include/bsd'
-cppflags=' -I/usr/include/bsd'
 d_dosuid='define'
 
 malloctype='void *'
index bafe108..30f550d 100644 (file)
@@ -1,12 +1,12 @@
-package File::Mkpath;
+package File::Path;
 
 =head1 NAME
 
-File::Mkpath - create or remove a series of directories
+File::Path - create or remove a series of directories
 
 =head1 SYNOPSIS
 
-C<use File::Mkpath>
+C<use File::Path>
 
 C<mkpath(['/foo/bar/baz', 'blurfl/quux'], 1, 0711);>