Commit Graph

12 Commits

Author SHA1 Message Date
sternenseemann
c58517aeed llvmPackages_*.clang: stop passing LLVM_CONFIG_PATH unnecessarily
Starting with LLVM 8, clang does no longer use llvm-config to detect the
LLVM installation: https://github.com/llvm/llvm-project/commit/e4faa5c7986b7
Consequently, there is no point passing LLVM_CONFIG_PATH (in fact the
variable is unused currently).
2022-01-03 16:46:38 +01:00
Dmitry Kalinkin
508623b372
clang_{11,12,13,git}: enable RTTI 2021-12-24 22:24:00 -05:00
Michael Weiss
9a761a4fc8
llvmPackages_12: 12.0.0 -> 12.0.1 2021-07-09 10:22:08 +02:00
Jörg Thalheim
f69522b227 clang-tools: fix missing extra tools
fixes https://github.com/NixOS/nixpkgs/issues/128909
2021-07-04 12:08:24 +02:00
sternenseemann
3530837417 llvmPackages*.clang: fix linker invocation with LLVMgold plugin
When using GNU binutils, clang passes the LLVMgold.so plugin to the
linker for certain operations that require special support in the linker
like doing link time optimization (LTO). When passing the plugin to the
linker's command line, clang assumes that llvm and itself are installed
in the same prefix and thus `/path/to/clang/bin/../lib/LLVMgold.so` is
the plugin.

Since we install clang and llvm to separate store paths, this assumption
does not hold. When clang-unwrapped only had a single output, we worked
around this issue by symlinking `$out/lib/LLVMgold.so` to
`${llvm}/lib/LLVMgold.so`. However since we split all llvm packages into
multiple outputs clang's `$out` no longer has a lib directory and clang
can't discover clangs lib output on its own. As a result LTO was broken.

Instead of introducing yet another hack and having a symlink to
LLVMgold.so in `$out/lib` (despite having `$lib/lib` as well), we patch
clang to use a hard coded path to `${libllvm.lib}/lib` for discovering
`LLVMgold.so`.

Resolves #123361.
2021-05-18 16:15:03 +02:00
Andrew Childs
7869d16545 llvmPackages: Multuple outputs for everythting
Also begin to start work on cross compilation, though that will have to
be finished later.

The patches are based on the first version of
https://reviews.llvm.org/D99484. It's very annoying to do the
back-porting but the review has uncovered nothing super major so I'm
fine sticking with what I've got.

Beyond making the outputs work, I also strove to re-sync the packages,
as they have been drifting pointlessly apart for some time.

----

Other misc notes, highly incomplete

- lvm-config-native and llvm-config are put in `dev` because they are
  tools just for build time.

- Clang no longer has an lld dep. That was introduced in
  db29857eb3, but if clang needs help
  finding lld when it is used we should just pass it flags / put in the
  resource dir. Providing it at build time increases critical path
  length for no good reason.

----

A note on `nativeCC`:

`stdenv` takes tools from the previous stage, so:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.stdenv.cc`: `(?0, ?1, x)`

while:

1. `pkgsBuildBuild`: `(?1, x, x)`
2. `pkgsBuildBuild.targetPackages`: `(x, x, ?2)`
3. `pkgsBuildBuild.targetPackages.stdenv.cc`: `(?1, x, x)`
2021-04-30 05:41:00 +00:00
Michael Weiss
28887e7fe5
llvmPackages_12: Improve and extend the meta attributes 2021-04-15 18:41:38 +02:00
Michael Weiss
2c2e8662b9
llvmPackages_12: 12.0.0-rc5 -> 12.0.0
Release notes: https://releases.llvm.org/12.0.0/docs/ReleaseNotes.html
2021-04-15 16:31:32 +02:00
Michael Weiss
2b95bf44b8
llvmPackages_12: 12.0.0-rc4 -> 12.0.0-rc5
Note: Tested in #116646.
2021-04-08 16:12:48 +02:00
Michael Weiss
a960fead6e
llvmPackages_12: 12.0.0-rc3 -> 12.0.0-rc4 2021-04-02 14:35:23 +02:00
Gabor Greif
7c27d49815
llvmPackages_12: init at 12.0.0-rc3
https://lists.llvm.org/pipermail/release-testers/2021-March/001496.html
2021-04-01 12:32:19 +02:00
Michael Weiss
2fd9e41719
llvmPackages_12: Copy from llvmPackages_11 2021-04-01 12:32:18 +02:00