This was added for AArch64 support, but we can use a more targeted
flag for the build failure.
(cherry picked from commit ae0425bd9a)
(cherry picked from commit 0e3ffa9a6552a7201e45dbcc403a1cb3474b26b8)
Downstream derivations were picking up references to the `dev` output
through indirect `__FILE__` usage in the headers. I borrowed and
modified this trick from the Boost package, where I believe vcunat
originated it. It’s not very pretty and it should be in a hook or
something, but it works at a pinch.
(cherry picked from commit fbdced9bb3)
(cherry picked from commit 0581e31285f98d7e71ae4f8ab12d3c6e2873c554)
This is closer to fixing the problem at the source.
(cherry picked from commit 2fc882c70c)
(cherry picked from commit c0b7ae5a7c4e4f0740fd3b8d05c0bca77ceac86f)
This is using unguarded 11.0 APIs, so bump the deployment target too.
(cherry picked from commit 89e641930d)
(cherry picked from commit 45e6e0f628abc7f29b0e7ef18137a1a23a5a7ba1)
0 ss infinite, nix will take care of the timeout
In loaded environments the tests can take longer to build
(cherry picked from commit 54522e10d5)
(cherry picked from commit a49bc5c9e512fb2bbc5b96c44042a5e330d2116d)
fs_event_watch_delete_dir fails in the darwin sandbox. disable it.
(cherry picked from commit 312737ea68)
(cherry picked from commit cf43e134b6da0aae9ca70a29b6d45033562ec639)
This cherry-picks a patch set fixing calls to m4_fatal which caused some
packages to fail in autoconf (e.g. cava).
(cherry picked from commit bdd6ddd20d)
(cherry picked from commit 83c8c7fad4c5eeb9e4950c13d6d7a37c17d9d42f)
Seems like the patch we've written for LLVM 13 and above also works for
LLVM 12 which seems a little more robust.
(cherry picked from commit 37437849de)
(cherry picked from commit f30f8ee969e6a395da091e7a8053e779b39686ff)
All LLVM versions < 12 have been removed, so this patch can live in the
versioned directory, simplifying the patch list in the process.
(cherry picked from commit 8408b91e8d)
(cherry picked from commit e33308016c10e2c67551e448b420bed634907c62)
As mentioned in #305146, keeping LLVM 12 is a source of pain because it
is the only version to be built from individual release tarball instead
of the LLVM monorepo. This commit makes LLVM 12 start from the monorepo
as well, simplifying all common LLVM expressions in the process.
With #347887, some quirks in the expressions for LLVM <14 were ironed
out, so building LLVM through from the monorepo is quite simple now.
- Most expressions only required minor changes, mostly removing the
special casing for `sourceRoot`.
- The patch lists from llvm/12/default.nix were ported to
common/default.nix. This only required a few extra conditionals which
could be reduced via a rebuild also involving other LLVM versions.
Outstanding tasks of little urgency have been noted in TODO comments.
I have verified that the patch lists stay the same for all packages
except LLVM where merely the order changes. An extra set of eyes
is appreciated, of course.
- clang: The expression was reworked to use the same symlink location
for clang-tools-extra for all versions including LLVM 12. This
required adjusting the ad hoc patching of the clangd cmake files
slightly.
- libunwind: We no longer need to make the libcxx sources available
manually. We can rely on the monorepo source instead.
- lld: We no longer need to make the libunwind sources available manually.
- llvm: We no longer need to make the polly sources available manually
- On Darwin, we need to bypass CMake's C++ compiler for libcxx and
libunwind now. It isn't a 100% clear why, probably because we've
started to use Darwin's bootstrapStdenv for libcxx in the common
expression compared to LLVM 12 on master [1].
The reordering of flags for wasm causes a rebuild for some packages
like firefox, but this should be tolerable on staging.
[1]: https://github.com/NixOS/nixpkgs/blob/665ebfb253caba7b85c2affefe2a92b305def4e6/pkgs/development/compilers/llvm/12/default.nix#L392-L430
(cherry picked from commit ee9eacf23e)
(cherry picked from commit c4e9f17ef944bb7ce0d3d1226d7f922f28e46b02)
We just need to make sure the attribute evaluates so we can cleanly
access `meta.broken` for those versions.
(cherry picked from commit ce6c31c312)
(cherry picked from commit 9bf90993f4ba264b12733c3ae768db6e821279c5)