Commit Graph
36 Commits
Author SHA1 Message Date
sternenseemann 3a165fda92 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.

(cherry picked from commit 3530837417da13076a2c8412de2c0c385dfbd648)
2021-05-23 14:48:58 +02:00
John Ericson e830db4320 llvmPackages: Fix more inconsistencies
The main thing was using `llvm_meta` in all versions.

Secondarily:

 - libunwindx7: Forgot to split outputs

 - libcxx{,abi} 12: Forgot to apply output-splitting patches.

 - simplify `useLLVM` stdenv-switching logic.

 - openmp always gets its own directory
2021-05-12 00:16:11 +00: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
Ben Siraphob acc5f7b18a pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
Ben Siraphob 3ae5e6ce03 treewide: remove enableParallelBuilding = true if using cmake 2021-01-03 18:37:40 +07:00
Vladimír Čunát 336bc8283b Re-Revert "Merge #101508: libraw: 0.20.0 -> 0.20.2"
This reverts commit c778945806.

I believe this is exactly what brings the staging branch into
the right shape after the last merge from master (through staging-next);
otherwise part of staging changes would be lost
(due to being already reachable from master but reverted).
2020-10-26 08:19:17 +01:00
John Ericson b5f7ed6846 Merge pull request #91293 from Ericson2314/cxx-wrapper-debt-part-2
treewide: Get rid of `cc.gcc`
2020-08-02 20:42:20 -04:00
John Ericson 92f96f47b0 treewide: Get rid of cc.gcc
Instead, we have a new `gccForLibs`, which has the appropriate
definition for e.g. avoiding `x86_32` linking problems.
2020-08-02 17:12:05 +00:00
Holger Wünsche 0f0b14258b clang_{5..10}: add RTTI
This fixes problems with missing symbols when using clang as library and
is most likely a result of llvm being build with RTTI enabled.
2020-06-27 20:37:11 +02:00
Jan Tojnar a04625379a Merge branch 'master' into staging-next 2020-04-13 18:50:35 +02:00
Michael Reilly 84cf00f980 treewide: Per RFC45, remove all unquoted URLs 2020-04-10 17:54:53 +01:00
Gabor Greif e336bdf80e llvmPackages: change homepages to https:// scheme
also: https://www.cmake.org/Wiki/CMake_RPATH_handling has moved
2020-04-05 12:37:24 +02:00
Daiderd Jordan d0a90de910 llvmPackages: python2 -> python3 2020-01-13 11:13:56 +01:00
Craig Hall a33dbd38cb clang-manpages: Use pname 2019-11-24 18:32:26 +00:00
Craig Hall f1255e45db clang: Use pname 2019-11-24 18:32:26 +00:00
Craig Hall 5a9c95d4d2 clang: Add version attribute 2019-11-24 18:32:26 +00:00
Dmitry Kalinkin 325f37f935 llvm_*,clang_*: allow src overrides 2019-07-17 10:30:05 +02:00
volth 52f53c69ce pkgs/*: remove unreferenced function arguments 2018-07-21 02:48:04 +00:00
John Ericson 6e7e22da70 llvm 5: split out compiler-rt and remove libcxxabi dep
We already did them on non-mass-rebuild llvm 6. Also, this allows
simplifying the stdenv booting.

We were missing the libcxxabi dep in compile-rt in llvm 6, so fixed that
too.
2018-06-14 19:22:15 -04:00
Will Dietz 27d716f4b5 llvm5: 5.0.1 -> 5.0.2 2018-05-04 11:03:21 -05:00
Matthew Bauer 9ee69c27c9 llvm: remove libedit from clang
clang should never need libedit. From what I understand this is only
needed by LLDB.

https://github.com/llvm-mirror/clang/search?q=libedit
2018-04-17 09:52:08 -05:00
Matthew Glazar 2505aa51a4 clang: fix install on Darwin
As of Nix 2.0, building the `user-environment` package on macOS (Darwin)
fails because LLVMgold.so is a broken symlink. Fix the issue by not
creating the symlink in the first place, since it wouldn't be used on
Darwin anyway.
2018-04-15 21:12:03 -07:00
Matthew Glazar d3d0c0196e clang: refactor post-install comments
Throughout the evolution of the Clang packages, some comments have
become misplaced. Put some of Clang's postInstall comments next to the
lines they refer to.
2018-04-15 21:10:22 -07:00
Will Dietz fa8a511260 llvmPackages_{4,5}: musl compat 2018-02-19 11:19:32 -06:00
Daniel Peebles d18af2680d Revert "clang-{4,5}: prefer python3, much friendlier for cross" 2018-01-23 10:13:07 -05:00
Will Dietz 973d4f5354 clang-{4,5}: prefer python3, much friendlier for cross 2018-01-22 17:31:37 -06:00
Vladimír Čunát 82c78b86c7 clang: mass-rebuild code cleanup 2018-01-21 15:48:35 +01:00
Vladimír Čunát a94c7ba096 Merge branch 'master' into staging
Hydra: ?compare=1428079
2018-01-21 15:47:08 +01:00
Vladimír Čunát 5fb5beb929 Merge #33948: {llvm,clang}-{4,5}: better man-pages
Don't rebuild entire projects just to get manpages.
2018-01-21 11:35:10 +01:00
Daiderd Jordan 917429233b clang: patch cmake files for lib output
Fixes cmake build issues introduced in #33342.
2018-01-16 21:46:43 +01:00
Will Dietz 514f67e3a8 clang-{4,5}: set postBuild to empty string to avoid rebuild for now 2018-01-16 14:08:59 -06:00
Will Dietz 33c132e9b3 llvm-{4,5}: don't build entire project to get the manpages
Much cheaper to build this way.

Also this gives them a different name to avoid confusion
and clutter when using `nix-env -qaP` or similar.
2018-01-16 14:08:58 -06:00
Daiderd Jordan e66a5f8862 Merge pull request #33342 from LnL7/clang-outputs
clang: add lib output
2018-01-07 09:43:38 +01:00
Daiderd Jordan 812f7714e2 clang: move libclang to separate lib output
Currently clang-unwrapped can't be used as a buildInput without also
shadowing clang/clang++ of a clang based stdenv.
2018-01-02 00:50:01 +01:00
Will Dietz e9aa0d3f0f llvm 5: 5.0.0 -> 5.0.1 2017-12-21 15:54:08 -06:00
Will Dietz fb7ebf3c93 llvm: init 5.0 2017-09-26 16:51:17 -05:00