summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xConfigure25
-rw-r--r--MANIFEST1
-rw-r--r--MANIFEST.new1
-rw-r--r--Makefile.SH3
-rw-r--r--U/Extensions.U20
-rw-r--r--U/dist3_051.pat67
-rwxr-xr-xconfigpm8
-rw-r--r--doio.c3
-rw-r--r--ext/DB_File/DB_File.pm2
-rw-r--r--ext/DynaLoader/DynaLoader.pm2
-rw-r--r--ext/Fcntl/Fcntl.pm2
-rw-r--r--ext/GDBM_File/GDBM_File.pm2
-rw-r--r--ext/POSIX/POSIX.pm2
-rw-r--r--ext/Socket/Socket.pm2
-rw-r--r--hints/machten.sh27
-rw-r--r--lib/ExtUtils/MakeMaker.pm17
-rw-r--r--util.c10
17 files changed, 172 insertions, 22 deletions
diff --git a/Configure b/Configure
index e6153de51b..cd728d293f 100755
--- 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 Mon Mar 6 11:00:02 EST 1995 [metaconfig 3.0 PL51]
+# Generated on Fri Mar 10 09:48:55 EST 1995 [metaconfig 3.0 PL51]
cat >/tmp/c1$$ <<EOF
ARGGGHHHH!!!!!
@@ -1479,6 +1479,9 @@ EOM
$test -d /usr/apollo/bin && osname=apollo
$test -f /etc/saf/_sactab && osname=svr4
$test -d /usr/include/minix && osname=minix
+ $test -d /MachTen && osname=machten && \
+ osvers=`/usr/etc/version | $awk '{print $2}' | \
+ $sed -e 's/[A-Za-z]$//'`
if $test -f $uname; then
set X $myuname
shift
@@ -4016,10 +4019,10 @@ while $test "$cont"; do
var=$2; eval "was=\$$2";
if $test "$xxx" && $test -r "$xxx";
then eval $xxf;
- eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
+ eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
cont="";
else eval $xxnf;
- eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
+ eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
set $yyy; shift; shift; yyy=$@;
case $# in 0) cont="";;
2) xxf="echo \"but I found <\$1> $instead.\" >&4";
@@ -6314,10 +6317,26 @@ eval $setvar
echo " "
echo "Looking for extensions..." >&4
cd ../ext
+: If we are using the old config.sh, known_extensions may contain
+: old or inaccurate or duplicate values.
known_extensions=''
+: We do not use find because it might not be available.
+: We do not just use MANIFEST because the user may have dropped
+: some additional extensions into the source tree and expect them
+: to be built.
for xxx in * ; do
if $test -f $xxx/$xxx.xs; then
known_extensions="$known_extensions $xxx"
+ else
+ if $test -d $xxx; then
+ cd $xxx
+ for yyy in * ; do
+ if $test -f $yyy/$yyy.xs; then
+ known_extensions="$known_extensions $xxx/$yyy"
+ fi
+ done
+ cd ..
+ fi
fi
done
set X $known_extensions
diff --git a/MANIFEST b/MANIFEST
index fcb1ec3024..9df21550a1 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -201,6 +201,7 @@ hints/irix_6.sh Hints for named architecture
hints/isc.sh Hints for named architecture
hints/isc_2.sh Hints for named architecture
hints/linux.sh Hints for named architecture
+hints/machten.sh Hints for named architecture
hints/mips.sh Hints for named architecture
hints/mpc.sh Hints for named architecture
hints/mpeix.sh Hints for named architecture
diff --git a/MANIFEST.new b/MANIFEST.new
index fcb1ec3024..9df21550a1 100644
--- a/MANIFEST.new
+++ b/MANIFEST.new
@@ -201,6 +201,7 @@ hints/irix_6.sh Hints for named architecture
hints/isc.sh Hints for named architecture
hints/isc_2.sh Hints for named architecture
hints/linux.sh Hints for named architecture
+hints/machten.sh Hints for named architecture
hints/mips.sh Hints for named architecture
hints/mpc.sh Hints for named architecture
hints/mpeix.sh Hints for named architecture
diff --git a/Makefile.SH b/Makefile.SH
index 6bbd7fe884..9de1de763a 100644
--- a/Makefile.SH
+++ b/Makefile.SH
@@ -254,6 +254,9 @@ opcode.h: opcode.pl
embed.h: embed_h.sh global.sym interp.sym
sh embed_h.sh
+# We have to call our ./makedir because Ultrix 4.3 make can't handle the line
+# test -d lib/auto || mkdir lib/auto
+#
preplibrary: miniperl lib/Config.pm
@./makedir lib/auto
@echo " AutoSplitting perl library"
diff --git a/U/Extensions.U b/U/Extensions.U
index bcaffc0c52..2cba199929 100644
--- a/U/Extensions.U
+++ b/U/Extensions.U
@@ -36,18 +36,32 @@
?S: for hints files to indicate that POSIX will not compile
?S: on a particular system.
?S:.
-?T:xxx avail_ext
+?T:xxx yyy avail_ext
?INIT:: set useposix=false in your hint file to disable the POSIX extension.
?INIT:useposix=true
echo " "
echo "Looking for extensions..." >&4
cd ../ext
-?X: If we're using the old config.sh, known_extensions may contain
-?X: old or inaccurate (or duplicate) values.
+: If we are using the old config.sh, known_extensions may contain
+: old or inaccurate or duplicate values.
known_extensions=''
+: We do not use find because it might not be available.
+: We do not just use MANIFEST because the user may have dropped
+: some additional extensions into the source tree and expect them
+: to be built.
for xxx in * ; do
if $test -f $xxx/$xxx.xs; then
known_extensions="$known_extensions $xxx"
+ else
+ if $test -d $xxx; then
+ cd $xxx
+ for yyy in * ; do
+ if $test -f $yyy/$yyy.xs; then
+ known_extensions="$known_extensions $xxx/$yyy"
+ fi
+ done
+ cd ..
+ fi
fi
done
set X $known_extensions
diff --git a/U/dist3_051.pat b/U/dist3_051.pat
index 1a671d8bb0..c1c877db7c 100644
--- a/U/dist3_051.pat
+++ b/U/dist3_051.pat
@@ -5,8 +5,11 @@ These patches do the following:
Oldconfig.U
Clean up and extend the $osvers detection for DEC OSF/1 on the Alpha.
+ Add MachTen detection (requires adding awk to ?MAKE line).
archname.U
Protect against spaces in the output of uname -m.
+Inhdr.U
+ Delete tabs that caused /bin/sh to core dump on Mach Ten 2.1.1.
libc.U
Pick up Linux nm output with leading __IO.
sig_name.U
@@ -18,10 +21,70 @@ usrinc.U
Dept. of Physics
Lafayette College, Easton, PA 18042 USA
+Index: Inhdr.U
+Prereq: 3.0.1.1
+*** mcon/U/Inhdr.U Sat Oct 29 15:28:15 1994
+--- /home2/doughera/lib/dist/U/Inhdr.U Wed Mar 8 15:52:13 1995
+***************
+*** 52,61 ****
+ var=$2; eval "was=\$$2";
+ if $test "$xxx" && $test -r "$xxx";
+ then eval $xxf;
+! eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
+ cont="";
+ else eval $xxnf;
+! eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
+ set $yyy; shift; shift; yyy=$@;
+ case $# in 0) cont="";;
+ 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
+--- 52,65 ----
+ var=$2; eval "was=\$$2";
+ if $test "$xxx" && $test -r "$xxx";
+ then eval $xxf;
+! ?X: This line deliberately shifted left 1 tabstop to avoid /bin/sh core dump
+! ?X: on MachTen 2.1.1. --AD March 8, 1995
+! eval "case \"\$$var\" in $undef) . ./whoa; esac"; eval "$var=\$td";
+ cont="";
+ else eval $xxnf;
+! ?X: This line deliberately shifted left 1 tabstop to avoid /bin/sh core dump
+! ?X: on MachTen 2.1.1. --AD March 8, 1995
+! eval "case \"\$$var\" in $define) . ./whoa; esac"; eval "$var=\$tu"; fi;
+ set $yyy; shift; shift; yyy=$@;
+ case $# in 0) cont="";;
+ 2) xxf="echo \"but I found <\$1> $instead.\" >&4";
Index: Oldconfig.U
Prereq: 3.0.1.7
*** mcon/U/Oldconfig.U Thu Feb 16 09:52:38 1995
---- /home2/doughera/lib/dist/U/Oldconfig.U Thu Feb 16 16:26:25 1995
+--- /home2/doughera/lib/dist/U/Oldconfig.U Fri Mar 10 09:43:30 1995
+***************
+*** 45,51 ****
+ ?X: for the sake of setting defaults.
+ ?X:
+ ?MAKE:Oldconfig hint myuname osname osvers: Instruct Myread uname \
+! sed test cat rm lns n c contains Loc Options Tr
+ ?MAKE: -pick wipe $@ %<
+ ?S:myuname:
+ ?S: The output of 'uname -a' if available, otherwise the hostname. On Xenix,
+--- 45,51 ----
+ ?X: for the sake of setting defaults.
+ ?X:
+ ?MAKE:Oldconfig hint myuname osname osvers: Instruct Myread uname \
+! awk sed test cat rm lns n c contains Loc Options Tr
+ ?MAKE: -pick wipe $@ %<
+ ?S:myuname:
+ ?S: The output of 'uname -a' if available, otherwise the hostname. On Xenix,
+***************
+*** 150,155 ****
+--- 150,158 ----
+ $test -d /usr/apollo/bin && osname=apollo
+ $test -f /etc/saf/_sactab && osname=svr4
+ $test -d /usr/include/minix && osname=minix
++ $test -d /MachTen && osname=machten && \
++ osvers=`/usr/etc/version | $awk '{print $2}' | \
++ $sed -e 's/[A-Za-z]$//'`
+ ?X: If we have uname, we already computed a suitable uname -a output, correctly
+ ?X: formatted for Xenix, and it lies in $myuname.
+ if $test -f $uname; then
***************
*** 264,275 ****
osvers="$3"
@@ -36,7 +99,7 @@ Prereq: 3.0.1.7
;;
hp*) osname=hp_osf1 ;;
mips) osname=mips_osf1 ;;
---- 264,274 ----
+--- 267,277 ----
osvers="$3"
;;
osf1) case "$5" in
diff --git a/configpm b/configpm
index acce1e0107..bee74a9fbb 100755
--- a/configpm
+++ b/configpm
@@ -9,6 +9,9 @@ $config_pm = $ARGV[0] || 'lib/Config.pm';
dynamic_ext static_ext extensions dl_src
sig_name ccflags cppflags intsize);
+# names of things which may need to have slashes changed to double-colons
+@extensions = qw(dynamic_ext static_ext extensions known_extensions);
+
open CONFIG, ">$config_pm" or die "Can't open $config_pm: $!\n";
$myver = sprintf("%.3f", $]);
@@ -27,6 +30,7 @@ require Exporter;
ENDOFBEG
@fast{@fast} = @fast;
+@extensions{@extensions} = @extensions;
@non_v=();
@v_fast=();
@v_others=();
@@ -39,7 +43,9 @@ while (<>) {
push(@non_v, "#$_"); # not a name='value' line
next;
}
- if (!$fast{$1}){ push(@v_others, $_); next; }
+ $name = $1;
+ if ($extensions{$name}) { s,/,::,g }
+ if (!$fast{$name}){ push(@v_others, $_); next; }
push(@v_fast,$_);
}
diff --git a/doio.c b/doio.c
index 7d8e6178de..7362903af6 100644
--- a/doio.c
+++ b/doio.c
@@ -168,7 +168,8 @@ FILE *supplied_fp;
if (dodup)
fd = dup(fd);
if (!(fp = fdopen(fd,mode)))
- close(fd);
+ if (dodup)
+ close(fd);
}
}
else {
diff --git a/ext/DB_File/DB_File.pm b/ext/DB_File/DB_File.pm
index af56cc0548..4cff8da4a9 100644
--- a/ext/DB_File/DB_File.pm
+++ b/ext/DB_File/DB_File.pm
@@ -179,7 +179,7 @@ require TieHash;
require Exporter;
require AutoLoader;
require DynaLoader;
-@ISA = (TieHash, Exporter, DynaLoader);
+@ISA = qw(TieHash Exporter DynaLoader);
@EXPORT = qw(
$DB_BTREE $DB_HASH $DB_RECNO
BTREEMAGIC
diff --git a/ext/DynaLoader/DynaLoader.pm b/ext/DynaLoader/DynaLoader.pm
index 9a21dfd40b..2c375d0fd5 100644
--- a/ext/DynaLoader/DynaLoader.pm
+++ b/ext/DynaLoader/DynaLoader.pm
@@ -18,7 +18,7 @@ use Config;
use Carp;
use AutoLoader;
-@ISA=(AutoLoader);
+@ISA=qw(AutoLoader);
# enable messages from DynaLoader perl code
diff --git a/ext/Fcntl/Fcntl.pm b/ext/Fcntl/Fcntl.pm
index d55d4e30bd..b18d1365e5 100644
--- a/ext/Fcntl/Fcntl.pm
+++ b/ext/Fcntl/Fcntl.pm
@@ -3,7 +3,7 @@ package Fcntl;
require Exporter;
require AutoLoader;
require DynaLoader;
-@ISA = (Exporter, DynaLoader);
+@ISA = qw(Exporter DynaLoader);
# Items to export into callers namespace by default
# (move infrequently used names to @EXPORT_OK below)
@EXPORT =
diff --git a/ext/GDBM_File/GDBM_File.pm b/ext/GDBM_File/GDBM_File.pm
index 99b6390e80..cf260b51fa 100644
--- a/ext/GDBM_File/GDBM_File.pm
+++ b/ext/GDBM_File/GDBM_File.pm
@@ -5,7 +5,7 @@ require TieHash;
require Exporter;
require AutoLoader;
require DynaLoader;
-@ISA = (TieHash, Exporter, DynaLoader);
+@ISA = qw(TieHash Exporter DynaLoader);
@EXPORT = qw(
GDBM_CACHESIZE
GDBM_FAST
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
index f59b4c393a..24e09fc3eb 100644
--- a/ext/POSIX/POSIX.pm
+++ b/ext/POSIX/POSIX.pm
@@ -5,7 +5,7 @@ require Exporter;
require AutoLoader;
require DynaLoader;
require Config;
-@ISA = (Exporter, DynaLoader);
+@ISA = qw(Exporter DynaLoader);
$H{assert_h} = [qw(assert NDEBUG)];
diff --git a/ext/Socket/Socket.pm b/ext/Socket/Socket.pm
index a129ec694e..8e6e097c0c 100644
--- a/ext/Socket/Socket.pm
+++ b/ext/Socket/Socket.pm
@@ -4,7 +4,7 @@ use Carp;
require Exporter;
require AutoLoader;
require DynaLoader;
-@ISA = (Exporter, DynaLoader);
+@ISA = qw(Exporter DynaLoader);
@EXPORT = qw(
AF_802
AF_APPLETALK
diff --git a/hints/machten.sh b/hints/machten.sh
new file mode 100644
index 0000000000..cbf634ab67
--- /dev/null
+++ b/hints/machten.sh
@@ -0,0 +1,27 @@
+# machten.sh
+# This file has been put together by Mark Pease <peasem@primenet.com>
+# Comments, questions, and improvements welcome!
+#
+# MachTen does not support dynamic loading. If you wish to, you
+# can get <ftp://tsx-11.mit.edu/pub/linux/sources/libs/dld-src-3.2.4.tar.gz>
+# compile and install. This is the version of DLD that works with the
+# ext/DynaLoader/dl_dld.xs in the perl5 package. Have fun!
+#
+# Original version was for MachTen 2.1.1.
+# Last modified by Andy Dougherty <doughera@lafcol.lafayette.edu>
+# Wed Mar 8 15:58:05 EST 1995
+
+# I don't know why this is needed. It might be similar to NeXT's
+# problem. See hints/next_3_2.sh.
+usemymalloc='n'
+
+so='none'
+# These are useful only if you have DLD, but harmless otherwise.
+lddlflags='-r'
+dlext='o'
+
+# MachTen does not support POSIX enough to compile the POSIX module.
+useposix=false
+
+#MachTen might have an incomplete Berkeley DB implementation.
+i_db=$undef
diff --git a/lib/ExtUtils/MakeMaker.pm b/lib/ExtUtils/MakeMaker.pm
index dbb877eccc..f619108341 100644
--- a/lib/ExtUtils/MakeMaker.pm
+++ b/lib/ExtUtils/MakeMaker.pm
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker;
-$Version = 4.085; # Last edited 21st Feb 1995 by Andreas Koenig
+$Version = 4.086; # Last edited 9 Mar 1995 by Andy Dougherty
use Config;
check_hints();
@@ -1374,7 +1374,7 @@ $att{BASEEXT}.exp: Makefile.PL
",' $(PERL) $(I_PERL_LIBS) -e \'use ExtUtils::MakeMaker; \\
mksymlists(DL_FUNCS => ',
%$funcs ? neatvalue($funcs) : '""',', DL_VARS => ',
- @$vars ? neatvalue($vars) : '""',")'
+ @$vars ? neatvalue($vars) : '""', ", NAME => \"$att{NAME}\")'
");
join('',@m);
@@ -1977,9 +1977,16 @@ sub extliblist{
my($found_lib)=0;
foreach $thispth (@searchpath, @libpath){
+ # Try to find the full name of the library. We need this to
+ # determine whether it's a dynamically-loadable library or not.
+ # This tends to be subject to various os-specific quirks.
+ # For gcc-2.6.2 on linux (March 1995), DLD can not load
+ # .sa libraries, with the exception of libm.sa, so we
+ # deliberately skip them.
if (@fullname=<${thispth}/lib${thislib}.${so}.[0-9]*>){
$fullname=$fullname[-1]; #ATTN: 10 looses against 9!
- } elsif (-f ($fullname="$thispth/lib$thislib.$so")){
+ } elsif (-f ($fullname="$thispth/lib$thislib.$so")
+ && (($Config{'dlsrc'} ne "dl_dld") || ($thislib eq "m"))){
} elsif (-f ($fullname="$thispth/lib${thislib}_s.a")
&& ($thislib .= "_s") ){ # we must explicitly ask for _s version
} elsif (-f ($fullname="$thispth/lib$thislib.a")){
@@ -2258,6 +2265,10 @@ Fixed a bug that didn't allow lib/ directory work as documented.
Allowed C<make test TEST_VERBOSE=1>
+v4.086 March 9 1995 by Andy Dougherty
+
+Fixed some AIX buglets. Fixed DLD support for Linux with gcc 2.6.2.
+
=head1 NOTES
MakeMaker development work still to be done:
diff --git a/util.c b/util.c
index 2c2cba85dc..6c1d3dcfd7 100644
--- a/util.c
+++ b/util.c
@@ -1322,25 +1322,29 @@ char *s;
#endif
#ifndef HAS_DUP2
+int
dup2(oldfd,newfd)
int oldfd;
int newfd;
{
#if defined(HAS_FCNTL) && defined(F_DUPFD)
+ if (oldfd == newfd)
+ return oldfd;
close(newfd);
- fcntl(oldfd, F_DUPFD, newfd);
+ return fcntl(oldfd, F_DUPFD, newfd);
#else
int fdtmp[256];
I32 fdx = 0;
int fd;
if (oldfd == newfd)
- return 0;
+ return oldfd;
close(newfd);
- while ((fd = dup(oldfd)) != newfd) /* good enough for low fd's */
+ while ((fd = dup(oldfd)) != newfd && fd >= 0) /* good enough for low fd's */
fdtmp[fdx++] = fd;
while (fdx > 0)
close(fdtmp[--fdx]);
+ return fd;
#endif
}
#endif