All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] grub: shuffle packaging for aarch64 builds
@ 2021-02-22 18:06 Ross Burton
  0 siblings, 0 replies; only message in thread
From: Ross Burton @ 2021-02-22 18:06 UTC (permalink / raw)
  To: openembedded-core

Even in grub-efi platforms we need to build grub for the the common
tools. On x86 this isn't a problem because grub builds legacy boot and
grub-efi builds EFI, but on aarch64 there is no legacy boot supported by
grub.

To ensure that the common tools are built the grub recipe also builds
EFI binaries, but this now means that grub and grub-efi ship the same
binaries.

oe-core 933286 fixed this conflict by deleting the binaries from
grub-efi and putting the aarch64 modules into grub-common (relying on
dependencies to pull grub-common in).  This seems backwards: grub-efi no
longer contains the binaries and they're in different packages on arm or
x86.  Also, SDK generation is broken as the grub package itself is now
empty as the binaries are in grub-common.

Resolve all of these issues by reversing the logic:  grub-efi is the
package which holds the EFI binaries on all platforms. grub only builds
for EFI on aarch64 as a way to build the common binaries, so delete them
in that recipe to avoid conflicts.  And finally as the grub recipe is
empty on aarch64 but needed by dependencies, set ALLOW_EMPTY.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 meta/recipes-bsp/grub/grub-efi_2.04.bb |  6 ------
 meta/recipes-bsp/grub/grub_2.04.bb     | 11 +++++++----
 2 files changed, 7 insertions(+), 10 deletions(-)

diff --git a/meta/recipes-bsp/grub/grub-efi_2.04.bb b/meta/recipes-bsp/grub/grub-efi_2.04.bb
index f80afd95cb..287845c507 100644
--- a/meta/recipes-bsp/grub/grub-efi_2.04.bb
+++ b/meta/recipes-bsp/grub/grub-efi_2.04.bb
@@ -70,10 +70,6 @@ do_install() {
     install -m 644 ${B}/${GRUB_IMAGE_PREFIX}${GRUB_IMAGE} ${D}${EFI_FILES_PATH}/${GRUB_IMAGE}
 }
 
-do_install_append_aarch64() {
-    rm -rf  ${D}/${prefix}/
-}
-
 GRUB_BUILDIN ?= "boot linux ext2 fat serial part_msdos part_gpt normal \
                  efi_gop iso9660 configfile search loadenv test"
 
@@ -88,8 +84,6 @@ FILES_${PN} = "${libdir}/grub/${GRUB_TARGET}-efi \
                ${EFI_FILES_PATH}/${GRUB_IMAGE} \
                "
 
-FILES_${PN}_remove_aarch64 = "${libdir}/grub/${GRUB_TARGET}-efi"
-
 # 64-bit binaries are expected for the bootloader with an x32 userland
 INSANE_SKIP_${PN}_append_linux-gnux32 = " arch"
 INSANE_SKIP_${PN}-dbg_append_linux-gnux32 = " arch"
diff --git a/meta/recipes-bsp/grub/grub_2.04.bb b/meta/recipes-bsp/grub/grub_2.04.bb
index f2942b9e37..d4e09faa40 100644
--- a/meta/recipes-bsp/grub/grub_2.04.bb
+++ b/meta/recipes-bsp/grub/grub_2.04.bb
@@ -16,12 +16,15 @@ FILES_${PN}-common = " \
     ${sbindir} \
     ${datadir}/grub \
 "
-
-FILES_${PN}-common_append_aarch64 = " \
-    ${libdir}/${BPN} \
-"
+ALLOW_EMPTY_${PN} = "1"
 
 do_install_append () {
+    # Avoid conflicts with the EFI package for systems such as arm64 where we
+    # need to build grub and grub-efi but only EFI is supported by removing EFI
+    # from this package.
+    rm -rf ${D}${libdir}/grub/*-efi/
+    rmdir --ignore-fail-on-non-empty ${D}${libdir}/grub ${D}${libdir}
+
     install -d ${D}${sysconfdir}/grub.d
     # Remove build host references...
     find "${D}" -name modinfo.sh -type f -exec \
-- 
2.25.1


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2021-02-22 18:06 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-22 18:06 [PATCH] grub: shuffle packaging for aarch64 builds Ross Burton

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.