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 0e3ffa9a65)
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 0581e31285)
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 a49bc5c9e5)
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 83c8c7fad4)
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 f30f8ee969)
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 e33308016c)
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]: 665ebfb253/pkgs/development/compilers/llvm/12/default.nix (L392-L430)
(cherry picked from commit ee9eacf23e)
(cherry picked from commit c4e9f17ef9)
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 9bf90993f4)
This replaces `writeShellApplication` with `writeShellScriptBin` that
doesn't perform a shellcheck. This makes it way easier to build
postgresql on staging since GHC is super slow to build, even with pretty
powerful machines.
Also Haskell updates are currently merged straight into master which
means that postgresql and all reverse dependencies require a rebuild on
master then[1].
[1] https://github.com/NixOS/nixpkgs/pull/354270#issuecomment-2463196665
(cherry picked from commit 4cd083a3cd)
(cherry picked from commit a40d887561)