Commit Graph

107 Commits

Author SHA1 Message Date
John Ericson
22da550728
Fast-forward PR #122399 from staging to staging-next
compiler-rt: Revert passing `COMPILER_RT_OS_DIR` and not symlinking libs
(cherry picked from commit 680b33fe37)
https://github.com/NixOS/nixpkgs/pull/111487#issuecomment-840078869
2021-05-12 22:43:52 +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
John Ericson
37194a325d treewide: Try to make a few bootstrapping things more consistent
- Introduce `preLibcCrossHeaders` to bootstrap libgcc and compiler-rt
  the same way.

- Organize LLVM bintools as `bintools{-unwrapped,,NoLibc}` for
  consistency with GNU Binutils and Apple's cctools.

- Do Android changes for all `llvmPackages` for consistency.

- Improve the way the default GCC and LLVM versions are selected.
2021-05-12 00:14:56 +00:00
John Ericson
e0d3c9d031 llvmPackages*.libcxx*: Always use the attribute name for pname
This decision was made in a902d99422 but
just for LLVM 12. Now we apply it consitently.
2021-05-12 00:14:56 +00:00
John Ericson
894f0c6ec8 llvmPackages: Always put libunwind before openmp
This keeps the "main bootstrap" together.
2021-05-12 00:13:13 +00:00
John Ericson
cf02b24813 Merge remote-tracking branch 'upstream/staging-next' into staging 2021-05-11 22:30:46 +00:00
Vladimír Čunát
6b3b7940ff
llvm*Packages: fix output selection (lib.get*) 2021-05-11 10:45:11 +02:00
John Ericson
8629936f82 compiler-rt: Revert passing COMPILER_RT_OS_DIR and not symlinking libs
In 7869d16545 I got rid of the symlinking
by forcing `COMPILER_RT_OS_DIR` to always be the empty string. I thought
this was good because it just make compiler-rt be installed in a normal
way.

However, various LLVM tools expect the `COMPILER_RT_OS_DIR` to be set
normally, and fail to find things when they aren't in the expected lib
subdir.

Maybe it would be best to patch that too in the long term, but for now
we just undo this change.
2021-05-09 22:52:09 +00:00
John Ericson
fc7a998748 compiler-rt: Fix build by passing resource dir
Before, clang was able to find some headers with a relative path to the
`-B` flag pointing near the unwrapped clang binary. But with multiple
outputs that doesn't work, so we use a "resource directory" as it done
later in the bootstrap.
2021-05-07 16:39:19 +00:00
misuzu
23ab123640 llvm_11: disable failing 'dependent-libraries.test' on armv7l 2021-05-04 16:24:31 +03: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
sternenseemann
081b9423d4 llvmPackages*: fix paths to libcxx-0001-musl-hacks.patch
This patches are included from libcxx and libcxxabi when
stdenv.hostPlatform.isMusl. After #117433 the patchs to that patch
wasn't adjusted for the new structure, likely because it doesn't come up
during normal eval. This fixes (among other attribute paths):

* pkgsMusl.llvmPackages_12.libcxxabi
* pkgsMusl.llvmPackages_12.libcxx
* pkgsMusl.llvmPackages_11.libcxxabi
* pkgsMusl.llvmPackages_11.libcxx
* pkgsMusl.llvmPackages_10.libcxxabi
* pkgsMusl.llvmPackages_10.libcxx
* pkgsMusl.llvmPackages_9.libcxxabi
* pkgsMusl.llvmPackages_9.libcxx
* pkgsMusl.llvmPackages_8.libcxxabi
* pkgsMusl.llvmPackages_8.libcxx
* pkgsMusl.llvmPackages_7.libcxxabi
* pkgsMusl.llvmPackages_7.libcxx
* pkgsMusl.llvmPackages_6.libcxxabi
* pkgsMusl.llvmPackages_6.libcxx
* pkgsMusl.llvmPackages_5.libcxxabi
* pkgsMusl.llvmPackages_5.libcxx

Only evaluation was tested, not compilation though.
2021-04-15 13:24:04 +02:00
Tyson Whitehead
9f7fb75168
llvm_11: Correct path for TLI-musl patch 2021-04-14 00:29:29 -04:00
John Ericson
0ae1182489 llvmPackages_*.libunwind: Move into own directory
I expect to soon give it some patches that would go in there too, but
either way it's good to match the others.
2021-03-26 05:06:15 +00:00
John Ericson
19a974945b llvmPackages: Organize files
Always do pkg/default.nix not pkg.nix; use directories to avoid
prefixing patches and other files.
2021-03-24 05:02:50 +00:00
Andrew Childs
2a588dad4e llvmPackages_{10,11}.compiler-rt: restrict build to current arch
Workaround for build failure after adding mandatory -arch
argument. Nixpkgs targets a single architecture, so this saves a small
amount of wasted build effort.

See https://github.com/NixOS/nixpkgs/pull/114817#issuecomment-802709527
2021-03-19 20:23:24 +00:00
Andrew Childs
8cc0010f0c llvmPackages_*.compiler-rt: use darwinArch 2021-03-19 20:23:23 +00:00
Sandro
dc00d91809
Merge pull request #111701 from r-burns/compiler-rt
llvmPackages_11.compiler-rt: fix build on darwin
2021-03-04 03:50:29 +01:00
Ivan Babrou
d85965dcf5 llvmPackages_11.libcxx: backport block.h fix from llvm12
As a concrete example, this fixes graphviz compilation:

* https://gitlab.com/graphviz/graphviz/-/issues/1785
2021-02-28 10:19:14 -08:00
Ivan Babrou
f78f6cd339 llvmPackages_11.openmp: make it compile on aarch64-darwin 2021-02-26 09:24:00 -08:00
Gabor Greif
3468130c1e llvmPackages_11: 11.1.0rc2 -> 11.1.0 2021-02-18 13:11:24 +01:00
Gabor Greif
63037b0348 llvmPackages_11: 11.0.1 -> 11.1.0rc2 2021-02-17 21:56:15 +01:00
Emery Hemingway
35e12d8343 Revert "llvm_11: patch to recognize Genode platform triples"
Pushed to the wrong remote :(

This reverts commit 9ddb9c0021.
2021-02-12 10:16:55 +01:00
Emery Hemingway
9ddb9c0021 llvm_11: patch to recognize Genode platform triples
This patch does not add Genode support to the Clang frontend or
LLVM runtime libraries, only the LLVM code generator and optimizer.
2021-02-12 10:12:41 +01:00
Ryan Burns
ef8a3d9f83 llvmPackages_11.compiler-rt: fix build on darwin
Needed to prevent faulty i686 codegen on x86_64. We're doing this
already for the older llvm packages, so not sure why 11 never had this.
2021-02-02 20:45:43 -08:00
John Ericson
0710308402 clang, cc-wrapper: Move --gcc-toolchain logic into CC wrapper
Take 2, after #94582 had to be reverted.

This reverts commit ac03cfa3c5.
2021-01-24 15:49:32 -05:00
Gabor Greif
5105bf4b2e
llvm_{5,6,8..11}: fix missing lib from stdenv.lib -> lib (#110643)
Co-authored-by: Sandro <sandro.jaeckel@gmail.com>
2021-01-24 01:31:45 +01:00
Christian Kögler
266f20d886 llvmPackages_11: Fix cross compilation 2021-01-23 18:03:24 +01:00
Ben Siraphob
acc5f7b18a pkgs/development/compilers: stdenv.lib -> lib 2021-01-23 08:57:37 +07:00
Jörg Thalheim
1881e81e3c
Merge pull request #103846 from kampka/llvm_11_musl
llvm_11: Disable checks on musl libc hosts
2021-01-18 20:11:55 +00:00
Gabor Greif
9d1816e29e
llvmPackages_11: 11.0.0 -> 11.0.1 2021-01-09 21:28:27 +01:00
github-actions[bot]
581059aed4
Merge staging-next into staging 2021-01-04 00:57:38 +00:00
John Ericson
f52263ced0 treewide: Start to break up static overlay
We can use use `stdenv.hostPlatform.isStatic` instead, and move the
logic per package. The least opionated benefit of this is that it makes
it much easier to replace packages with modified ones, as there is no
longer any issue of overlay order.

CC @FRidh @matthewbauer
2021-01-03 19:18:16 +00:00
Ben Siraphob
3ae5e6ce03 treewide: remove enableParallelBuilding = true if using cmake 2021-01-03 18:37:40 +07:00
Vladimír Čunát
ac03cfa3c5
Revert "Merge #94582: clang, cc-wrapper: Move --gcc-toolchain logic..."
This reverts commit 0f25eb3e7d, reversing
changes made to df91ae1ac0.

These toolchain changes are too problematic, so reverting for now; see
https://github.com/NixOS/nixpkgs/pull/107086#issuecomment-749196366
2020-12-21 22:27:54 +01:00
John Ericson
11302dc1cf clang, cc-wrapper: Move --gcc-toolchain logic into CC wrapper 2020-11-29 16:18:01 +00:00
Christian Kampka
86732c47f8
llvm_11: Disable checks on musl libc hosts 2020-11-14 23:10:14 +01:00
Jan Tojnar
a821be7531
Merge branch 'master' into staging-next 2020-11-05 09:42:47 +01:00
Michael Weiss
58c76844d7
llvm_11: Add myself as maintainer
Because I maintain Chromium which always requires the most recent LLVM
release (would be good to get notified on any PRs/issues, especially
since I seem to end up merging most of the PRs anyway).

See #100725.
2020-11-04 13:23:08 +01:00
Frederik Rietdijk
470f05cb5d Merge staging-next into staging 2020-11-03 12:06:41 +01:00
Pavol Rusnak
2c931312ce treewide: simplify rev/repo arguments in src
+ use fetchFromGithub where possible
2020-11-01 23:02:24 -08: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
Vladimír Čunát
c778945806
Revert "Merge #101508: libraw: 0.20.0 -> 0.20.2"
I'm sorry; I didn't notice it contained staging commits.

This reverts commit 17f5305b6c, reversing
changes made to a8a018ddc0.
2020-10-25 09:41:51 +01:00
Andrew Childs
722d02a720 treewide: move fixDarwinDylibNames to nativeBuildInputs
This hook runs at build time and depends on executing
install_name_tool from binutils.
2020-10-21 13:26:53 +09:00
Gabor Greif
35f62abdf8
lldb_{10, 11}: polish the cmakeFlags (#100070)
disable RTTI in a more idiomatic way
2020-10-16 19:42:37 +02:00
Michael Weiss
86a4a50e10
Merge pull request #99984 from ggreif/darwin-llvm11
llvmPackages_11: 11.0.0rc5 -> 11.0.0 and various fixes/improvements:
- llvmPackages_11 now compiles on Darwin
- libcxx now compiles on Linux
- Ported #91293 to 11.0.0
- Try to anticipate #100388
2020-10-16 14:57:33 +02:00
Holger Wünsche
6948875e73
llvmPackages_11.compiler-rt: enable support for i486 i586 i686
compiler-rt (and as a result clang) can't be build for i686 (as noticed here: #99984).
The patch adds the required variables and should result in the same behavior as in the nixpkgs-llvm10. It essentially forces to use i386 buildins when using i486, i586 or i686, which are not supported.

Fixes #100392
2020-10-16 14:35:22 +02:00
Gabor Greif
7a30df9225 clang_11: forward-port #91293 2020-10-15 15:00:55 +02:00
Gabor Greif
cffb7cfbf7 llvmPackages_11: 11.0.0rc5 -> 11.0.0
https://lists.llvm.org/pipermail/release-testers/2020-October/001377.html
https://lists.llvm.org/pipermail/llvm-announce/2020-October/000089.html

Fixes:
 - builds on Darwin
 - builds `libcxx` on Linux
2020-10-14 21:18:26 +02:00
TredwellGit
03dd1b355b
llvm_11: link to the llvm compiler-rt share directory from the wrapper (#100190)
A port of #85925 for LLVM 11 to enable CFI for Chromium.

This is required for features such as `-fsanitize=cfi` that (by default)
load the file `…/resource-root/share/cfi_blacklist.txt`.
2020-10-11 14:42:56 +02:00
Michael Weiss
72cc4d2f0a
llvmPackages_11.clang-unwrapped: Inherit clang-tools-extra_src
So that it can be accessed via llvmPackages_11.clang-unwrapped.clang-tools-extra_src
(e.g. useful for nix-prefetch-url).
2020-10-05 11:52:34 +02:00
Gabor Greif
a64eabfe7c llvm_11: 11.0.0rc3 -> 11.0.0rc5 2020-10-01 01:23:54 +02:00
Gabor Greif
1c0cbf8aea llvm_11: 11.0.0rc2 -> 11.0.0rc3 2020-10-01 01:16:36 +02:00
Michael Weiss
4a82621491
llvm_11: Enable build-id when linking libLLVM shared libs
This is used by mesa.drivers (still on LLVM 9) as a cache key. I've
ported that change to LLVM 11 to test it and so that it doesn't get lost
in future versions. Credit for the change goes to David McFarland.
See #93946 for details.

Co-Authored-By: David McFarland <corngood@gmail.com>
2020-08-26 14:30:46 +02:00
Gabor Greif
df267a4cca
llvm_11: 11.0.0rc1 -> 11.0.0rc2
http://lists.llvm.org/pipermail/release-testers/2020-August/001321.html
2020-08-25 19:42:17 +02:00
Gabor Greif
0a8334d5a0
llvm_11: init at 11.0.0rc1
http://lists.llvm.org/pipermail/release-testers/2020-July/001305.html

TODO: Enable Polly.

Co-authored-by: conferno <conferno@camfex.cz>
2020-08-25 19:42:12 +02:00
Michael Weiss
28f2797a81
llvm_11: Copy all files from llvmPackages_10
This is simply the result of:
cp -r pkgs/development/compilers/llvm/10 pkgs/development/compilers/llvm/11/
2020-08-25 19:42:08 +02:00