diff --git a/pkgs/os-specific/gnu/hurd/default.nix b/pkgs/os-specific/gnu/hurd/default.nix index 5eccee62468d..ae1c504fd19e 100644 --- a/pkgs/os-specific/gnu/hurd/default.nix +++ b/pkgs/os-specific/gnu/hurd/default.nix @@ -75,25 +75,16 @@ stdenv.mkDerivation ({ // -(if !headersOnly && buildTarget != null - then assert installTarget != null; { - # Use the default `buildPhase' and `installPhase' so that the usual hooks - # can still be used. - buildFlags = buildTarget; - installTargets = installTarget; - } - else {}) +stdenv.lib.optionalAttrs (!headersOnly && buildTarget != null) { + # Use the default `buildPhase' and `installPhase' so that the usual hooks + # can still be used. + buildFlags = buildTarget; + installTargets = assert installTarget != null; installTarget; +} // -(if headersOnly - then { dontBuild = true; installPhase = "make install-headers"; } - else (if (cross != null) - then { - crossConfig = cross.config; - - # The `configure' script wants to build executables so tell it where - # to find `crt1.o' et al. - LDFLAGS = "-B${glibcCross}/lib"; - } - else { }))) +stdenv.lib.optionalAttrs headersOnly { + dontBuild = true; + installPhase = "make install-headers"; +}) diff --git a/pkgs/os-specific/gnu/libpthread/default.nix b/pkgs/os-specific/gnu/libpthread/default.nix index 294a1548582b..a2e1081a1e8d 100644 --- a/pkgs/os-specific/gnu/libpthread/default.nix +++ b/pkgs/os-specific/gnu/libpthread/default.nix @@ -55,8 +55,6 @@ stdenv.mkDerivation ({ (if cross != null then { - crossConfig = cross.config; - # Tell gcc where to find `crt1.o' et al. This is specified in two # different ways: one for gcc as run from `configure', and one for linking # libpthread.so (by default `libtool --mode=link' swallows `-B', hence diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix index 5f92dfcc8390..e2d34abb70cc 100644 --- a/pkgs/os-specific/linux/pam/default.nix +++ b/pkgs/os-specific/linux/pam/default.nix @@ -33,21 +33,6 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; - crossAttrs = { - propagatedBuildInputs = [ flex.crossDrv cracklib.crossDrv ]; - preConfigure = preConfigure + '' - $crossConfig-ar x ${flex.crossDrv}/lib/libfl.a - mv libyywrap.o libyywrap-target.o - ar x ${flex}/lib/libfl.a - mv libyywrap.o libyywrap-host.o - export LDFLAGS="$LDFLAGS $PWD/libyywrap-target.o" - sed -e 's/@CC@/gcc/' -i doc/specs/Makefile.in - ''; - postConfigure = '' - sed -e "s@ $PWD/libyywrap-target.o@ $PWD/libyywrap-host.o@" -i doc/specs/Makefile - ''; - }; - postInstall = '' mv -v $out/sbin/unix_chkpwd{,.orig} ln -sv /run/wrappers/bin/unix_chkpwd $out/sbin/unix_chkpwd 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";