Merge pull request #217929 from samueldr/update/vboot_reference-R111

vboot_reference: 20180311 -> 111.15329
This commit is contained in:
Nick Cao 2023-02-25 10:14:01 +08:00 committed by GitHub
commit c242ed6eb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 19 additions and 46 deletions

View file

@ -1,38 +1,34 @@
{ lib, stdenv, fetchFromGitiles, pkg-config, libuuid, openssl, libyaml, xz }:
stdenv.mkDerivation rec {
version = "20180311";
checkout = "4c84e077858c809ee80a9a6f9b38185cf7dcded7";
version = "111.15329";
pname = "vboot_reference";
src = fetchFromGitiles {
url = "https://chromium.googlesource.com/chromiumos/platform/vboot_reference";
rev = checkout;
sha256 = "1zja4ma6flch08h5j2l1hqnxmw2xwylidnddxxd5y2x05dai9ddj";
rev = "1a1cb5c9a38030a5868e2aaad295c68432c680fd"; # refs/heads/release-R111-15329.B
sha256 = "sha256-56/hqqFiKHw0/ah0D20U1ueIU2iq8I4Wn5DiEWxB9qA=";
};
nativeBuildInputs = [ pkg-config ];
buildInputs = [ openssl libuuid libyaml xz ];
buildInputs = [ libuuid libyaml openssl xz ];
enableParallelBuilding = true;
patches = [ ./dont_static_link.patch ];
env.NIX_CFLAGS_COMPILE = toString [
# fix build with gcc9
"-Wno-error"
# workaround build failure on -fno-common toolchains:
# ld: /build/source/build/futility/vb2_helper.o:(.bss+0x0): multiple definition of
# `vboot_version'; /build/source/build/futility/futility.o:(.bss+0x0): first defined here
# TODO: remove it when next release contains:
# https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/df4d2000a22db673a788b8e57e8e7c0cc3cee777
"-fcommon"
# This apparently doesn't work as expected:
# - https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/refs/heads/release-R111-15329.B/Makefile#439
# Let's apply the same flag manually.
"-Wno-error=deprecated-declarations"
];
postPatch = ''
substituteInPlace Makefile \
--replace "ar qc" '${stdenv.cc.bintools.targetPrefix}ar qc'
# Drop flag unrecognized by GCC 9 (for e.g. aarch64-linux)
substituteInPlace Makefile \
--replace "-Wno-unknown-warning" ""
'';
preBuild = ''
@ -42,6 +38,13 @@ stdenv.mkDerivation rec {
makeFlags = [
"DESTDIR=$(out)"
"HOST_ARCH=${stdenv.hostPlatform.parsed.cpu.name}"
"USE_FLASHROM=0"
# Upstream has weird opinions about DESTDIR
# https://chromium.googlesource.com/chromiumos/platform/vboot_reference/+/refs/heads/release-R111-15329.B/Makefile#51
"UB_DIR=${placeholder "out"}/bin"
"UL_DIR=${placeholder "out"}/lib"
"UI_DIR=${placeholder "out"}/include/vboot"
"US_DIR=${placeholder "out"}/share/vboot"
];
postInstall = ''
@ -53,6 +56,6 @@ stdenv.mkDerivation rec {
description = "Chrome OS partitioning and kernel signing tools";
license = licenses.bsd3;
platforms = platforms.linux;
maintainers = with maintainers; [ lheckemann ];
maintainers = with maintainers; [ lheckemann samueldr ];
};
}

View file

@ -1,30 +0,0 @@
---
--- a/Makefile
+++ b/Makefile
@@ -964,7 +964,7 @@ ${UTILLIB21}: ${UTILLIB21_OBJS} ${FWLIB2
# Link tests for external repos
${BUILD}/host/linktest/extern: ${HOSTLIB}
${BUILD}/host/linktest/extern: LIBS = ${HOSTLIB}
-${BUILD}/host/linktest/extern: LDLIBS += -static
+#${BUILD}/host/linktest/extern: LDLIBS += -static
TEST_OBJS += ${BUILD}/host/linktest/extern.o
.PHONY: hostlib
@@ -1056,7 +1056,7 @@ ${UTIL_BINS} ${UTIL_BINS_STATIC}: ${UTIL
${UTIL_BINS} ${UTIL_BINS_STATIC}: LIBS = ${UTILLIB}
# Utilities for auto-update toolkits must be statically linked.
-${UTIL_BINS_STATIC}: LDFLAGS += -static
+${UTIL_BINS_STATIC}:
.PHONY: utils
@@ -1089,7 +1089,7 @@ futil: ${FUTIL_STATIC_BIN} ${FUTIL_BIN}
${FUTIL_STATIC_BIN}: ${FUTIL_STATIC_OBJS} ${UTILLIB}
@${PRINTF} " LD $(subst ${BUILD}/,,$@)\n"
- ${Q}${LD} -o $@ ${CFLAGS} ${LDFLAGS} -static $^ ${LDLIBS}
+ ${Q}${LD} -o $@ ${CFLAGS} ${LDFLAGS} $^ ${LDLIBS}
${FUTIL_BIN}: LDLIBS += ${CRYPTO_LIBS}
${FUTIL_BIN}: ${FUTIL_OBJS} ${UTILLIB}