From 2b376a0f6bde3d9b4c66a60ab9857d5ca11e33f4 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Mon, 9 May 2016 15:10:31 -0700 Subject: [PATCH] grub: enable building as a cross-compiled package for arm64 This will drop the need to reconfigure/rebuild GRUB with the special `arm64` target in `setup_board`. The amd64 targets could receive the same treatment eventually but the xen dependency needs fixing first. After that the SDK's grub can be built with the special `none` target so it only builds user-space tools. --- ...es-0.0.1-r4.ebuild => board-packages-0.0.1-r5.ebuild} | 0 .../board-packages/board-packages-0.0.1.ebuild | 1 + .../coreos-overlay/profiles/coreos/amd64/make.defaults | 3 +++ .../coreos-overlay/profiles/coreos/base/make.defaults | 9 +-------- .../profiles/coreos/targets/sdk/make.defaults | 9 +++++++++ .../coreos-overlay/sys-boot/grub/grub-9999.ebuild | 4 ++-- 6 files changed, 16 insertions(+), 10 deletions(-) rename sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/{board-packages-0.0.1-r4.ebuild => board-packages-0.0.1-r5.ebuild} (100%) diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r4.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r5.ebuild similarity index 100% rename from sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r4.ebuild rename to sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1-r5.ebuild diff --git a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild index 87854a8063..0d77c28d23 100644 --- a/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/coreos-devel/board-packages/board-packages-0.0.1.ebuild @@ -25,6 +25,7 @@ RDEPEND=" dev-lang/python-oem ) arm64? ( + sys-boot/grub sys-firmware/edk2-armvirt ) coreos-base/coreos diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/make.defaults b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/make.defaults index 8793dcad02..fdf4402a09 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/make.defaults +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/amd64/make.defaults @@ -3,3 +3,6 @@ # is enabled in hardened, the default profiles do not enable it. BOOTSTRAP_USE="${BOOTSTRAP_USE} -pax_kernel -xtpax" USE="-pax_kernel -urandom -xtpax" + +# Enable our assorted Grub targets +GRUB_PLATFORMS="efi-64 pc xen" diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults index a403a58e57..c66eb2699a 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/base/make.defaults @@ -96,12 +96,5 @@ FEATURES="buildpkg clean-logs compressdebug parallel-install splitdebug # No need to restrict access to build directories in dev environments. PORTAGE_WORKDIR_MODE="0755" -# Enable our assorted Grub targets, don't whine about /boot -GRUB_PLATFORMS="efi-64 pc xen" +# Don't let GRUB whine about /boot DONT_MOUNT_BOOT=1 - -# Both x86_64 and i386 targets are required for grub testing -QEMU_SOFTMMU_TARGETS="x86_64 i386 aarch64" - -# For cross build support. -QEMU_USER_TARGETS="aarch64" diff --git a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults index 5d10f08a03..a9845fe9aa 100644 --- a/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults +++ b/sdk_container/src/third_party/coreos-overlay/profiles/coreos/targets/sdk/make.defaults @@ -3,3 +3,12 @@ USE="man -pam" # Used by some old goo in profiles/coreos/base/profile.bashrc # TODO: clean up that old goo CROS_SDK_HOST="cros-sdk-host" + +# Enable our assorted GRUB targets +GRUB_PLATFORMS="efi-64 pc xen" + +# Both x86_64 and i386 targets are required for grub testing +QEMU_SOFTMMU_TARGETS="x86_64 i386 aarch64" + +# For cross build support. +QEMU_USER_TARGETS="aarch64" diff --git a/sdk_container/src/third_party/coreos-overlay/sys-boot/grub/grub-9999.ebuild b/sdk_container/src/third_party/coreos-overlay/sys-boot/grub/grub-9999.ebuild index a832c066a7..d35314759c 100644 --- a/sdk_container/src/third_party/coreos-overlay/sys-boot/grub/grub-9999.ebuild +++ b/sdk_container/src/third_party/coreos-overlay/sys-boot/grub/grub-9999.ebuild @@ -10,10 +10,10 @@ GRUB_AUTOGEN=1 PYTHON_COMPAT=( python{2_6,2_7,3_2,3_3,3_4} ) if [[ "${PV}" == 9999 ]]; then - KEYWORDS="~amd64 ~x86" + KEYWORDS="~amd64 ~arm64 ~x86" else CROS_WORKON_COMMIT="68ae3c416ba8cd51a25244b7fd37ddd342fe75ba" - KEYWORDS="amd64 x86" + KEYWORDS="amd64 arm64 x86" fi inherit cros-workon autotools-utils bash-completion-r1 eutils flag-o-matic mount-boot multibuild pax-utils python-any-r1 toolchain-funcs versionator