summaryrefslogtreecommitdiff
path: root/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch
diff options
context:
space:
mode:
authorSam James <sam@gentoo.org>2025-10-03 21:41:27 +0100
committerSam James <sam@gentoo.org>2025-10-03 21:41:27 +0100
commite416f4710d6467c5e289a16a05e2751c34385b21 (patch)
treeb4e5e46483965113863a65616a7f351390887dea /dev-lang/perl/files/perl-5.42.0-cross-rebase.patch
parenta63f04a88fc162f4600f41493c7f53f9e5f06f74 (diff)
downloadgentoo-e416f4710d6467c5e289a16a05e2751c34385b21.tar.gz
gentoo-e416f4710d6467c5e289a16a05e2751c34385b21.tar.bz2
gentoo-e416f4710d6467c5e289a16a05e2751c34385b21.zip
dev-lang/perl: apply upstream PR for perl-cross vs 5.42.0
Closes: https://bugs.gentoo.org/959686 Signed-off-by: Sam James <sam@gentoo.org>
Diffstat (limited to 'dev-lang/perl/files/perl-5.42.0-cross-rebase.patch')
-rw-r--r--dev-lang/perl/files/perl-5.42.0-cross-rebase.patch189
1 files changed, 189 insertions, 0 deletions
diff --git a/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch b/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch
new file mode 100644
index 000000000000..f03d49818b84
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch
@@ -0,0 +1,189 @@
+https://github.com/arsv/perl-cross/pull/164
+
+From b47ef629459076a5ccb3d0caf83ccfbb8ba0571b Mon Sep 17 00:00:00 2001
+From: Marcus Ramberg <marcus@means.no>
+Date: Wed, 3 Sep 2025 10:35:58 +0200
+Subject: [PATCH] patches for perl-5.42.0
+
+---
+ cnf/diffs/perl5-5.42.0/constant.patch | 1 +
+ cnf/diffs/perl5-5.42.0/dynaloader.patch | 1 +
+ cnf/diffs/perl5-5.42.0/findext.patch | 1 +
+ cnf/diffs/perl5-5.42.0/installscripts.patch | 1 +
+ cnf/diffs/perl5-5.42.0/liblist.patch | 80 +++++++++++++++++++++
+ cnf/diffs/perl5-5.42.0/makemaker.patch | 1 +
+ cnf/diffs/perl5-5.42.0/posix-makefile.patch | 1 +
+ cnf/diffs/perl5-5.42.0/test-checkcase.patch | 1 +
+ cnf/diffs/perl5-5.42.0/test-makemaker.patch | 1 +
+ cnf/diffs/perl5-5.42.0/xconfig.patch | 1 +
+ 10 files changed, 89 insertions(+)
+ create mode 120000 cnf/diffs/perl5-5.42.0/constant.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/dynaloader.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/findext.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/installscripts.patch
+ create mode 100644 cnf/diffs/perl5-5.42.0/liblist.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/makemaker.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/posix-makefile.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/test-checkcase.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/test-makemaker.patch
+ create mode 120000 cnf/diffs/perl5-5.42.0/xconfig.patch
+
+diff --git a/cnf/diffs/perl5-5.42.0/constant.patch b/cnf/diffs/perl5-5.42.0/constant.patch
+new file mode 120000
+index 0000000..065e198
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/constant.patch
+@@ -0,0 +1 @@
++../perl5-5.22.3/constant.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/dynaloader.patch b/cnf/diffs/perl5-5.42.0/dynaloader.patch
+new file mode 120000
+index 0000000..ffb73eb
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/dynaloader.patch
+@@ -0,0 +1 @@
++../perl5-5.22.3/dynaloader.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/findext.patch b/cnf/diffs/perl5-5.42.0/findext.patch
+new file mode 120000
+index 0000000..9efbe5b
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/findext.patch
+@@ -0,0 +1 @@
++../perl5-5.22.3/findext.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/installscripts.patch b/cnf/diffs/perl5-5.42.0/installscripts.patch
+new file mode 120000
+index 0000000..1c05e0f
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/installscripts.patch
+@@ -0,0 +1 @@
++../perl5-5.36.0/installscripts.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/liblist.patch b/cnf/diffs/perl5-5.42.0/liblist.patch
+new file mode 100644
+index 0000000..5e6331f
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/liblist.patch
+@@ -0,0 +1,80 @@
++When deciding which libraries are available, the original Configure uses
++shaky heuristics to physically locate library files.
++This is a very very bad thing to do, *especially* when cross-compiling,
++as said heiristics are likely to locate the host libraries, not the target ones.
++
++The only real need for this test is to make sure it's safe to pass -llibrary
++to the compiler. So that's exactly what perl-cross does, pass -llibrary
++and see if it breaks things.
++
++Note this is a part of MakeMaker, and only applies to module Makefiles.
++
++
++--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
+++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm
++@@ -20,9 +20,10 @@
++ use File::Spec;
++
++ sub ext {
++- if ( $^O eq 'VMS' ) { goto &_vms_ext; }
++- elsif ( $^O eq 'MSWin32' ) { goto &_win32_ext; }
++- else { goto &_unix_os2_ext; }
+++ if ($Config{usemmldlt}){ goto &_ld_ext; }
+++ elsif($^O eq 'VMS') { goto &_vms_ext; }
+++ elsif($^O eq 'MSWin32') { goto &_win32_ext; }
+++ else { goto &_unix_os2_ext; }
++ }
++
++ sub _unix_os2_ext {
++@@ -661,4 +662,51 @@
++ wantarray ? ( $lib, '', $ldlib, '', ( $give_libs ? \@flibs : () ) ) : $lib;
++ }
++
+++# A direct test for -l validity.
+++# Because guessing real file names for -llib options when dealing
+++# with a cross compiler is generally a BAD IDEA^tm.
+++sub _ld_ext {
+++ my($self,$potential_libs, $verbose, $give_libs) = @_;
+++ $verbose ||= 0;
+++
+++ if ($^O =~ 'os2' and $Config{perllibs}) {
+++ # Dynamic libraries are not transitive, so we may need including
+++ # the libraries linked against perl.dll again.
+++
+++ $potential_libs .= " " if $potential_libs;
+++ $potential_libs .= $Config{perllibs};
+++ }
+++ return ("", "", "", "", ($give_libs ? [] : ())) unless $potential_libs;
+++ warn "Potential libraries are '$potential_libs':\n" if $verbose;
+++
+++ my($ld) = $Config{ld};
+++ my($ldflags) = $Config{ldflags};
+++ my($libs) = defined $Config{perllibs} ? $Config{perllibs} : $Config{libs};
+++
+++ my $try = 'try_mm.c';
+++ my $tryx = 'try_mm.x';
+++ open(TRY, '>', $try) || die "Can't create MakeMaker test file $try: $!\n";
+++ print TRY "int main(void) { return 0; }\n";
+++ close(TRY);
+++
+++ my $testlibs = '';
+++ my @testlibs = ();
+++ foreach my $thislib (split ' ', $potential_libs) {
+++ $testlibs = join(' ', @testlibs);
+++ if($thislib =~ /^-L/) {
+++ push(@testlibs, $thislib);
+++ next
+++ };
+++ my $cmd = "$ld $ldflags -o $tryx $try $testlibs $thislib >/dev/null 2>&1";
+++ my $ret = system($cmd);
+++ warn "Warning (mostly harmless): " . "No library found for $thislib\n" if $ret;
+++ next if $ret;
+++ push @testlibs, $thislib;
+++ }
+++ unlink($try);
+++ unlink($tryx);
+++
+++ return (join(' ', @testlibs), '', join(' ', @testlibs), '');
+++}
+++
++ 1;
+diff --git a/cnf/diffs/perl5-5.42.0/makemaker.patch b/cnf/diffs/perl5-5.42.0/makemaker.patch
+new file mode 120000
+index 0000000..d7bd609
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/makemaker.patch
+@@ -0,0 +1 @@
++../perl5-5.38.0/makemaker.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/posix-makefile.patch b/cnf/diffs/perl5-5.42.0/posix-makefile.patch
+new file mode 120000
+index 0000000..29463b7
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/posix-makefile.patch
+@@ -0,0 +1 @@
++../perl5-5.22.3/posix-makefile.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/test-checkcase.patch b/cnf/diffs/perl5-5.42.0/test-checkcase.patch
+new file mode 120000
+index 0000000..36c5186
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/test-checkcase.patch
+@@ -0,0 +1 @@
++../perl5-5.22.3/test-checkcase.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/test-makemaker.patch b/cnf/diffs/perl5-5.42.0/test-makemaker.patch
+new file mode 120000
+index 0000000..4e970ff
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/test-makemaker.patch
+@@ -0,0 +1 @@
++../perl5-5.34.0/test-makemaker.patch
+\ No newline at end of file
+diff --git a/cnf/diffs/perl5-5.42.0/xconfig.patch b/cnf/diffs/perl5-5.42.0/xconfig.patch
+new file mode 120000
+index 0000000..1c22c96
+--- /dev/null
++++ b/cnf/diffs/perl5-5.42.0/xconfig.patch
+@@ -0,0 +1 @@
++../perl5-5.41.3/xconfig.patch
+\ No newline at end of file
+