Commit Graph

30 Commits

Author SHA1 Message Date
Moritz Angermann
1e0561d78a nixpkgs/systems: Add ucrt64 as MinGW libc
The Minimalist Gnu for Windows distribution comes with support for
the traditional msvcrt libc, as well as ucrt64 libc. The latter
being the newer universal compiler runtime. We follow the msys2
environment naming convention[1]:

| name       | toolchain | arch    | libc   | libc++    |
|------------|-----------|---------|--------|-----------|
| mingw32    | gcc       | i686    | msvcrt | libstdc++ |
| mingw64    | gcc       | x86_64  | msvcrt | libstdc++ |
| ucrt64     | gcc       | x86_64  | ucrt   | libstdc++ |
| clang32    | llvm      | i686    | ucrt   | libc++    |
| clang64    | llvm      | x86_64  | ucrt   | libc++    |
| clangarm64 | llvm      | aarch64 | ucrt   | libc++    |

For now nixpkgs only supports the first three with this commit.

--
[1]: https://www.msys2.org/docs/environments/
2023-09-08 10:56:08 +00:00
Sergei Trofimovich
3bef3f8c4d pkgsCross.mingwW64.windows.mingw_w64: backport parallel build fixes
Without the change build frequently fails on `gnumake-4.4` as:

    x86_64-w64-mingw32-dlltool: cannot delete libmsvcr120d_defs02133.o: No such file or directory
    x86_64-w64-mingw32-dlltool: cannot delete libmsvcr120d_defs02134.o: No such file or directory

Pull upstream patches that fix temporary file collisions and add
missing dll dependencies.
2022-12-01 08:31:11 +00:00
Christian Kögler
dd8a3687b3
Merge pull request #173253 from RasmusRendal/mingw10
mingw-w64: 9.0.0 -> 10.0.0
2022-08-19 09:07:36 +02:00
Sergei Trofimovich
d82ce04557 windows.mingw_w64: enable stripping
With 0507725 "setup-hooks/strip.sh: run RANLIB on static
archives after stripping" it should now be safe to run strip
on wider range of .a files.

mingw-w64 is a good example where a reference was preserved
to gcc from intermediate stage. Enabling stripping by default
decreases `pkgsCross.mingw32` closure for 20%:

Before:

    $ nix path-info -rsSh $(nix-build -A pkgsCross.mingw32.stdenv)
    ...
    /nix/store/qzhkidff0wxhqf2gi97ng6qismzvpnbp-stdenv-linux 43.6K    1.0G

After:

    $ nix path-info -rsSh $(nix-build -A pkgsCross.mingw32.stdenv)
    ...
    /nix/store/fj4dv1n3sa3jgcb1j3nwn6njsf943n48-stdenv-linux 43.6K  792.4M
2022-07-28 21:55:15 +01:00
Janne Heß
c911240e9c
Revert "Add mingwW64-llvm cross-system." 2022-05-18 13:50:23 +02:00
Rasmus Rendal
6932bbea63
mingw-w64: 9.0.0 -> 10.0.0 2022-05-16 12:36:21 +02:00
Shea Levy
504d38ae7b
cross: Allow Windows toolchains to use ucrt as libc. 2022-05-06 10:54:52 -04:00
Shea Levy
4447d4071b
mingw-w64: 9.0.0 -> 10.0.0 2022-05-06 10:54:51 -04:00
Philipp
c60a0b0447
mingw-64: 6.0.0 -> 9.0.0 2021-07-20 22:34:50 +02:00
Kira Bruneau
9788188273 pkgs/os-specific/windows: fix evaluation after stdenv.lib -> lib
Fixes the evaluation of packages in pkgs/os-specific/windows that
weren't updated to include a new lib parameter after the refactor from
stdenv.lib -> lib (#109490).

I originally only intended this change to fix
`pkgsCross.mingw32.buildPackages.gcc` & `pkgsCross.mingwW64.buildPackages.gcc`
to support building wine with `mingwSupport`, but I noticed this was
an issue for all updated windows packages. Most of these other
packages fail to build for other reasons.
2021-01-19 21:34:45 -05:00
Ben Siraphob
16d91ee628 pkgs/os-specific: stdenv.lib -> lib 2021-01-17 23:26:08 +07:00
Dmitry Kozlyuk
8b89e0494c mingw-w64: 5.0.4 -> 6.0.0
Version 6.0.0 brings better Win32 API coverage and bugfixes.
It's been used in various distros long enough to be considered stable.
Latest version 7.0.0 hasn't received extensive testing yet.

Announce mail:
https://sourceforge.net/p/mingw-w64/mailman/message/36416777/
2020-08-16 10:16:51 +00:00
John Ericson
999ef20129 mingw-w64 libc: Multiple outputs and parallel builds
Also deduplicate more of the GCC derivations.
2019-11-11 00:25:24 -05:00
volth
c814d72b51 treewide: name -> pname 2019-08-17 10:54:38 +00:00
Matthew Bauer
febda2b127 Revert "mingw: use current package set for headers"
This reverts commit 0307203693.
2019-01-28 10:42:04 -05:00
Matthew Bauer
0307203693 mingw: use current package set for headers
gccCrossStageStatic should not need targetPackages.

Fixes #53587.
2019-01-07 16:15:27 -06:00
Matthew Bauer
e575275de7 windows: Cleanups 2018-08-10 12:05:04 -04:00
Matthew Bauer
f32e9a34c8 windows: add more meta
‘platforms.windows’ includes all windows platforms. Should prefer this
to using assertions.
2018-08-10 11:51:18 -04:00
Matthew Bauer
744665e3c4 mingw: add osvi.patch
This is apparently a typo that has not been fixed.

Also remove unused configureFlags.
2018-08-07 14:17:01 -04:00
Bojan Nikolic
2e0ebc0532 mingw-w64: Disable stack hardening of the runtime
Do this because it is built with the static stage
2017-12-29 14:23:30 -05:00
John Ericson
fc42ec0a5c mingw-w64: Depend on own headers derivation
Without this, a `#include <float.h>` resolves incorrectly. Either the
headers weren't on the include path at all, or they only were for
local, not system, imports.

What's weird is this used to not be a problem. Not sure what other
change in e.g. cc-wrapper would affect this.
2017-06-22 17:53:51 -04:00
John Ericson
bb7067f882 mingw-w64: Clean up, especially clarifying staging 2017-06-22 17:53:51 -04:00
John Ericson
295315cc87 binutilsCross: Remove and use binutils instead always
See previous commit for what was done to `binutils` to make this
possible.

There were some uses of `forcedNativePackages` added. The
combination of overrides with that attribute is highly spooky: it's
often important that if an overridden package comes from it, the
replaced arguments for that package come from it. Long term this
package set and all the spookiness should be gone and irrelevant:

  "Move along, nothing to see here!"

No hashes should be changed with this commit
2017-04-25 21:36:19 -04:00
Vladimír Čunát
13df963c7e mingw: update 3.1.0 -> 4.0.6 2016-04-21 13:38:20 +02:00
aszlig
e64b342fa8
Use mingw-w64 for 32bit Windows builds as well.
Mingw(32) is rather poorly maintaned and has quite a lot of bugs. And
because our Windows cross builds were also poorly maintained and most of
the cross-tests were broken as well, I'm just taking this step and try
to switch to mingw-w64 for everything "cross Windows".

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-03-03 22:38:48 +01:00
aszlig
44cfba7950
mingw-w64-pthreads: Create based on mingw-w64.
The winpthreads library is part of the same source package, so let's
just override the name and the source directory.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-24 07:26:24 +01:00
aszlig
4fde72c7d6
mingw-w64: Fix typo in preConfigure hook.
D'oh, no wonder the headers are of almost the same size as the main
package.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-24 07:26:23 +01:00
aszlig
a78c6490d7
mingw-w64: Update to new upstream version 3.1.0.
Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2014-02-24 07:26:22 +01:00
Lluís Batlle i Rossell
383b76df79 Fixing mingw-w64 builds. I can build simple C++ programs with gccCrossStageFinal.
I also add tests for hydra; let's see if it builds far.


svn path=/nixpkgs/trunk/; revision=34232
2012-05-24 22:07:23 +00:00
Lluís Batlle i Rossell
3729f9ce5e Trying to add a few bits of mingw-w64. To be tested.
svn path=/nixpkgs/trunk/; revision=34228
2012-05-24 21:23:23 +00:00