package/perl: apply perl-cross patch only on target perl

Buildroot commit [1] (package/perl: fix build issue with musl)
introduced a patch that is meant to be applied on top of perl-cross,
which is extracted on top of perl only in the target variant.

Since the patch was introduced as a normal package patch, the Buildroot
infra is trying to always apply it, even for the host package variant.
Since perl-cross is not extracted for the host variant, some patched
files are missing. In that case, the host-perl is failing with error:

    >>> host-perl 5.42.3 Patching
    Applying 0001-configure-keep-_GNU_SOURCE-in-build-flags.patch using patch:
    can't find file to patch at input line 46

This commit fixes the issue by moving the package patch in a dedicated
"perl-cross" subdirectory, to make sure it will no longer be applied by
the infra. We apply the patch only for the target package variant using
a _POST_PATCH_HOOKS hook.

Fixes:
- [1]
- https://gitlab.com/buildroot.org/buildroot/-/jobs/16185948610 (TestPerlXMLLibXML)
- ...and few other tests requiring host-perl

[1] d950fff290

Signed-off-by: Julien Olivain <ju.o@free.fr>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
(cherry picked from commit 8dea6e7c08)
Signed-off-by: Raphaël Mélotte <raphael.melotte@mind.be>
This commit is contained in:
Julien Olivain
2026-08-31 21:49:10 +02:00
committed by Raphaël Mélotte
parent 82a3b54ce6
commit 5738c7a254
2 changed files with 9 additions and 0 deletions

View File

@@ -32,6 +32,15 @@ define PERL_CROSS_EXTRACT
endef
PERL_POST_EXTRACT_HOOKS += PERL_CROSS_EXTRACT
# We need to patch perl-cross, but perl-cross is extracted over the
# target perl sources only (and not the host variant). So we apply the
# patch only for the target case using a post patch hook.
define PERL_CROSS_PATCH
$(APPLY_PATCHES) $(@D) $(PERL_PKGDIR)/perl-cross \
0001-configure-keep-_GNU_SOURCE-in-build-flags.patch
endef
PERL_POST_PATCH_HOOKS += PERL_CROSS_PATCH
# Even though perl is not an autotools-package, it uses config.sub and
# config.guess. Up-to-date versions of these files may be needed to build perl
# on newer host architectures, so we borrow the hook which updates them from the