From 6480774c430227688119cac3935f23b624608824 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN" Date: Sun, 15 Oct 2023 00:25:41 +0200 Subject: [PATCH] package/pkg-generic: drop support for arch-specific patches The last architecture-specific patch we had was removed 2015-02-14 with commit 9863553fe8fa (packages: all salute the passing of avr32), where we eventually got rid of the avr32-specific patch for fbv. Since then, we've only had common patches (that apply systematically), or conditional patches, that are applied in an ad-hoc manner with post-patch hooks. Currently, we even only have one such patch (for Linux). Since we do not advertise that possibility in the manual, and since we do not want to have such patches, drop the support for it. This has the potential for breaking existing br2-external trees, but there is a workaround for those: they can provide a pre-patch ook that copies the necessary per-arch patches if needed. We document this in the manual. Signed-off-by: Yann E. MORIN Signed-off-by: Arnout Vandecappelle --- docs/manual/migrating.adoc | 23 +++++++++++++++++++++++ package/pkg-generic.mk | 4 ++-- 2 files changed, 25 insertions(+), 2 deletions(-) diff --git a/docs/manual/migrating.adoc b/docs/manual/migrating.adoc index 2667aeab96..21277f947b 100644 --- a/docs/manual/migrating.adoc +++ b/docs/manual/migrating.adoc @@ -100,3 +100,26 @@ change implies that: to be updated appropriately; * the archive version suffix has been updated to +-br3+, so the hash files must be updated appropriately. + +Before Buildroot 2023.11, it was possible (but undocumented and unused) +to apply architecture-specific patches, by prefixing the patch filename +with the architecture, e.g. `0001-some-changes.patch.arm` and such a +patch would only be applied for that architecture. With Buildroot 2023.11, +this is no longer supported, and such patches are now longer applied at +all. + +If you still need per-architecture patches, then you may provide a +xref:hooks[pre-patch hook] that copies the patches applicable to the +configured architecture, e.g.: + +---- +define LIBFOO_ARCH_PATCHES + $(foreach p,$(wildcard $(LIBFOO_PKGDIR)/*.patch.$(ARCH)), \ + cp -f $(p) $(patsubst %.$(ARCH),%,$(p)) + ) +endef +LIBFOO_PRE_PATCH_HOOKS += LIBFOO_ARCH_PATCHES +---- + +Note that no package in Buildroot has architecture-specific patches, and +that such patches will most probably not be accepted. diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk index e140145ee3..289fa552b4 100644 --- a/package/pkg-generic.mk +++ b/package/pkg-generic.mk @@ -242,9 +242,9 @@ $(BUILD_DIR)/%/.stamp_patched: for D in $(PATCH_BASE_DIRS); do \ if test -d $${D}; then \ if test -d $${D}/$($(PKG)_VERSION); then \ - $(APPLY_PATCHES) $(@D) $${D}/$($(PKG)_VERSION) \*.patch \*.patch.$(ARCH) || exit 1; \ + $(APPLY_PATCHES) $(@D) $${D}/$($(PKG)_VERSION) \*.patch || exit 1; \ else \ - $(APPLY_PATCHES) $(@D) $${D} \*.patch \*.patch.$(ARCH) || exit 1; \ + $(APPLY_PATCHES) $(@D) $${D} \*.patch || exit 1; \ fi; \ fi; \ done; \