Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-ExtUtils-MakeMaker for openSUSE:Factory checked in at 2022-01-05 13:39:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-ExtUtils-MakeMaker (Old) and /work/SRC/openSUSE:Factory/.perl-ExtUtils-MakeMaker.new.1896 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-ExtUtils-MakeMaker" Wed Jan 5 13:39:36 2022 rev:25 rq:943742 version:7.64 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-ExtUtils-MakeMaker/perl-ExtUtils-MakeMaker.changes 2021-04-22 18:03:26.670458345 +0200 +++ /work/SRC/openSUSE:Factory/.perl-ExtUtils-MakeMaker.new.1896/perl-ExtUtils-MakeMaker.changes 2022-01-05 13:39:59.773537073 +0100 @@ -1,0 +2,42 @@ +Sat Dec 18 03:06:20 UTC 2021 - Tina M??ller <timueller+p...@suse.de> + +- updated to 7.64 + see /usr/share/doc/packages/perl-ExtUtils-MakeMaker/Changes + + 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 + +------------------------------------------------------------------- Old: ---- ExtUtils-MakeMaker-7.62.tar.gz New: ---- ExtUtils-MakeMaker-7.64.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-ExtUtils-MakeMaker.spec ++++++ --- /var/tmp/diff_new_pack.A4ji8v/_old 2022-01-05 13:40:00.149537369 +0100 +++ /var/tmp/diff_new_pack.A4ji8v/_new 2022-01-05 13:40:00.153537372 +0100 @@ -18,7 +18,7 @@ %define cpan_name ExtUtils-MakeMaker Name: perl-ExtUtils-MakeMaker -Version: 7.62 +Version: 7.64 Release: 0 Summary: Create a module Makefile License: Artistic-1.0 OR GPL-1.0-or-later ++++++ ExtUtils-MakeMaker-7.62.tar.gz -> ExtUtils-MakeMaker-7.64.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/Changes new/ExtUtils-MakeMaker-7.64/Changes --- old/ExtUtils-MakeMaker-7.62/Changes 2021-04-13 19:59:11.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/Changes 2021-12-17 16:36:29.000000000 +0100 @@ -1,3 +1,62 @@ +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 + 7.62 Tue 13 Apr 18:58:24 BST 2021 No changes since v7.61_01 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/MANIFEST new/ExtUtils-MakeMaker-7.64/MANIFEST --- old/ExtUtils-MakeMaker-7.62/MANIFEST 2021-04-13 20:13:04.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/MANIFEST 2021-12-17 17:11:55.000000000 +0100 @@ -70,6 +70,7 @@ t/01perl_bugs.t t/02-xsdynamic.t t/03-xsstatic.t +t/04-xs-rpath-darwin.t t/arch_check.t t/backwards.t t/basic.t diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/META.json new/ExtUtils-MakeMaker-7.64/META.json --- old/ExtUtils-MakeMaker-7.62/META.json 2021-04-13 20:13:03.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/META.json 2021-12-17 17:11:55.000000000 +0100 @@ -4,7 +4,7 @@ "Michael G Schwern <schw...@pobox.com>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.143240", + "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.143240", "license" : [ "perl_5" ], @@ -61,5 +61,5 @@ }, "x_MailingList" : "makema...@perl.org" }, - "version" : "7.62" + "version" : "7.64" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/META.yml new/ExtUtils-MakeMaker-7.64/META.yml --- old/ExtUtils-MakeMaker-7.62/META.yml 2021-04-13 20:13:03.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/META.yml 2021-12-17 17:11:55.000000000 +0100 @@ -5,7 +5,7 @@ build_requires: {} configure_requires: {} dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.62, CPAN::Meta::Converter version 2.143240' +generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.143240' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -34,4 +34,4 @@ homepage: https://metacpan.org/release/ExtUtils-MakeMaker license: https://dev.perl.org/licenses/ repository: https://github.com/Perl-Toolchain-Gang/ExtUtils-MakeMaker -version: '7.62' +version: '7.64' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Command/MM.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Command/MM.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Command/MM.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Command/MM.pm 2021-12-17 10:32:03.000000000 +0100 @@ -10,7 +10,7 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Command.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Command.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Command.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Command.pm 2021-12-17 10:32:03.000000000 +0100 @@ -8,7 +8,7 @@ @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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Liblist/Kid.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Liblist/Kid.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Liblist/Kid.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Liblist/Kid.pm 2021-12-17 10:32:03.000000000 +0100 @@ -11,7 +11,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; @@ -58,6 +58,10 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Liblist.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Liblist.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Liblist.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Liblist.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use File::Spec; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM.pm 2021-12-17 10:32:03.000000000 +0100 @@ -4,7 +4,7 @@ use warnings; use ExtUtils::MakeMaker::Config; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::Liblist; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_AIX.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_AIX.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_AIX.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_AIX.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Any.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Any.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Any.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Any.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use Carp; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_BeOS.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_BeOS.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_BeOS.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_BeOS.pm 2021-12-17 10:32:03.000000000 +0100 @@ -27,7 +27,7 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Cygwin.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Cygwin.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Cygwin.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Cygwin.pm 2021-12-17 10:32:03.000000000 +0100 @@ -10,7 +10,7 @@ require ExtUtils::MM_Win32; our @ISA = qw( ExtUtils::MM_Unix ); -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_DOS.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_DOS.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_DOS.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_DOS.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Any; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Darwin.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Darwin.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Darwin.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Darwin.pm 2021-12-17 10:32:03.000000000 +0100 @@ -8,7 +8,7 @@ our @ISA = qw( ExtUtils::MM_Unix ); } -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_MacOS.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_MacOS.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_MacOS.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_MacOS.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; sub new { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_NW5.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_NW5.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_NW5.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_NW5.pm 2021-12-17 10:32:03.000000000 +0100 @@ -23,7 +23,7 @@ use ExtUtils::MakeMaker::Config; use File::Basename; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Win32; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_OS2.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_OS2.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_OS2.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_OS2.pm 2021-12-17 10:32:03.000000000 +0100 @@ -6,7 +6,7 @@ use ExtUtils::MakeMaker qw(neatvalue); use File::Spec; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Any; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_OS390.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_OS390.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_OS390.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_OS390.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use ExtUtils::MakeMaker::Config; @@ -61,8 +61,8 @@ $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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_QNX.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_QNX.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_QNX.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_QNX.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Unix; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_UWIN.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_UWIN.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_UWIN.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_UWIN.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Unix; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Unix.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Unix.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Unix.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Unix.pm 2021-12-17 10:32:03.000000000 +0100 @@ -15,7 +15,7 @@ # 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 @@ $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 @@ } $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 @@ 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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_VMS.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_VMS.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_VMS.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_VMS.pm 2021-12-17 10:32:03.000000000 +0100 @@ -16,7 +16,7 @@ use File::Basename; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Any; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_VOS.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_VOS.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_VOS.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_VOS.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Unix; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Win32.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Win32.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Win32.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Win32.pm 2021-12-17 10:32:03.000000000 +0100 @@ -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; $ENV{EMXSHELL} = 'sh'; # to run `commands` diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Win95.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Win95.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MM_Win95.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MM_Win95.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require ExtUtils::MM_Win32; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MY.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MY.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MY.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MY.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; require ExtUtils::MM; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; our @ISA = qw(ExtUtils::MM); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Config.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Config.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Config.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Config.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use Config (); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/FAQ.pod new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/FAQ.pod --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/FAQ.pod 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/FAQ.pod 2021-12-17 10:32:03.000000000 +0100 @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::FAQ; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; 1; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Locale.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Locale.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Locale.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Locale.pm 2021-12-17 10:32:03.000000000 +0100 @@ -2,7 +2,7 @@ use strict; use warnings; -our $VERSION = "7.62"; +our $VERSION = "7.64"; $VERSION =~ tr/_//d; use base 'Exporter'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Tutorial.pod new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Tutorial.pod --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/Tutorial.pod 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/Tutorial.pod 2021-12-17 10:32:03.000000000 +0100 @@ -1,6 +1,6 @@ package ExtUtils::MakeMaker::Tutorial; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version/regex.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version/regex.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version/regex.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version/regex.pm 2021-12-17 10:32:03.000000000 +0100 @@ -11,7 +11,7 @@ use vars qw($VERSION $CLASS $STRICT $LAX); -$VERSION = '7.62'; +$VERSION = '7.64'; $VERSION =~ tr/_//d; #--------------------------------------------------------------------------# diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version/vpp.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version/vpp.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version/vpp.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version/vpp.pm 2021-12-17 10:32:03.000000000 +0100 @@ -129,7 +129,7 @@ use Config; use vars qw($VERSION $CLASS @ISA $LAX $STRICT); -$VERSION = '7.62'; +$VERSION = '7.64'; $VERSION =~ tr/_//d; $CLASS = 'ExtUtils::MakeMaker::version::vpp'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker/version.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker/version.pm 2021-12-17 10:32:03.000000000 +0100 @@ -16,7 +16,7 @@ use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv); -$VERSION = '7.62'; +$VERSION = '7.64'; $VERSION =~ tr/_//d; $CLASS = 'version'; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/MakeMaker.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/MakeMaker.pm 2021-12-17 10:32:03.000000000 +0100 @@ -25,7 +25,7 @@ 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 @@ # 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 @@ 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 @@ # 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 @@ =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 @@ cc cccdlflags ccdlflags +cpprun dlext dlsrc ld @@ -2671,10 +2676,9 @@ =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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Mkbootstrap.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Mkbootstrap.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Mkbootstrap.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Mkbootstrap.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; require Exporter; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Mksymlists.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Mksymlists.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/Mksymlists.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/Mksymlists.pm 2021-12-17 10:32:03.000000000 +0100 @@ -11,7 +11,7 @@ our @ISA = qw(Exporter); our @EXPORT = qw(&Mksymlists); -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; sub Mksymlists { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/testlib.pm new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/testlib.pm --- old/ExtUtils-MakeMaker-7.62/lib/ExtUtils/testlib.pm 2021-04-13 19:58:17.000000000 +0200 +++ new/ExtUtils-MakeMaker-7.64/lib/ExtUtils/testlib.pm 2021-12-17 10:32:03.000000000 +0100 @@ -3,7 +3,7 @@ use strict; use warnings; -our $VERSION = '7.62'; +our $VERSION = '7.64'; $VERSION =~ tr/_//d; use Cwd; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/t/04-xs-rpath-darwin.t new/ExtUtils-MakeMaker-7.64/t/04-xs-rpath-darwin.t --- old/ExtUtils-MakeMaker-7.62/t/04-xs-rpath-darwin.t 1970-01-01 01:00:00.000000000 +0100 +++ new/ExtUtils-MakeMaker-7.64/t/04-xs-rpath-darwin.t 2021-11-03 02:23:21.000000000 +0100 @@ -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 -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/ExtUtils-MakeMaker-7.62/t/prereq.t new/ExtUtils-MakeMaker-7.64/t/prereq.t --- old/ExtUtils-MakeMaker-7.62/t/prereq.t 2020-12-23 17:30:57.000000000 +0100 +++ new/ExtUtils-MakeMaker-7.64/t/prereq.t 2021-12-14 16:59:47.000000000 +0100 @@ -133,10 +133,14 @@ "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 {