From 3d4aa7e95def212895c36262355ca6349cfe7d5a Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Thu, 26 Apr 2018 07:27:23 -0500 Subject: [PATCH] qemu: workaround 'struct sysinfo' conflict musl <--> linux Most everyone using musl patches the linux headers instead, but various software uses a local workaround like the one added in this commit (psutils, for example). It's not obvious to me which project has the "bug", and I'm reluctant to even propose modifying our headers without clear answer on the issue. Also, modifying those headers triggers rebuild-all-the-things. Hopefully upstream projects sort this out, in the meantime adding this define is a bit of a kludge but does the job. ------- For the curious, the patch usually is something like this: https://patchwork.kernel.org/patch/3833241/ Here's an updated version that also ensures kernel users get the sysinfo struct as expected too: https://raw.githubusercontent.com/openwrt/openwrt/e3c43ade0bae9491aeea50fa361e846bb5002dc0/target/linux/generic/pending-4.14/270-uapi-kernel.h-glibc-specific-inclusion-of-sysinfo.h.patch (cherry picked from commit dtzWill/nixpkgs@91b5f5a463f5545fbf4f916b3c624840fcb9f300) --- pkgs/applications/virtualization/qemu/default.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index 0496adb6f40..dd68eb19380 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -95,6 +95,8 @@ stdenv.mkDerivation rec { preConfigure = '' unset CPP # intereferes with dependency calculation + '' + optionalString stdenv.hostPlatform.isMusl '' + NIX_CFLAGS_COMPILE+=" -D_LINUX_SYSINFO_H" ''; configureFlags =