summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris 'BinGOs' Williams <chris@bingosnet.co.uk>2021-12-18 12:44:39 +0000
committerChris 'BinGOs' Williams <chris@bingosnet.co.uk>2021-12-18 12:44:39 +0000
commitd58d6b4be384ab0942be3856651b846220f90980 (patch)
tree56dbb2766eb64b28b6fae4893da1e1dbcf52901f
parenta3aaec921c9b50eb220092214145c88a5ccc7980 (diff)
downloadperl-d58d6b4be384ab0942be3856651b846220f90980.tar.gz
Update ExtUtils-MakeMaker to CPAN version 7.64
[DELTA] 7.64 Fri 17 Dec 15:35:46 GMT 2021 No changes since v7.63_11 7.63_11 Tue 14 Dec 16:00:11 GMT 2021 OS390 fixes: - Extend prereqs sort to work on EBCDIC 7.63_10 Mon 13 Dec 16:26:49 GMT 2021 OS390 fixes: - Fix dynamic loading 7.63_09 Wed 8 Dec 22:20:53 GMT 2021 Enhancements: - Don't use canned libpth values 7.63_08 Sat 27 Nov 17:28:03 GMT 2021 Correction: - Previous change to ${LDFLAGS) was reverted 7.63_07 Sat 27 Nov 11:34:12 GMT 2021 Enhancements: - Add $(LDFLAGS) when linking binary modules 7.63_06 Wed 3 Nov 01:24:05 GMT 2021 Bug fixes: - Add -rpath when compiling XS modules on macOS 7.63_05 Sat 14 Aug 09:04:08 BST 2021 Enhancements: - Added CPPRUN variable 7.63_04 Wed 30 Jun 15:15:01 BST 2021 Doc fixes: - Describe CCFLAGS’ default 7.63_03 Tue 22 Jun 14:39:32 BST 2021 OS390 Enhancements: - Fix override xs_make_dynamic_lib() for os390 7.63_02 Thu 3 Jun 19:52:03 BST 2021 Doc fixes: - Changed wording for POLLUTE 7.63_01 Tue 25 May 16:22:50 BST 2021 Bug fixes: - Comparing inodes numerically is unsafe
-rw-r--r--MANIFEST1
-rwxr-xr-xPorting/Maintainers.pl2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm6
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm6
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm22
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm22
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm2
-rw-r--r--cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t269
-rw-r--r--cpan/ExtUtils-MakeMaker/t/prereq.t12
37 files changed, 345 insertions, 53 deletions
diff --git a/MANIFEST b/MANIFEST
index 1e51b41f1e..056c818fb4 100644
--- a/MANIFEST
+++ b/MANIFEST
@@ -818,6 +818,7 @@ cpan/ExtUtils-MakeMaker/t/00compile.t See if MakeMaker modules compile
cpan/ExtUtils-MakeMaker/t/01perl_bugs.t
cpan/ExtUtils-MakeMaker/t/02-xsdynamic.t
cpan/ExtUtils-MakeMaker/t/03-xsstatic.t
+cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t
cpan/ExtUtils-MakeMaker/t/arch_check.t Test MakeMaker's arch_check()
cpan/ExtUtils-MakeMaker/t/backwards.t Check MakeMaker's backwards compatibility
cpan/ExtUtils-MakeMaker/t/basic.t See if MakeMaker can build a module
diff --git a/Porting/Maintainers.pl b/Porting/Maintainers.pl
index 27af38c15d..fd9b63793a 100755
--- a/Porting/Maintainers.pl
+++ b/Porting/Maintainers.pl
@@ -467,7 +467,7 @@ use File::Glob qw(:case);
},
'ExtUtils::MakeMaker' => {
- 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.62.tar.gz',
+ 'DISTRIBUTION' => 'BINGOS/ExtUtils-MakeMaker-7.64.tar.gz',
'FILES' => q[cpan/ExtUtils-MakeMaker],
'EXCLUDED' => [
qr{^t/lib/Test/},
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
index e36453608e..34b1dc15a5 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command.pm
@@ -8,7 +8,7 @@ use vars qw(@ISA @EXPORT @EXPORT_OK $VERSION);
@ISA = qw(Exporter);
@EXPORT = qw(cp rm_f rm_rf mv cat eqtime mkpath touch test_f test_d chmod
dos2unix);
-$VERSION = '7.62';
+$VERSION = '7.64';
$VERSION =~ tr/_//d;
my $Is_VMS = $^O eq 'VMS';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
index 62fd8682d3..348b67586e 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Command/MM.pm
@@ -10,7 +10,7 @@ our @ISA = qw(Exporter);
our @EXPORT = qw(test_harness pod2man perllocal_install uninstall
warn_if_old_packlist test_s cp_nonempty);
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
my $Is_VMS = $^O eq 'VMS';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
index 16c13d91cf..cf68149da7 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist.pm
@@ -3,7 +3,7 @@ package ExtUtils::Liblist;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use File::Spec;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
index 3a715fb082..01a4a48602 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
@@ -11,7 +11,7 @@ use 5.006;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
@@ -58,6 +58,10 @@ sub _unix_os2_ext {
my ( $fullname, @fullname );
my ( $pwd ) = cwd(); # from Cwd.pm
my ( $found ) = 0;
+ if ($Config{gccversion}) {
+ chomp(my @incpath = grep s/^ //, grep { /^#include </ .. /^End of search / } `$Config{cc} -E -v - </dev/null 2>&1 >/dev/null`);
+ unshift @libpath, map { s{/include[^/]*}{/lib}; $_ } @incpath
+ }
if ( $^O eq 'darwin' or $^O eq 'next' ) {
# 'escape' Mach-O ld -framework and -F flags, so they aren't dropped later on
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
index b7765f05b2..a9d8d26899 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM.pm
@@ -4,7 +4,7 @@ use strict;
use warnings;
use ExtUtils::MakeMaker::Config;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::Liblist;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
index 562ee34520..b25adf58b2 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_AIX.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_AIX;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
index 69a94920ee..826a4a556f 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Any.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_Any;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use Carp;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
index 2c12ad1be7..d00dea576a 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_BeOS.pm
@@ -27,7 +27,7 @@ require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
index 190db104bd..91d2094196 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Cygwin.pm
@@ -10,7 +10,7 @@ require ExtUtils::MM_Unix;
require ExtUtils::MM_Win32;
our @ISA = qw( ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
index 5a9eb22707..4e1b86a8ed 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_DOS.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_DOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
index 5db448b9be..4e971c36a9 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Darwin.pm
@@ -8,7 +8,7 @@ BEGIN {
our @ISA = qw( ExtUtils::MM_Unix );
}
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
index 60c149157e..f914555bb0 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_MacOS.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_MacOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
sub new {
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
index c345fcb4d9..052083d29b 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_NW5.pm
@@ -23,7 +23,7 @@ use warnings;
use ExtUtils::MakeMaker::Config;
use File::Basename;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Win32;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
index 788eb6ec01..95583e264b 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS2.pm
@@ -6,7 +6,7 @@ use warnings;
use ExtUtils::MakeMaker qw(neatvalue);
use File::Spec;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
index 172d27c85f..444b89a0e8 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_OS390.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_OS390;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use ExtUtils::MakeMaker::Config;
@@ -61,8 +61,8 @@ sub xs_make_dynamic_lib {
$ld_run_path_shell = 'LD_RUN_PATH="$(LD_RUN_PATH)" ';
}
- push @m, sprintf <<'MAKE', $ld_run_path_shell, $dlsyms_arg, $self->xs_obj_opt('$@'), $ldfrom, $libs, $exportlist;
- %s$(LD) $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) %s \
+ push @m, sprintf <<'MAKE', $ld_run_path_shell, $self->xs_obj_opt('$@'), $dlsyms_arg, $ldfrom, $libs, $exportlist;
+ %s$(LD) %s $(LDDLFLAGS) %s $(OTHERLDFLAGS) %s $(MYEXTLIB) \
$(PERL_ARCHIVE) %s $(PERL_ARCHIVE_AFTER) %s \
$(INST_DYNAMIC_FIX)
$(CHMOD) $(PERM_RWX) $@
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
index 475711278c..071a2d5aca 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_QNX.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_QNX;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
index 4eabbcabd4..7bb41d0f37 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_UWIN.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_UWIN;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
index 977b50ed02..504e751630 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Unix.pm
@@ -15,7 +15,7 @@ use ExtUtils::MakeMaker qw($Verbose neatvalue _sprintf562);
# If we make $VERSION an our variable parse_version() breaks
use vars qw($VERSION);
-$VERSION = '7.62';
+$VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
@@ -141,9 +141,9 @@ sub c_o {
$flags =~ s/"-I(\$\(PERL_INC\))"/-iwithsysroot "$1"/;
}
- if (my $cpp = $Config{cpprun}) {
+ if (my $cpp = $self->{CPPRUN}) {
my $cpp_cmd = $self->const_cccmd;
- $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/$cpp/;
+ $cpp_cmd =~ s/^CCCMD\s*=\s*\$\(CC\)/\$(CPPRUN)/;
push @m, qq{
.c.i:
$cpp_cmd $flags \$*.c > \$*.i
@@ -1048,9 +1048,19 @@ sub xs_make_dynamic_lib {
}
$ldfrom = "-all $ldfrom -none" if $Is{OSF};
+ my $ldrun = '';
# The IRIX linker doesn't use LD_RUN_PATH
- my $ldrun = $Is{IRIX} && $self->{LD_RUN_PATH} ?
- qq{-rpath "$self->{LD_RUN_PATH}"} : '';
+ if ( $self->{LD_RUN_PATH} ) {
+ if ( $Is{IRIX} ) {
+ $ldrun = qq{-rpath "$self->{LD_RUN_PATH}"};
+ }
+ elsif ( $^O eq 'darwin' ) {
+ # both clang and gcc support -Wl,-rpath, but only clang supports
+ # -rpath so by using -Wl,-rpath we avoid having to check for the
+ # type of compiler
+ $ldrun = qq{-Wl,-rpath,"$self->{LD_RUN_PATH}"};
+ }
+ }
# For example in AIX the shared objects/libraries from previous builds
# linger quite a while in the shared dynalinker cache even when nobody
@@ -1315,7 +1325,7 @@ sub _fixin_replace_shebang {
if ($self->maybe_command($origcmd) && grep { $_ eq $origdir } @absdirs) {
my ($odev, $oino) = stat $origcmd;
my ($idev, $iino) = stat $interpreter;
- if ($odev == $idev && $oino == $iino) {
+ if ($odev == $idev && $oino eq $iino) {
warn "$origcmd is the same as $interpreter, leaving alone"
if $Verbose;
$interpreter = $origcmd;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
index 414ee4b20c..8564bc7362 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VMS.pm
@@ -16,7 +16,7 @@ BEGIN {
use File::Basename;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Any;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
index 72f472cca2..341750e365 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_VOS.pm
@@ -2,7 +2,7 @@ package ExtUtils::MM_VOS;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Unix;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
index ab2e0b9b68..f6a1bc9763 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win32.pm
@@ -27,7 +27,7 @@ use ExtUtils::MakeMaker qw(neatvalue _sprintf562);
require ExtUtils::MM_Any;
require ExtUtils::MM_Unix;
our @ISA = qw( ExtUtils::MM_Any ExtUtils::MM_Unix );
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
$ENV{EMXSHELL} = 'sh'; # to run `commands`
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
index e415beb2ae..f7bc5f7506 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MM_Win95.pm
@@ -3,7 +3,7 @@ package ExtUtils::MM_Win95;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require ExtUtils::MM_Win32;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
index 6640c33157..5c4cf770d2 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MY.pm
@@ -3,7 +3,7 @@ package ExtUtils::MY;
use strict;
require ExtUtils::MM;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
our @ISA = qw(ExtUtils::MM);
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
index b9b38368e0..8ee3ca8e2c 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker.pm
@@ -25,7 +25,7 @@ my %Recognized_Att_Keys;
our %macro_fsentity; # whether a macro is a filesystem name
our %macro_dep; # whether a macro is a dependency
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
# Emulate something resembling CVS $Revision$
@@ -393,7 +393,7 @@ sub full_setup {
# we will use all these variables in the Makefile
@Get_from_Config =
qw(
- ar cc cccdlflags ccdlflags dlext dlsrc exe_ext full_ar ld
+ ar cc cccdlflags ccdlflags cpprun dlext dlsrc exe_ext full_ar ld
lddlflags ldflags libc lib_ext obj_ext osname osvers ranlib
sitelibexp sitearchexp so
);
@@ -634,7 +634,7 @@ END
if (%unsatisfied && $self->{PREREQ_FATAL}){
my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
- sort { $a cmp $b } keys %unsatisfied;
+ sort { lc $a cmp lc $b } keys %unsatisfied;
die <<"END";
MakeMaker FATAL: prerequisites not found.
$failedprereqs
@@ -720,7 +720,7 @@ END
# RT#91540 PREREQ_FATAL not recognized on command line
if (%unsatisfied && $self->{PREREQ_FATAL}){
my $failedprereqs = join "\n", map {" $_ $unsatisfied{$_}"}
- sort { $a cmp $b } keys %unsatisfied;
+ sort { lc $a cmp lc $b } keys %unsatisfied;
die <<"END";
MakeMaker FATAL: prerequisites not found.
$failedprereqs
@@ -1836,7 +1836,11 @@ currently used by MakeMaker but may be handy in Makefile.PLs.
=item CCFLAGS
String that will be included in the compiler call command line between
-the arguments INC and OPTIMIZE.
+the arguments INC and OPTIMIZE. Note that setting this will overwrite its
+default value (C<$Config::Config{ccflags}>); to preserve that, include
+the default value directly, e.g.:
+
+ CCFLAGS => "$Config::Config{ccflags} ..."
=item CONFIG
@@ -1846,6 +1850,7 @@ ar
cc
cccdlflags
ccdlflags
+cpprun
dlext
dlsrc
ld
@@ -2671,10 +2676,9 @@ instead. See above, or the L<ExtUtils::MakeMaker::FAQ> entry.
=item POLLUTE
-Release 5.005 grandfathered old global symbol names by providing preprocessor
-macros for extension source compatibility. As of release 5.6, these
-preprocessor definitions are not available by default. The POLLUTE flag
-specifies that the old names should still be defined:
+Prior to 5.6 various interpreter variables were available without a C<PL_>
+prefix, eg. C<PL_undef> was available as C<undef>. As of release 5.6, these
+are only defined if the POLLUTE flag is enabled:
perl Makefile.PL POLLUTE=1
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
index 323b1575f7..7b2498b6e8 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Config.pm
@@ -3,7 +3,7 @@ package ExtUtils::MakeMaker::Config;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use Config ();
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
index 4b0b237500..1184841ecb 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/FAQ.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::FAQ;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
1;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
index a842bb40d6..e4625e3330 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Locale.pm
@@ -2,7 +2,7 @@ package ExtUtils::MakeMaker::Locale;
use strict;
use warnings;
-our $VERSION = "7.62";
+our $VERSION = "7.64";
$VERSION =~ tr/_//d;
use base 'Exporter';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
index eafccc9d10..e4768745ac 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/Tutorial.pod
@@ -1,6 +1,6 @@
package ExtUtils::MakeMaker::Tutorial;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
index 0208a1f932..726ac76be1 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version.pm
@@ -16,7 +16,7 @@ use warnings;
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
-$VERSION = '7.62';
+$VERSION = '7.64';
$VERSION =~ tr/_//d;
$CLASS = 'version';
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
index 147cb88ff9..2f02cc93b6 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/MakeMaker/version/regex.pm
@@ -11,7 +11,7 @@ use warnings;
use vars qw($VERSION $CLASS $STRICT $LAX);
-$VERSION = '7.62';
+$VERSION = '7.64';
$VERSION =~ tr/_//d;
#--------------------------------------------------------------------------#
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
index 1f14ee9e76..51b1add163 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mkbootstrap.pm
@@ -3,7 +3,7 @@ package ExtUtils::Mkbootstrap;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
require Exporter;
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
index 2a7c455e8e..4498c39bf4 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Mksymlists.pm
@@ -11,7 +11,7 @@ use Config;
our @ISA = qw(Exporter);
our @EXPORT = qw(&Mksymlists);
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
sub Mksymlists {
diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
index 5826a12736..de24aa3fd0 100644
--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
+++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/testlib.pm
@@ -3,7 +3,7 @@ package ExtUtils::testlib;
use strict;
use warnings;
-our $VERSION = '7.62';
+our $VERSION = '7.64';
$VERSION =~ tr/_//d;
use Cwd;
diff --git a/cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t b/cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t
new file mode 100644
index 0000000000..1848883875
--- /dev/null
+++ b/cpan/ExtUtils-MakeMaker/t/04-xs-rpath-darwin.t
@@ -0,0 +1,269 @@
+#!/usr/bin/perl -w
+
+# This test file tests a special case for the generation of XS modules on OS darwin.
+# More specifically, it tests if we are able to compile an XS module which refers
+# to another shared library in a non-standard location such that we can
+# load the XS module from a perl script without having to set the
+# DYLD_LIBRARY_PATH environment variable. See PR #403 and issue #402.
+#
+package Main;
+use strict;
+use warnings;
+use Config;
+BEGIN {
+ chdir 't' or die "chdir(t): $!\n";
+ unshift @INC, 'lib/';
+ use Test::More;
+ if( $^O ne "darwin" ) {
+ plan skip_all => 'Not darwin platform';
+ }
+ else {
+ plan skip_all => 'Dynaloading not enabled'
+ if !$Config{usedl} or $Config{usedl} ne 'define';
+ plan tests => 1;
+ }
+}
+use Cwd;
+use ExtUtils::MakeMaker;
+use File::Temp qw[tempdir];
+use File::Path; # exports: mkpath and rmtree
+use File::Spec;
+
+{
+ $| = 1;
+ # We need this when re-running "perl Makefile.PL"
+ my $ext_utils_lib_dir = File::Spec->rel2abs('../lib');
+ # This tmpdir will be removed when the program exits
+ my $tmpdir = tempdir( DIR => '.', CLEANUP => 1 );
+ my $cwd = getcwd;
+ # File::Temp will not clean up the temp directory if the current directory
+ # is a sub directory of the temp dir. This can happen in the case of an
+ # error (a call to die). which disrupts the normal program flow that would
+ # have restored the cwd before exit. To solve this issue
+ # we add the below END block (which will be called before the File::Temp
+ # cleanup END block call since END blocks are called in LIFO order)
+ END { chdir $cwd }
+ _chdir($tmpdir);
+ my $self = Main->new(
+ mylib_dir => "mylib",
+ mylib_c_fn => "mylib.c",
+ mylib_h_fn => "mylib.h",
+ mylib_lib_name => "mylib",
+ module_name => "My::Module",
+ test_script_name => 'p.pl',
+ ext_utils_lib_dir => $ext_utils_lib_dir,
+ );
+ $self->compile_library();
+ $self->write_makefile_pl();
+ $self->write_module_file();
+ $self->write_xs_file();
+ $self->run_make();
+ $self->write_test_script();
+ $self->run_test_script();
+ _chdir($cwd);
+}
+
+sub _chdir { chdir $_[0] or die "Cannot change directory to $_[0] : $!" }
+
+sub _mkpath { mkpath($_[0]) or die "Could not create directory $_[0] : $!" };
+
+sub run_test_script {
+ my ($self) = @_;
+
+ my @cmd = ($^X, '-Mblib', $self->{test_script_name});
+ my $out = _capture_stdout(\@cmd);
+ like( $out, qr{\Qcalling foo()\E\s+\QHello from foo()\E});
+}
+
+sub write_xs_file {
+ my ($self) = @_;
+
+ my $str = <<'END';
+#include "EXTERN.h"
+#include "perl.h"
+#include "XSUB.h"
+#include "mylib.h"
+
+MODULE = <<module_name_colon>> PACKAGE = <<module_name_colon>>
+PROTOTYPES: DISABLE
+
+void
+mylib_func()
+ CODE:
+ printf("calling foo()\n");
+ foo();
+END
+ $str =~ s/\Q<<module_name_colon>>\E/$self->{module_name}/g;
+ my @module_name = split /::/, $self->{module_name};
+ my $xs_name = pop @module_name;
+ $xs_name .= '.xs';
+ _write_file( $xs_name, $str );
+}
+
+sub write_test_script {
+ my ($self) = @_;
+
+ my $str = <<'END';
+use strict;
+use warnings;
+use ExtUtils::testlib;
+use <<module_name_colon>>;
+
+<<module_name_colon>>::mylib_func();
+END
+ $str =~ s/\Q<<module_name_colon>>\E/$self->{module_name}/g;
+ _write_file( $self->{test_script_name}, $str );
+}
+
+sub run_make {
+ my ($self) = @_;
+
+ my @cmd = ($^X, '-I'. $self->{ext_utils_lib_dir}, 'Makefile.PL');
+ _run_system_cmd(\@cmd);
+ _run_system_cmd(['make']);
+}
+
+sub write_module_file {
+ my ( $self ) = @_;
+
+ my @dirs = split /::/, $self->{module_name};
+ my $basename = pop @dirs;
+ my $dir = File::Spec->catfile('lib', @dirs);
+ _mkpath( $dir );
+ my $fn = File::Spec->catfile($dir, $basename . '.pm');
+ my $str = <<'END';
+package <<module_name_colon>>;
+require Exporter;
+require DynaLoader;
+$VERSION = 1.01;
+@ISA = qw(Exporter DynaLoader);
+@EXPORT = qw();
+bootstrap <<module_name_colon>> $VERSION;
+1;
+
+=head1 NAME
+
+<<module_name_colon>> - Short description of <<module_name_colon>>
+END
+ $str =~ s/\Q<<module_name_colon>>\E/$self->{module_name}/g;
+ _write_file( $fn, $str );
+}
+
+sub write_makefile_pl {
+ my ( $self ) = @_;
+
+ my $str = <<'END';
+use strict;
+use warnings;
+use ExtUtils::MakeMaker;
+
+WriteMakefile(
+ NAME => '<<module_name_colon>>',
+ VERSION_FROM => 'lib/<<module_name_slash>>.pm',
+ ABSTRACT_FROM => 'lib/<<module_name_slash>>.pm',
+ PERL => "$^X -w",
+ LIBS => ['-L./<<lib_dir>> -l<<lib_name>>'],
+ INC => '-I. -I./<<lib_dir>>',
+);
+END
+ my $mod_name1 = $self->{module_name};
+ my $mod_name2 = $self->{module_name};
+ $mod_name2 =~ s{::}{/}g;
+ $str =~ s/\Q<<module_name_colon>>\E/$mod_name1/g;
+ $str =~ s/\Q<<module_name_slash>>\E/$mod_name2/g;
+ $str =~ s/\Q<<lib_dir>>\E/$self->{mylib_dir}/g;
+ $str =~ s/\Q<<lib_name>>\E/$self->{mylib_lib_name}/g;
+ _write_file('Makefile.PL', $str);
+}
+
+sub compile_library {
+ my ($self) = @_;
+
+ _mkpath( $self->{mylib_dir} );
+ my $cwd = getcwd;
+ _chdir( $self->{mylib_dir} );
+ $self->write_mylib_h();
+ $self->write_mylib_c();
+ $self->compile_mylib();
+ _chdir( $cwd );
+}
+
+sub compile_mylib {
+ my ($self) = @_;
+
+ my $cc = $Config{cc};
+ my $libext = $Config{so};
+
+ my $libname = 'lib' . $self->{mylib_lib_name} . '.' . $libext;
+ my @cmd = ($cc, '-I.', '-dynamiclib', '-install_name',
+ '@rpath/' . $libname,
+ 'mylib.c', '-o', $libname);
+ _run_system_cmd(\@cmd);
+}
+
+sub _capture_stdout {
+ my ($cmd) = @_;
+
+ my $out = `@$cmd`;
+ _check_sys_cmd_error( $cmd, $? ) if $? != 0;
+ return $out;
+}
+
+sub _stringify_cmd { '"' . (join " ", @{$_[0]}) . '"' }
+
+sub _check_sys_cmd_error {
+ my ( $cmd, $error ) = @_;
+ my $cmd_str = _stringify_cmd($cmd);
+ if ( $error == -1 ) {
+ # A return value of -1 from system() indicates a failure to start the program
+ die "Could not run $cmd_str: $!";
+ }
+ elsif ($error & 127) {
+ die sprintf "Command $cmd_str : killed by signal %d, %s coredump\n",
+ ($error & 127), ($error & 128) ? 'with' : 'without';
+ }
+ elsif ($error != 0) {
+ die sprintf "$cmd_str exited with error code %d\n", $error >> 8;
+ }
+}
+
+sub _run_system_cmd {
+ my ($cmd) = @_;
+
+ my $res = system @$cmd;
+ _check_sys_cmd_error( $cmd, $res ) if $res != 0;
+
+}
+
+sub write_mylib_c {
+ my ($self) = @_;
+ my $str = <<'END';
+#include <stdio.h>
+#include <stdlib.h>
+#include "mylib.h"
+
+void foo() {
+ printf( "Hello from foo()\n");
+}
+END
+ _write_file($self->{mylib_c_fn}, $str);
+}
+
+sub write_mylib_h {
+ my ($self) = @_;
+ my $str = 'void foo();';
+ _write_file($self->{mylib_h_fn}, $str);
+}
+
+sub _write_file {
+ my ($file, $text) = @_;
+ my $utf8 = ("$]" < 5.008 or !$Config{useperlio}) ? "" : ":utf8";
+ open(FILE, ">$utf8", $file) || die "Can't create $file: $!";
+ print FILE $text;
+ close FILE;
+}
+
+sub new {
+ my ($class, %args) = @_;
+ return bless \%args, $class;
+}
diff --git a/cpan/ExtUtils-MakeMaker/t/prereq.t b/cpan/ExtUtils-MakeMaker/t/prereq.t
index c51cf1df85..9f81a9802c 100644
--- a/cpan/ExtUtils-MakeMaker/t/prereq.t
+++ b/cpan/ExtUtils-MakeMaker/t/prereq.t
@@ -133,10 +133,14 @@ ok( chdir 'Big-Dummy', "chdir'd to Big-Dummy" ) ||
"strict" => 99999,
}
);
- is $warnings,
- "Warning: prerequisite I::Do::Not::Exist 0 not found.\n".
- sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
- $strict::VERSION), '2 bad prereq warnings';
+
+ my $strict_warn
+ = sprintf("Warning: prerequisite strict 99999 not found. We have %s.\n",
+ $strict::VERSION);
+ # Done this way because EBCDIC sorts in a different order
+ ok( $warnings =~ s/Warning: prerequisite I::Do::Not::Exist 0 not found\.\n//
+ && $warnings =~ s/\Q$strict_warn//
+ && $warnings eq "", '2 bad prereq warnings');
$warnings = '';
eval {