From 06c5e811e6e0244a8e5a9645fd8347c719aab228 Mon Sep 17 00:00:00 2001 From: John Ericson Date: Sun, 10 Nov 2019 22:35:59 -0500 Subject: [PATCH] mcfgthreads: Init from git --- pkgs/os-specific/windows/default.nix | 22 +++++++++++++++++-- .../windows/mcfgthreads/default.nix | 19 ++++++++++++++++ pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 pkgs/os-specific/windows/mcfgthreads/default.nix diff --git a/pkgs/os-specific/windows/default.nix b/pkgs/os-specific/windows/default.nix index 8c2f3ca5498..7f1634d5c0b 100644 --- a/pkgs/os-specific/windows/default.nix +++ b/pkgs/os-specific/windows/default.nix @@ -1,4 +1,6 @@ -{ stdenv, newScope, crossLibcStdenv }: +{ stdenv, buildPackages +, newScope, overrideCC, crossLibcStdenv, libcCross +}: stdenv.lib.makeScope newScope (self: with self; { @@ -15,9 +17,25 @@ stdenv.lib.makeScope newScope (self: with self; { stdenv = crossLibcStdenv; }; + crossThreadsStdenv = overrideCC crossLibcStdenv + (if stdenv.hostPlatform.useLLVM or false + then buildPackages.llvmPackages_8.lldClangNoLibcxx + else buildPackages.gccCrossStageStatic.override (old: { + bintools = old.bintools.override { + libc = libcCross; + }; + libc = libcCross; + })); + mingw_w64_headers = callPackage ./mingw-w64/headers.nix { }; - mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { }; + mingw_w64_pthreads = callPackage ./mingw-w64/pthreads.nix { + stdenv = crossThreadsStdenv; + }; + + mcfgthreads = callPackage ./mcfgthreads { + stdenv = crossThreadsStdenv; + }; pthreads = callPackage ./pthread-w32 { }; diff --git a/pkgs/os-specific/windows/mcfgthreads/default.nix b/pkgs/os-specific/windows/mcfgthreads/default.nix new file mode 100644 index 00000000000..468e92a1e9d --- /dev/null +++ b/pkgs/os-specific/windows/mcfgthreads/default.nix @@ -0,0 +1,19 @@ +{ stdenv, fetchFromGitHub, autoreconfHook }: + +stdenv.mkDerivation { + pname = "mcfgthreads"; + version = "git"; + src = fetchFromGitHub { + owner = "lhmouse"; + repo = "mcfgthread"; + rev = "9570e5ca7b98002d707c502c919d951bf256b9c6"; + sha256 = "10y2x3x601a7c1hkd6zlr3xpfsnlr05xl28v23clf619756a5755"; + }; + # Don't want prebuilt binaries sneaking in. + postUnpack = '' + rm -r "$sourceRoot/debug" "$sourceRoot/release" + ''; + nativeBuildInputs = [ + autoreconfHook + ]; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5a1b9cfab69..4ca16cc81e6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -7577,7 +7577,7 @@ in ../development/compilers/gcc/libstdc++-hook.sh; crossLibcStdenv = overrideCC stdenv - (if stdenv.targetPlatform.useLLVM or false + (if stdenv.hostPlatform.useLLVM or false then buildPackages.llvmPackages_8.lldClangNoLibc else buildPackages.gccCrossStageStatic);