9632 Commits

Author SHA1 Message Date
John Ericson
7dd53fe56e
Merge pull request #122778 from Ericson2314/choose-linker
treewide: Allow the linker to be chosen independently
2021-05-14 18:53:14 -04:00
John Ericson
93e6a25f50
Merge pull request #123047 from sternenseemann/usellvm-lunwind
llvmPackages_*.lldClang: pass -lunwind if exceptions are enabled
2021-05-14 18:51:34 -04:00
sternenseemann
f506019942 llvmPackages_*.lldClang: pass -lunwind if exceptions are enabled
To successfully compile C++ with useLLVM we need an unwinder and
thus to explicitly -lunwind like it has been done for the android
cross targets.
2021-05-15 00:34:50 +02:00
John Ericson
18c38f8aee treewide: All the linker to be chosen independently
This will begin the process of breaking up the `useLLVM` monolith. That
is good in general, but I hope will be good for NetBSD and Darwin in
particular.

Co-authored-by: sterni <sternenseemann@systemli.org>
2021-05-14 21:29:51 +00:00
Vladimír Čunát
1a7ef60b2f
Merge #122803: llvm*: patch to fix a test on older CPUs 2021-05-14 22:31:23 +02:00
John Ericson
49d2653653
Merge pull request #122974 from sternenseemann/lldClang-no-double-wrap
llvmPackages_*.lldClang: don't wrap bintools twice
2021-05-14 14:52:57 -04:00
sternenseemann
f7b49ea2af llvmPackages_12.lld: make sure llvm libunwind is passed
lld needs LLVM's libunwind for its headers. That libunwind is not part
of the tools scope in pkgs/development/compilers/llvm/12/default.nix,
which means that lld previously received libunwind from top-level pkgs
which of course doesn't have the required headers.

To resolve this pass libunwind from the libraries scope — platform
concerns don't really mattern as only libunwind.src is used.

libunwind was initially passed correctly, but that was removed in
e830db4320ac3b38c648d492b3d04c71a0860a54. This regression was likely
introduced accidentally.
2021-05-14 16:23:12 +02:00
sternenseemann
3eaa00879c llvmPackages_*.lldClang: don't wrap bintools twice
The bintools argument received a wrapped version of tools.bintools which
is already wrapped. Wrapped bintools twice leads to users of lldClang
being unable to find the tools which are not wrapped like ar.
2021-05-14 12:50:41 +02:00
zowoq
004f8cd986 Merge staging-next into staging 2021-05-14 16:32:43 +10:00
github-actions[bot]
bf5d8bb531
Merge master into staging-next 2021-05-14 00:58:11 +00:00
Jan Tojnar
ac6a4f7cf5
Merge branch 'staging-next' into staging 2021-05-14 01:40:09 +02:00
Sandro
6920440a69
Merge pull request #93043 from dasj19/mono6-update
mono5: 5.20.1.27 -> 5.20.1.34
2021-05-13 23:34:23 +02:00
github-actions[bot]
39e3f7c2cc
Merge master into staging-next 2021-05-13 18:32:50 +00:00
Matthias Devlamynck
ef2742bcde elm-instrument: fix build 2021-05-13 09:36:51 -07:00
Jan Tojnar
0313c77b55
Merge branch 'staging-next' into staging 2021-05-13 11:42:36 +02:00
Vladimír Čunát
ea306f6dfc
llvm*: patch to fix a test on older CPUs
- 10, 11, 12: use the upstream patch
- 9: use Luke's patch as the upstream patch won't apply
2021-05-13 10:43:45 +02:00
github-actions[bot]
a8e5ac148b
Merge master into staging-next 2021-05-13 00:56:26 +00:00
Vladimír Čunát
ba2140b657
Merge #122044: compiler-rt: Fix build by passing resource dir
Fast-forwarded from staging to staging-next.  See:
https://github.com/NixOS/nixpkgs/pull/111487#issuecomment-840088733
2021-05-12 22:55:14 +02:00
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 680b33fe37d4b6fd0bd8fe596ed438c88bfb3637)
https://github.com/NixOS/nixpkgs/pull/111487#issuecomment-840078869
2021-05-12 22:43:52 +02:00
Jan Tojnar
71fa678899
Merge branch 'staging-next' into staging 2021-05-12 14:31:36 +02:00
Vladimír Čunát
7178848064
ghdl-llvm: fix llvm output selection 2021-05-12 10:51:11 +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 a902d99422c6a522ffae7b8ad7711e23c7490d42 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
sternenseemann
4caedc060f llvmPackages_12.libunwind: Make sure we get right llvm version 2021-05-12 00:12:51 +00:00
sternenseemann
894a09dfd2 llvmPackages_7.lldClang: add libunwind to extraLibraries 2021-05-12 00:12:40 +00:00
sternenseemann
53adcfb798 llvmPackages_7.libunwind: simplify expressions
* Use LLVM_PATH instead of llvm-config
* Pass less unnecessary options to cmake
2021-05-12 00:08:02 +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
ec97081437
Merge #122554: llvm*Packages: fix output selection 2021-05-11 22:08:44 +02:00
Stéphan Kochen
3cf4c5d09b swiProlog: fix darwin build 2021-05-11 21:10:57 +02:00
github-actions[bot]
37c26a396b
Merge master into staging-next 2021-05-11 18:28:07 +00:00
John Ericson
912c8262b4
Merge pull request #117591 from s1341/android_non_prebuilt
treewide: Support aarch64-android using minimal prebuilt components
2021-05-11 12:49:53 -04:00
s1341
1e1d29c2af treewide: Support aarch64-android using minimal prebuilt components
This PR adds a new aarch64 android toolchain, which leverages the
existing crossSystem infrastructure and LLVM builders to generate a
working toolchain with minimal prebuilt components.

The only thing that is prebuilt is the bionic libc. This is because it
is practically impossible to compile bionic outside of an AOSP tree. I
tried and failed, braver souls may prevail. For now I just grab the
relevant binaries from https://android.googlesource.com/.

I also grab the msm kernel sources from there to generate headers. I've
included a minor patch to the existing kernel-headers derivation in
order to expose an internal function.

Everything else, from binutils up, is using stock code. Many thanks to
@Ericson2314 for his help on this, and for building such a powerful
system in the first place!

One motivation for this is to be able to build a toolchain which will
work on an aarch64 linux machine. To my knowledge, there is no existing
toolchain for an aarch64-linux builder and an aarch64-android target.
2021-05-11 15:39:08 +00:00
Ben Siraphob
191f50f669 z88dk: 2.0 -> 2.1 2021-05-11 19:46:01 +07:00
Vladimír Čunát
8eabe2ecc5
Merge #115235: gcc: native aarch64-darwin support 2021-05-11 12:12:04 +02:00
Vladimír Čunát
79762fcb4a
Merge #121772: gcc*: do not modify code in prePatch 2021-05-11 12:01:38 +02:00
Vladimír Čunát
6b3b7940ff
llvm*Packages: fix output selection (lib.get*) 2021-05-11 10:45:11 +02:00
Jan Tojnar
7982550ac4
Merge branch 'staging-next' into staging 2021-05-11 09:09:10 +02:00
Ivan Babrou
4aa95e3312 gcc: native aarch64-darwin support 2021-05-10 19:07:30 -07:00
Jonathan Ringer
4bb359aa99 rustc: 1.52.0 -> 1.52.1 2021-05-10 16:00:44 -07:00
github-actions[bot]
61fa3fdde8
Merge master into staging-next 2021-05-10 18:28:17 +00:00
Vladimír Čunát
09a56d71bb
Merge #121759: gfortran11, gnat11: init at 11.1.0 2021-05-10 19:52:49 +02:00
Jan Tojnar
594a885912
Merge branch 'staging-next' into staging 2021-05-10 09:45:47 +02:00
John Ericson
8629936f82 compiler-rt: Revert passing COMPILER_RT_OS_DIR and not symlinking libs
In 7869d1654517c028aa76fc1dedc9b5ac301a867a 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
Vladimír Čunát
5663b2b2d3
Merge branch 'master' into staging-next
(a trivial conflict in transmission)
2021-05-09 09:31:55 +02:00
R. RyanTM
b4833b346c gleam: 0.15.0 -> 0.15.1 2021-05-09 14:37:43 +09:00
Jonathan Ringer
981170a368 ispc: fix llvm build 2021-05-08 18:13:45 -07:00
Jonathan Ringer
7f1726ffca zig: fix llvm build 2021-05-08 18:13:45 -07:00
Jonathan Ringer
fbedc3d54c spirv-llvm-translator: fix llvm build 2021-05-08 18:13:45 -07:00