Unverified Commit c242ed6e authored by Nick Cao's avatar Nick Cao Committed by GitHub
Browse files

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

 vboot_reference: 20180311 -> 111.15329 
parents 308dfa93 979a31b1
Loading
Loading
Loading
Loading
+19 −16
Original line number Diff line number Diff line
{ 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 ];
  };
}
+0 −30
Original line number Diff line number Diff line
---
--- 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}