Commit Graph

13 Commits

Author SHA1 Message Date
annalee
5650490844
windows.crossThreadsStdenv: llvmPackages_8 -> llvmPackages
removing references to llvmPackages_8 in preparation to drop it from the
tree
2024-01-25 12:23:35 +00:00
Weijia Wang
0c9d7dad11 windows.wxMSW: drop 2024-01-06 01:09:13 +01: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
Shea Levy
121a26897f
npiperelay: init at 0.1.0 2022-05-18 08:15:04 -04: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
Ben Siraphob
16d91ee628 pkgs/os-specific: stdenv.lib -> lib 2021-01-17 23:26:08 +07: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
9cee386f38 windows: refactor 2018-08-07 14:16:55 -04:00