From fd23ba47d6ac8702c4bb498c9cbc3f8c583bab8e Mon Sep 17 00:00:00 2001 From: Jitka Plesnikova Date: Tue, 16 May 2023 16:45:36 +0200 Subject: [PATCH] Upgrade to 0.280238 --- Changes | 14 +++++++++ LICENSE | 6 ++-- Makefile.PL | 4 +-- lib/ExtUtils/CBuilder.pm | 3 +- lib/ExtUtils/CBuilder/Base.pm | 19 ++++++++++-- lib/ExtUtils/CBuilder/Platform/Unix.pm | 3 +- lib/ExtUtils/CBuilder/Platform/VMS.pm | 2 +- lib/ExtUtils/CBuilder/Platform/Windows.pm | 31 ++++++++++++++++--- lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm | 2 +- lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm | 2 +- .../CBuilder/Platform/Windows/MSVC.pm | 2 +- lib/ExtUtils/CBuilder/Platform/aix.pm | 2 +- lib/ExtUtils/CBuilder/Platform/android.pm | 2 +- lib/ExtUtils/CBuilder/Platform/cygwin.pm | 2 +- lib/ExtUtils/CBuilder/Platform/darwin.pm | 19 +++++++++++- lib/ExtUtils/CBuilder/Platform/dec_osf.pm | 2 +- lib/ExtUtils/CBuilder/Platform/os2.pm | 2 +- 17 files changed, 90 insertions(+), 27 deletions(-) diff --git a/Changes b/Changes index 2ee209a..5c5c7ce 100644 --- a/Changes +++ b/Changes @@ -1,5 +1,19 @@ Revision history for Perl extension ExtUtils::CBuilder. +0.280238 + + Fix: + + - use -isyswithroot option for the CORE directory for the system perl on darwin. + The compiler would fail to find EXTERN.h with -I. + Came up while working on a fix for the similar issue in + https://github.com/Perl/perl5/issues/20362 + +0.280237 - 2022-05-09 + + - when not set to quiet, print commands being run in a usable form. + https://github.com/Perl/perl5/pull/19701 + 0.280236 - 2021-02-12 Fix: diff --git a/LICENSE b/LICENSE index 1102da8..1bffb03 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -This software is copyright (c) 2021 by Ken Williams. +This software is copyright (c) 2020 by Ken Williams. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. @@ -12,7 +12,7 @@ b) the "Artistic License" --- The GNU General Public License, Version 1, February 1989 --- -This software is Copyright (c) 2021 by Ken Williams. +This software is Copyright (c) 2020 by Ken Williams. This is free software, licensed under: @@ -272,7 +272,7 @@ That's all there is to it! --- The Artistic License 1.0 --- -This software is Copyright (c) 2021 by Ken Williams. +This software is Copyright (c) 2020 by Ken Williams. This is free software, licensed under: diff --git a/Makefile.PL b/Makefile.PL index 4177e21..5b7dd5d 100644 --- a/Makefile.PL +++ b/Makefile.PL @@ -1,4 +1,4 @@ -# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.017. +# This file was automatically generated by Dist::Zilla::Plugin::MakeMaker v6.015. use strict; use warnings; @@ -29,7 +29,7 @@ my %WriteMakefileArgs = ( "TEST_REQUIRES" => { "Test::More" => "0.47" }, - "VERSION" => "0.280236", + "VERSION" => "0.280235", "test" => { "TESTS" => "t/*.t" } diff --git a/lib/ExtUtils/CBuilder.pm b/lib/ExtUtils/CBuilder.pm index 8b4fc4c..705d30a 100644 --- a/lib/ExtUtils/CBuilder.pm +++ b/lib/ExtUtils/CBuilder.pm @@ -1,5 +1,4 @@ package ExtUtils::CBuilder; -our $VERSION = '0.280236'; # VERSION use File::Spec (); use File::Path (); @@ -8,7 +7,7 @@ use Perl::OSType qw/os_type/; use warnings; use strict; - +our $VERSION = '0.280238'; # VERSION our @ISA; # We only use this once - don't waste a symbol table entry on it. diff --git a/lib/ExtUtils/CBuilder/Base.pm b/lib/ExtUtils/CBuilder/Base.pm index e42226f..0494caf 100644 --- a/lib/ExtUtils/CBuilder/Base.pm +++ b/lib/ExtUtils/CBuilder/Base.pm @@ -9,8 +9,7 @@ use Text::ParseWords; use IPC::Cmd qw(can_run); use File::Temp qw(tempfile); -our $VERSION = '0.280236'; # VERSION - +our $VERSION = '0.280238'; # VERSION # More details about C/C++ compilers: # http://developers.sun.com/sunstudio/documentation/product/compiler.jsp @@ -336,10 +335,24 @@ sub _do_link { return wantarray ? ($out, @temp_files) : $out; } +sub quote_literal { + my ($self, $string) = @_; + + if (length $string && $string !~ /[^a-zA-Z0-9,._+@%\/-]/) { + return $string; + } + + $string =~ s{'}{'\\''}g; + + return "'$string'"; +} sub do_system { my ($self, @cmd) = @_; - print "@cmd\n" if !$self->{quiet}; + if (!$self->{quiet}) { + my $full = join ' ', map $self->quote_literal($_), @cmd; + print $full . "\n"; + } return !system(@cmd); } diff --git a/lib/ExtUtils/CBuilder/Platform/Unix.pm b/lib/ExtUtils/CBuilder/Platform/Unix.pm index 974903d..2eaf591 100644 --- a/lib/ExtUtils/CBuilder/Platform/Unix.pm +++ b/lib/ExtUtils/CBuilder/Platform/Unix.pm @@ -4,8 +4,7 @@ use warnings; use strict; use ExtUtils::CBuilder::Base; -our $VERSION = '0.280236'; # VERSION - +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Base); sub link_executable { diff --git a/lib/ExtUtils/CBuilder/Platform/VMS.pm b/lib/ExtUtils/CBuilder/Platform/VMS.pm index d9b1fbd..d09a608 100644 --- a/lib/ExtUtils/CBuilder/Platform/VMS.pm +++ b/lib/ExtUtils/CBuilder/Platform/VMS.pm @@ -4,7 +4,7 @@ use warnings; use strict; use ExtUtils::CBuilder::Base; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Base); use File::Spec::Functions qw(catfile catdir); diff --git a/lib/ExtUtils/CBuilder/Platform/Windows.pm b/lib/ExtUtils/CBuilder/Platform/Windows.pm index b81384f..2fffc83 100644 --- a/lib/ExtUtils/CBuilder/Platform/Windows.pm +++ b/lib/ExtUtils/CBuilder/Platform/Windows.pm @@ -8,7 +8,7 @@ use File::Spec; use ExtUtils::CBuilder::Base; use IO::File; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Base); =begin comment @@ -51,6 +51,22 @@ sub _compiler_type { : 'GCC'); } +# native quoting, not shell quoting +sub quote_literal { + my ($self, $string) = @_; + + # some of these characters don't need to be quoted for "native" quoting, but + # quote them anyway so they are more likely to make it through cmd.exe + if (length $string && $string !~ /[ \t\n\x0b"|<>%]/) { + return $string; + } + + $string =~ s{(\\*)(?="|\z)}{$1$1}g; + $string =~ s{"}{\\"}g; + + return qq{"$string"}; +} + sub split_like_shell { # Since Windows will pass the whole command string (not an argument # array) to the target program and make the program parse it itself, @@ -65,10 +81,15 @@ sub split_like_shell { sub do_system { # See above my $self = shift; - my $cmd = join(" ", - grep length, - map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a} - grep defined, @_); + my $cmd = join ' ', + grep length, + map {$a=$_;$a=~s/\t/ /g;$a=~s/^\s+|\s+$//;$a} + grep defined, @_; + + if (!$self->{quiet}) { + print $cmd . "\n"; + } + local $self->{quiet} = 1; return $self->SUPER::do_system($cmd); } diff --git a/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm b/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm index 657241a..6ab48ba 100644 --- a/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm +++ b/lib/ExtUtils/CBuilder/Platform/Windows/BCC.pm @@ -1,6 +1,6 @@ package ExtUtils::CBuilder::Platform::Windows::BCC; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION use strict; use warnings; diff --git a/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm b/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm index 52664c7..c3eb7a0 100644 --- a/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm +++ b/lib/ExtUtils/CBuilder/Platform/Windows/GCC.pm @@ -1,6 +1,6 @@ package ExtUtils::CBuilder::Platform::Windows::GCC; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION use warnings; use strict; diff --git a/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm b/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm index 6cbcc9b..ce5e99f 100644 --- a/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm +++ b/lib/ExtUtils/CBuilder/Platform/Windows/MSVC.pm @@ -1,6 +1,6 @@ package ExtUtils::CBuilder::Platform::Windows::MSVC; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION use warnings; use strict; diff --git a/lib/ExtUtils/CBuilder/Platform/aix.pm b/lib/ExtUtils/CBuilder/Platform/aix.pm index 2ef8b38..35de7fa 100644 --- a/lib/ExtUtils/CBuilder/Platform/aix.pm +++ b/lib/ExtUtils/CBuilder/Platform/aix.pm @@ -5,7 +5,7 @@ use strict; use ExtUtils::CBuilder::Platform::Unix; use File::Spec; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); sub need_prelink { 1 } diff --git a/lib/ExtUtils/CBuilder/Platform/android.pm b/lib/ExtUtils/CBuilder/Platform/android.pm index 8500ab9..44ad646 100644 --- a/lib/ExtUtils/CBuilder/Platform/android.pm +++ b/lib/ExtUtils/CBuilder/Platform/android.pm @@ -6,7 +6,7 @@ use File::Spec; use ExtUtils::CBuilder::Platform::Unix; use Config; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); # The Android linker will not recognize symbols from diff --git a/lib/ExtUtils/CBuilder/Platform/cygwin.pm b/lib/ExtUtils/CBuilder/Platform/cygwin.pm index 3c8beac..14d814c 100644 --- a/lib/ExtUtils/CBuilder/Platform/cygwin.pm +++ b/lib/ExtUtils/CBuilder/Platform/cygwin.pm @@ -5,7 +5,7 @@ use strict; use File::Spec; use ExtUtils::CBuilder::Platform::Unix; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); # TODO: If a specific exe_file name is requested, if the exe created diff --git a/lib/ExtUtils/CBuilder/Platform/darwin.pm b/lib/ExtUtils/CBuilder/Platform/darwin.pm index e050e32..7e8ae7a 100644 --- a/lib/ExtUtils/CBuilder/Platform/darwin.pm +++ b/lib/ExtUtils/CBuilder/Platform/darwin.pm @@ -3,10 +3,14 @@ package ExtUtils::CBuilder::Platform::darwin; use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; +use Config; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); +my ($osver) = split /\./, $Config{osvers}; +my $apple_cor = $^X eq "/usr/bin/perl" && $osver >= 18; + sub compile { my $self = shift; my $cf = $self->{config}; @@ -22,5 +26,18 @@ sub compile { $self->SUPER::compile(@_); } +sub arg_include_dirs { + my $self = shift; + + if ($apple_cor) { + my $perl_inc = $self->perl_inc; + return map { + $_ eq $perl_inc ? ("-iwithsysroot", $_ ) : "-I$_" + } @_; + } + else { + return $self->SUPER::arg_include_dirs(@_); + } +} 1; diff --git a/lib/ExtUtils/CBuilder/Platform/dec_osf.pm b/lib/ExtUtils/CBuilder/Platform/dec_osf.pm index 971cf93..6b97095 100644 --- a/lib/ExtUtils/CBuilder/Platform/dec_osf.pm +++ b/lib/ExtUtils/CBuilder/Platform/dec_osf.pm @@ -5,7 +5,7 @@ use strict; use ExtUtils::CBuilder::Platform::Unix; use File::Spec; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); sub link_executable { diff --git a/lib/ExtUtils/CBuilder/Platform/os2.pm b/lib/ExtUtils/CBuilder/Platform/os2.pm index 58d316b..a7d11dc 100644 --- a/lib/ExtUtils/CBuilder/Platform/os2.pm +++ b/lib/ExtUtils/CBuilder/Platform/os2.pm @@ -4,7 +4,7 @@ use warnings; use strict; use ExtUtils::CBuilder::Platform::Unix; -our $VERSION = '0.280236'; # VERSION +our $VERSION = '0.280238'; # VERSION our @ISA = qw(ExtUtils::CBuilder::Platform::Unix); sub need_prelink { 1 } -- 2.40.1