From 94d114dc2a9619843af8ea6b322ef2b4f44b982f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Markus=20Partheym=C3=BCller?= Date: Mon, 20 Apr 2020 13:30:35 +0200 Subject: [PATCH] edk2/OVMF: Determine build type from CC setting --- pkgs/applications/virtualization/OVMF/default.nix | 6 +----- pkgs/development/compilers/edk2/default.nix | 11 ++++++++--- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/pkgs/applications/virtualization/OVMF/default.nix b/pkgs/applications/virtualization/OVMF/default.nix index e203106587b..cd30be88991 100644 --- a/pkgs/applications/virtualization/OVMF/default.nix +++ b/pkgs/applications/virtualization/OVMF/default.nix @@ -17,13 +17,9 @@ let throw "Unsupported architecture"; version = lib.getVersion edk2; - buildType = if stdenv.isDarwin then - "CLANGPDB" - else - "GCC5"; in -edk2.mkDerivation projectDscPath buildType { +edk2.mkDerivation projectDscPath { name = "OVMF-${version}"; outputs = [ "out" "fd" ]; diff --git a/pkgs/development/compilers/edk2/default.nix b/pkgs/development/compilers/edk2/default.nix index eb658431c92..1050119be53 100644 --- a/pkgs/development/compilers/edk2/default.nix +++ b/pkgs/development/compilers/edk2/default.nix @@ -30,6 +30,11 @@ buildStdenv = if stdenv.isDarwin then else stdenv; +buildType = if stdenv.isDarwin then + "CLANGPDB" + else + "GCC5"; + edk2 = buildStdenv.mkDerivation { pname = "edk2"; version = "201911"; @@ -44,9 +49,9 @@ edk2 = buildStdenv.mkDerivation { buildInputs = [ libuuid pythonEnv ]; makeFlags = [ "-C BaseTools" ] - ++ lib.optional (stdenv.isDarwin) [ "BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang" ]; + ++ lib.optional (stdenv.cc.isClang) [ "BUILD_CC=clang BUILD_CXX=clang++ BUILD_AS=clang" ]; - NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (!stdenv.isDarwin) " -Wno-error=stringop-truncation"; + NIX_CFLAGS_COMPILE = "-Wno-return-type" + lib.optionalString (stdenv.cc.isGNU) " -Wno-error=stringop-truncation"; hardeningDisable = [ "format" "fortify" ]; @@ -66,7 +71,7 @@ edk2 = buildStdenv.mkDerivation { }; passthru = { - mkDerivation = projectDscPath: buildType: attrs: buildStdenv.mkDerivation ({ + mkDerivation = projectDscPath: attrs: buildStdenv.mkDerivation ({ inherit (edk2) src; buildInputs = [ bc pythonEnv ] ++ attrs.buildInputs or [];