diff --git a/pkgs/os-specific/windows/mingwrt/common.nix b/pkgs/os-specific/windows/mingwrt/common.nix new file mode 100644 index 000000000000..7dc2ae56aa84 --- /dev/null +++ b/pkgs/os-specific/windows/mingwrt/common.nix @@ -0,0 +1,12 @@ +{ lib, fetchurl }: + +rec { + name = "mingwrt-3.20"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; + sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi"; + }; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; +} diff --git a/pkgs/os-specific/windows/mingwrt/default.nix b/pkgs/os-specific/windows/mingwrt/default.nix index 98461d690d92..3429f7564ade 100644 --- a/pkgs/os-specific/windows/mingwrt/default.nix +++ b/pkgs/os-specific/windows/mingwrt/default.nix @@ -1,29 +1,7 @@ -{stdenv, fetchurl, binutils ? null, gccCross ? null, onlyHeaders ? false}: - -let - name = "mingwrt-3.20"; -in -stdenv.mkDerivation (rec { - inherit name; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/mingw-rt/${name}-mingw32-src.tar.gz"; - sha256 = "02pydg1m8y35nxb4k34nlb5c341y2waq76z42mgdzlcf661r91pi"; - }; - -} // -(if onlyHeaders then { - name = name + "-headers"; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} else { - buildInputs = [ gccCross binutils ]; - - crossConfig = gccCross.crossConfig; +{ stdenv, callPackage }: +stdenv.mkDerivation { + inherit (callPackage ./common.nix {}) name src meta; dontStrip = true; -}) -) + hardeningDisable = [ "stackprotector" "fortify" ]; +} diff --git a/pkgs/os-specific/windows/mingwrt/headers.nix b/pkgs/os-specific/windows/mingwrt/headers.nix new file mode 100644 index 000000000000..51180af0fc73 --- /dev/null +++ b/pkgs/os-specific/windows/mingwrt/headers.nix @@ -0,0 +1,17 @@ +{ stdenvNoCC, callPackage }: + +let + inherit (callPackage ./common.nix {}) name src meta; + +in stdenvNoCC.mkDerivation { + name = name + "-headers"; + + inherit src meta; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out + cp -R include $out + ''; +} diff --git a/pkgs/os-specific/windows/w32api/common.nix b/pkgs/os-specific/windows/w32api/common.nix new file mode 100644 index 000000000000..273ae2c8df4b --- /dev/null +++ b/pkgs/os-specific/windows/w32api/common.nix @@ -0,0 +1,14 @@ +{ fetchurl, xz }: + +rec { + name = "w32api-3.17-2"; + + src = fetchurl { + url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; + sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; + }; + + nativeBuildInputs = [ xz ]; + + meta.platforms = [ lib.systems.inspect.isMinGW ]; +} diff --git a/pkgs/os-specific/windows/w32api/default.nix b/pkgs/os-specific/windows/w32api/default.nix index 3443fff9668d..51b88201998c 100644 --- a/pkgs/os-specific/windows/w32api/default.nix +++ b/pkgs/os-specific/windows/w32api/default.nix @@ -1,32 +1,6 @@ -{ stdenv, fetchurl, xz, binutils ? null -, gccCross ? null, onlyHeaders ? false }: - -let - name = "w32api-3.17-2"; -in -stdenv.mkDerivation ({ - inherit name; - - src = fetchurl { - url = "mirror://sourceforge/mingw/MinGW/Base/w32api/w32api-3.17/${name}-mingw32-src.tar.lzma"; - sha256 = "09rhnl6zikmdyb960im55jck0rdy5z9nlg3akx68ixn7khf3j8wb"; - }; - - nativeBuildInputs = [ xz ]; - -} // -(if onlyHeaders then { - name = name + "-headers"; - phases = [ "unpackPhase" "installPhase" ]; - installPhase = '' - mkdir -p $out - cp -R include $out - ''; -} else { - buildInputs = [ gccCross binutils ]; - - crossConfig = gccCross.crossConfig; +{ stdenv, callPackage }: +stdenv.mkDerivation { + inherit (callPackage ./common.nix {}) name src nativeBuildInputs meta; dontStrip = true; -}) -) +} diff --git a/pkgs/os-specific/windows/w32api/headers.nix b/pkgs/os-specific/windows/w32api/headers.nix new file mode 100644 index 000000000000..3083118bb366 --- /dev/null +++ b/pkgs/os-specific/windows/w32api/headers.nix @@ -0,0 +1,17 @@ +{ stdenvNoCC, callPackage }: + +let + inherit (callPackage ./common.nix {}) name src meta; + +in stdenvNoCC.mkDerivation { + name = name + "-headers"; + + inherit src nativeBuildInputs meta; + + phases = [ "unpackPhase" "installPhase" ]; + + installPhase = '' + mkdir -p $out + cp -R include $out + ''; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d18e51772cea..65d1dc9dbb01 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13868,23 +13868,13 @@ with pkgs; jom = callPackage ../os-specific/windows/jom { }; - w32api = callPackage ../os-specific/windows/w32api { - gccCross = gccCrossStageStatic; - binutils = binutils; - }; + w32api = callPackage ../os-specific/windows/w32api { }; - w32api_headers = w32api.override { - onlyHeaders = true; - }; + w32api_headers = callPackage ../os-specific/windows/w32api/headers { }; - mingw_runtime = callPackage ../os-specific/windows/mingwrt { - gccCross = gccCrossMingw2; - binutils = binutils; - }; + mingw_runtime = callPackage ../os-specific/windows/mingwrt { }; - mingw_runtime_headers = mingw_runtime.override { - onlyHeaders = true; - }; + mingw_runtime_headers = callPackage ../os-specific/windows/mingwrt/headers.nix { }; mingw_headers1 = buildEnv { name = "mingw-headers-1";