Commit Graph

102 Commits

Author SHA1 Message Date
Aaron Jheng
d38485921a
treewide: vendorSha256 -> vendorHash (#256514) 2023-09-21 19:11:11 +02:00
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
Vladimír Čunát
b4cc333048
Merge branch 'master' into staging-next 2023-09-04 20:19:44 +02:00
ajs124
44c3cb965f windows.jom: remove
depends on qt4
versions > 1.1 support qt5, but our qt5 packages do not
and most likely will never support windows
2023-09-04 13:54:51 +02:00
marius david
097d59184b windows.dlfcn: init at 1.3.1 2023-08-28 21:31:57 +03:00
Adam Joseph
2affd455a4 gccCrossStageStatic: enable dynamic libraries, rename to gccWithoutTargetLibc
This commit allows `gccCrossStageStatic` to build dynamically-linked
libraries.  Since is no longer restricted to building static
libraries its name is no longer appropriate, and this commit also
renames it to the more-accurate `gccWithoutTargetLibc`.

By default, you can't build a gcc that knows how to create dynamic
libraries unless you have already built the targetPlatform libc.

Because of this, our gcc cross-compiler is built in two stages:

  1. Build a cross-compiler (gccCrossStageStatic) that can build
     only static libraries.

  2. Use gccCrossStageStatic to compile the targetPlatform libc.

  3. Use the targetPlatform libc to build a fully-capable cross
     compiler.

You might notice that this pattern looks very similar to what we do
with `xgcc` in the stdenv bootstrap.  Indeed it is!  I would like to
work towards getting the existing stdenv bootstrap to handle cross
compilers as well.  However we don't want to cripple `stdenv.xgcc`
by taking away its ability to build dynamic libraries.

It turns out that the only thing gcc needs the targetPlatform libc
for is to emit a DT_NEEDED for `-lc` into `libgcc.so`.  That's it!
And since we don't use `gccCrossStageStatic` to build anything other
than libc, it's safe to omit the `DT_NEEDED` because that `libgcc`
will never be loaded by anything other than `libc`.  So `libc` will
already be in the process's address space.

Other people have noticed this; crosstool-ng has been using this
approach for a very long time:

  36ad0b17a7/scripts/build/cc/gcc.sh (L638-L640)
2023-07-01 13:12:40 -07:00
Sergei Trofimovich
c6132dcf23 pkgsCross.mingwW64.windows.mcfgthreads: add gcc13 compatible version
Upstream `gcc-13` merged `mcfgthreads` support with a caveat: it's
headers interface is not compatible with the patch `nixpkgs` was
carrying in `gcc-12` and before.

To keep both new (`gcc13`) and old (`_pre_gcc13`) version I held back
previous `windows.mcfgthreads` attribute as
`windows.mcfgthreads_pre_gcc_13`. It is used for `gcc` before 13.

The change fixes the build of `pkgsCross.mingwW64.stdenv` itself and
example program:

    $ nix build --impure --expr 'with import ./. {}; pkgsCross.mingwW64.re2c.override { stdenv = pkgsCross.mingwW64.gcc11Stdenv; }'
2023-06-08 07:43:56 +01:00
Felix Buehler
cdb39a86e0 treewide: use optionalString 2023-02-13 21:52:34 +01: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
github-actions[bot]
39ddfff2f2
Merge staging-next into staging 2022-05-18 18:01:51 +00:00
github-actions[bot]
925219f62b
Merge master into staging-next 2022-05-18 18:01:13 +00:00
Shea Levy
121a26897f
npiperelay: init at 0.1.0 2022-05-18 08:15:04 -04: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
Yana Timoshenko
719567e91f maintainers: update personal details 2021-12-31 21:48:55 +03:00
Sandro
96c17beaf5
Merge pull request #145205 from Stunkymonkey/treewide-pname-version-1 2021-11-13 19:32:52 +01:00
Felix Buehler
9480444dae treewide: rename name to pname&version 2021-11-09 22:24:57 +01:00
Raymond Gauthier
6ea34850ff
mingw_w64_pthreads: enable 'static' lib output
This make this 'mingw_w64_pthreads' package suitable for
use when cross compiling rust code from linux to windows.
2021-10-12 09:48:46 -04:00
Ben Siraphob
2f94991628 treewide: fix redirected URLs
Using the script in maintainers/scripts/update-redirected-urls.sh
2021-08-01 00:01:50 +07:00
Philipp
c60a0b0447
mingw-64: 6.0.0 -> 9.0.0 2021-07-20 22:34:50 +02:00
John Ericson
18c38f8aee treewide: All the linker to be chosen independently
This will begin the process of breaking up the `useLLVM` monolith. That
is good in general, but I hope will be good for NetBSD and Darwin in
particular.

Co-authored-by: sterni <sternenseemann@systemli.org>
2021-05-14 21:29:51 +00:00
Taeer Bar-Yam
c5e5ea90e1 libgnurx: output libgnurx.a when static 2021-04-28 10:15:37 -04:00
Sandro Jäckel
3453b89f4b
lzma: deprecate alias 2021-04-04 19:49:52 +02:00
John Ericson
bc1f7c5d7f mcfgthreads: 9570e5ca -> 10y2x3x6
The latest version non longer has `-Werror` (at our request; thanks!) so
we no longer need to patch it out.
2021-03-12 15:54:05 +00:00
sternenseemann
81e5833fd1 mcfgthreads: fix syntax
PR #115603 / 8ad96b7786 introduced a
syntax error by introducing an '' inside an indented string and thus a
syntax error. Was merged despite the failing ofborg check.
2021-03-11 23:59:14 +01:00
Michael Roitzsch
8ad96b7786 mcfgthreads: enable cross-compiling on Darwin
using -Werror is problematic in general, remove for all platforms
fixes #97214
2021-03-09 21:23:19 +01: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
Jonathan Ringer
9bb3fccb5b treewide: pkgs.pkgconfig -> pkgs.pkg-config, move pkgconfig to alias.nix
continuation of #109595

pkgconfig was aliased in 2018, however, it remained in
all-packages.nix due to its wide usage. This cleans
up the remaining references to pkgs.pkgsconfig and
moves the entry to aliases.nix.

python3Packages.pkgconfig remained unchanged because
it's the canonical name of the upstream package
on pypi.
2021-01-19 01:16:25 -08:00
Ben Siraphob
16d91ee628 pkgs/os-specific: stdenv.lib -> lib 2021-01-17 23:26:08 +07:00
Profpatsch
4a7f99d55d treewide: with stdenv.lib; in meta -> with lib;
Part of: https://github.com/NixOS/nixpkgs/issues/108938

meta = with stdenv.lib;

is a widely used pattern. We want to slowly remove
the `stdenv.lib` indirection and encourage people
to use `lib` directly. Thus let’s start with the meta
field.

This used a rewriting script to mostly automatically
replace all occurances of this pattern, and add the
`lib` argument to the package header if it doesn’t
exist yet.

The script in its current form is available at
https://cs.tvl.fyi/depot@2f807d7f141068d2d60676a89213eaa5353ca6e0/-/blob/users/Profpatsch/nixpkgs-rewriter/default.nix
2021-01-11 10:38:22 +01: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
Michael Reilly
84cf00f980
treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Merijn Broeren
133103d709
treewide: replace make/build/configure/patchFlags with nix lists 2019-12-30 12:58:11 +01:00
John Ericson
16f0fe7fe3 Merge remote-tracking branch 'upstream/master' into mingw-mcfthreads 2019-11-11 20:48:14 -05:00
John Ericson
04cb05d20c gcc: Build MinGW stage two with threading library
Currently this is set up to be mcfgthreads, but it could be something
else instead.
2019-11-11 11:02:38 -05: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
John Ericson
06c5e811e6 mcfgthreads: Init from git 2019-11-11 00:25:24 -05:00
John Ericson
0a63190c31 windows top-level: Clean up with makeScope 2019-11-11 00:25:24 -05:00
Matthew Bauer
3b96c76bef wxMSW: mark broken
This hasn’t worked for a while:

https://hydra.nixos.org/job/nixpkgs/cross-trunk/crossMingw32.windows.wxMSW.x86_64-linux
2019-09-18 12:51:00 -04:00
volth
08f68313a4 treewide: remove redundant rec 2019-08-28 11:07:32 +00:00
volth
c814d72b51 treewide: name -> pname 2019-08-17 10:54:38 +00:00
Frederik Rietdijk
fe9a3e3e63 Merge staging-next into staging 2019-08-17 09:39:23 +02:00
volth
46420bbaa3 treewide: name -> pname (easy cases) (#66585)
treewide replacement of

stdenv.mkDerivation rec {
  name = "*-${version}";
  version = "*";

to pname
2019-08-15 13:41:18 +01:00
Yegor Timoshenko
31d5005cd6
pthreads-w32: 1.10.0 -> 2.9.1 2019-08-15 08:44:54 +00:00
volth
f3282c8d1e treewide: remove unused variables (#63177)
* treewide: remove unused variables

* making ofborg happy
2019-06-16 19:59:05 +00:00
Florian Klink
ddfc4797fb windows.mingwrt: fix src url 2019-06-15 13:33:32 +02:00