From 5738c7a254a10f98421c69729331f4bcca770c91 Mon Sep 17 00:00:00 2001 From: Julien Olivain Date: Mon, 31 Aug 2026 21:49:10 +0200 Subject: [PATCH] package/perl: apply perl-cross patch only on target perl MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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] https://gitlab.com/buildroot.org/buildroot/-/commit/d950fff290b1318fd72c7f09fedbd1b87b96155f Signed-off-by: Julien Olivain Signed-off-by: Peter Korsgaard (cherry picked from commit 8dea6e7c089cb5d4fa7bd788fc6e07c9f19f70a8) Signed-off-by: Raphaël Mélotte --- .../0001-configure-keep-_GNU_SOURCE-in-build-flags.patch | 0 package/perl/perl.mk | 9 +++++++++ 2 files changed, 9 insertions(+) rename package/perl/{ => perl-cross}/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch (100%) diff --git a/package/perl/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch b/package/perl/perl-cross/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch similarity index 100% rename from package/perl/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch rename to package/perl/perl-cross/0001-configure-keep-_GNU_SOURCE-in-build-flags.patch diff --git a/package/perl/perl.mk b/package/perl/perl.mk index 912445ccc8..43820cfcc3 100644 --- a/package/perl/perl.mk +++ b/package/perl/perl.mk @@ -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