diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch new file mode 100644 index 0000000000..7b0b0184a6 --- /dev/null +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/files/perl-5.42.0-cross-rebase.patch @@ -0,0 +1,191 @@ +https://github.com/arsv/perl-cross/pull/165 + +From add39339ed09334e6809b48b3f8474c01a7ea1a1 Mon Sep 17 00:00:00 2001 +From: Pavlo Kleymonov +Date: Fri, 5 Sep 2025 17:03:23 +0200 +Subject: [PATCH] patches for perl-5.42.0 + +--- + cnf/configure_func.sh | 1 + + 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 | 70 +++++++++++++++++++++ + 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 + + 11 files changed, 80 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/configure_func.sh b/cnf/configure_func.sh +index 4c13e4c..20f9cdf 100644 +--- a/cnf/configure_func.sh ++++ b/cnf/configure_func.sh +@@ -82,6 +82,7 @@ checkfunc d_fchmod 'fchmod' "0,0" 'unistd.h sys/stat.h' + checkfunc d_fchmodat 'fchmodat' "0,NULL,0,0" 'unistd.h sys/stat.h' + checkfunc d_fchown 'fchown' "0,0,0" 'unistd.h' + checkfunc d_fcntl 'fcntl' "0,0" 'unistd.h fcntl.h' ++checkfunc d_fdopendir 'fdopendir' "0" 'dirent.h sys/types.h' + checkfunc d_fdclose 'fdclose' "NULL,NULL" 'stdio.h' + checkfunc d_ffs 'ffs' "0" 'strings.h' + checkfunc d_ffsl 'ffsl' "0" 'strings.h' +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..1dae0bb +--- /dev/null ++++ b/cnf/diffs/perl5-5.42.0/liblist.patch +@@ -0,0 +1,70 @@ ++diff --git a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm ++index fbdc79aea2..976fd268aa 100644 ++--- a/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm +++++ b/cpan/ExtUtils-MakeMaker/lib/ExtUtils/Liblist/Kid.pm ++@@ -20,9 +20,10 @@ use File::Basename; ++ 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 _space_dirs_split { ++@@ -643,4 +644,51 @@ sub _vms_ext { ++ 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 diff --git a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild index 10f0171d4e..e927faba92 100644 --- a/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild +++ b/sdk_container/src/third_party/portage-stable/dev-lang/perl/perl-5.42.0.ebuild @@ -276,6 +276,8 @@ src_prepare_perlcross() { # bug 794463, needs further analysis what is exactly wrong here eapply "${FILESDIR}/perl-5.34.0-crossfit.patch" + # bug 959686, rebase via upstream PR (no 5.42.0 release) + eapply "${FILESDIR}/perl-5.42.0-cross-rebase.patch" # bug 604072 MAKEOPTS+=" -j1"