blob: 50d3cd59b40b346f62be56d5b219b300a6b4f969 [file] [log] [blame]
# Copyright 2018 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
EAPI=5
SRC_URI="https://github.com/rhboot/shim/releases/download/${PV}/shim-${PV}.tar.bz2"
KEYWORDS="*"
inherit eutils multilib toolchain-funcs
DESCRIPTION="Red Hat UEFI shim loader"
HOMEPAGE="https://github.com/rhboot/shim"
LICENSE="BSD-2"
SLOT="0"
IUSE=""
RDEPEND=""
DEPEND="dev-libs/openssl
sys-boot/gnu-efi"
S="${WORKDIR}/${P}"
shim_arch() {
case ${ARCH} in
amd64) echo "x86_64";;
arm64) echo "aarch64";;
*) eerror "unsupported architecture: ${ARCH}";;
esac
}
shim_binary() {
case ${ARCH} in
amd64) echo "shimx64.efi";;
arm64) echo "shimaa64.efi";;
*) eerror "unsupported architecture: ${ARCH}";;
esac
}
src_prepare() {
cros_use_gcc
epatch "${FILESDIR}"/${PN}-15-fix-aarch64-build.patch
epatch "${FILESDIR}"/${PN}-15-fix-vlogerror-arm64-crash.patch
default
}
src_compile() {
local arch_ldflags=""
tc-ld-is-gold && arch_ldflags="--no-experimental-use-relr"
emake ARCH="$(shim_arch)" \
CROSS_COMPILE="${CHOST}-" \
EFI_INCLUDE="${ROOT}/usr/include/efi" \
EFI_PATH="${ROOT}/usr/$(get_libdir)" \
ARCH_LDFLAGS="${arch_ldflags}" \
COMMITID="${GIT_COMMIT_ID}" \
DEFAULT_LOADER="\\\\\\\\grub-lakitu.efi" \
$(shim_binary)
}
src_install() {
insinto /boot/efi/boot
doins "$(shim_binary)"
}