about summary refs log tree commit diff
path: root/pkgs/development/compilers/llvm/14
AgeCommit message (Collapse)AuthorFilesLines
13 daysclang-tools: move into llvmPackagesYueh-Shun Li1-0/+3
2024-06-16llvmPackages_{12,13,14,15,16,17,18,git}: Allow overriding dependenciesPeter Waller1-2/+7
... consistently. Further to #307211, allow overriding arguments through llvmPackages.override. This makes it possible to override any dependency of LLVM or clang by overriding it on `llvmPackages.override { <dependency> = ...; }`. This is useful in development or customization where sometimes it is desirable to turn features on or off. Without this patch the only way to for example override ncurses was to do `overriddenLLVM = llvmPackages.llvm.override { ncurses }`, but then you would have to thread `overriddenLLVM` as dependencies into clang and other packages, which results in quite a difficult expression to write correctly in cross compilation scenarios. Signed-off-by: Peter Waller <p@pwaller.net>
2024-05-25llvmPackages_{12,13,14,15,16,17,18,git}: Simplify argument passthroughPeter Waller1-18/+12
This patch is not intended to introduce any functional change. drvPaths should remain unchanged; if they do change, it's a bug. Prior to this patch, a set of packages gets passed through from the llvmPackages top level function to the individual packages via callPackages, which is a newScope constructed with some specific arguments. As it stands this makes it harder to override dependencies of LLVM; for example take ncurses. If you want to override it, it is an argument to libllvm, however, if you override libllvm you then have to write a lot of code to have correctly overridden clang, given how llvmPackages is previously composed (out of tools and libraries). Instead, I propose to make sure that all the dependencies of all llvmPackages are listed as an inputs to the top leve llvmPackages, and then the resulting newScope will contain all of them. This in turn will make `llvmPackages.override` work as expected for any input to each of the llvm packages. We'll achieve this by first simplifying the code a bit and ensuring that all arguments to llvmPackage get forwarded to all packages (via `{}@args`). This represents a chance to simplify things a bit so I propose doing it in two steps: 1. This patch: Simplify argument pass through. 2. (Later): Ensure all arguments to each llvm package are listed in the top level `llvm/X/default.nix`. Once the second patch lands, this means that `(llvmPackages.override { ncurses = myncurses; }).clang` would consist of a clang whose libllvm had the ncurses overridden. This is not the case prior to this patch. Signed-off-by: Peter Waller <p@pwaller.net>
2024-04-22Merge staging-next into staginggithub-actions[bot]1-2/+2
2024-04-21llvmPackages_{12,13,14,15,16,17,18,git}: use fixpoint instead of recRandy Eckenrode1-2/+2
Currently, overriding llvmPackages.libllvm doesn’t work correctly. The original version of libllvm will also be built because it is referenced by libclang. Switching to the fixpoint allows the override to be propagated to clang as expected. This will be needed for future Darwin stdenv bootstrap improvements.
2024-04-13llvmPackages_{12,13,14,15,16,17,18,git}: use common llvmTristan Ross2-325/+21
2024-04-13llvmPackages_{12,13,14,15,16,17,18,git}: use common clangTristan Ross2-132/+13
2024-04-13Merge pull request #303449 from ExpidusOS/feat/llvm-git-commonify-libcxxWeijia Wang2-143/+17
llvmPackages_{12,13,14,15,16,17,18,git}: use common libcxx
2024-04-13Merge pull request #303479 from ExpidusOS/feat/llvm-git-commonify-compiler-rtWeijia Wang2-148/+38
llvmPackages_{12,13,14,15,16,17,18,git}: use common compiler-rt
2024-04-12llvmPackages_{12,13,14,15,16,17,18,git}: use common libcxxTristan Ross2-143/+17
2024-04-12llvmPackages_{12,13,14,15,16,17,18,git}: use common lldTristan Ross2-59/+5
2024-04-12Merge pull request #303447 from ExpidusOS/feat/llvm-git-commonify-libunwindWeijia Wang2-48/+4
llvmPackages_{12,13,14,15,16,17,18,git}: use common libunwind
2024-04-12Merge pull request #303448 from ExpidusOS/feat/llvm-git-commonify-openmpWeijia Wang2-70/+5
llvmPackages_{12,13,14,15,16,17,18,git}: use common openmp
2024-04-12llvmPackages_{12,13,14,15,16,17,18,git}: use common compiler-rtTristan Ross2-148/+38
2024-04-12llvmPackages_{12,13,14,15,16,17,18,git}: use common openmpTristan Ross2-70/+5
2024-04-11llvmPackages_{12,13,14,15,16,17,18,git}: use common libunwindTristan Ross2-48/+4
2024-04-04lib: add xoredef1-5/+2
This gets clumsily reimplemented in various places, to no useful end.
2024-03-21llvmPackages_{12,13,14,15,16,17,git}.libcxx: add LIBCXXABI_USE_COMPILER_RT=ONannalee1-0/+1
since https://github.com/NixOS/nixpkgs/pull/292043 libcxxabi is built using the same compiler wrapper as libcxx and thus uses the `-rtlib=compiler-rt`. Adding the `LIBCXXABI_USE_COMPILER_RT=ON` at build time ensures that the compiler-rt libraries provided at link time resolving symbol errors for aarch64 pkgLLVM.libcxx build https://hydra.nixos.org/build/253162977
2024-03-19Merge remote-tracking branch 'origin/master' into staging-nextMartin Weinelt1-0/+1
Conflicts: - pkgs/development/python-modules/sphinx-autobuild/default.nix
2024-03-19treewide: add meta.mainProgram to packages with a single binarystuebinm1-0/+1
The nixpkgs-unstable channel's programs.sqlite was used to identify packages producing exactly one binary, and these automatically added to their package definitions wherever possible.
2024-03-11llvmPackages_{12,13,14,15,16,17,git}.{libcxx,libcxxabi}: merge libcxxabi ↵a-n-n-a-l-e-e6-223/+100
into libcxx (#292043) - merge libcxxabi into libcxx for LLVM 12, 13, 14, 15, 16, 17, and git. - remove the link time workaround `-lc++ -lc++abi` from 58 packages as it is no longer required. - fixes https://github.com/NixOS/nixpkgs/issues/166205 - provides alternative fixes for. https://github.com/NixOS/nixpkgs/issues/269548 https://github.com/NixOS/nix/issues/9640 - pkgsCross.x86_64-freebsd builds work again This change can be represented in 3 stages 1. merge libcxxabi into libcxx -- files: pkgs/development/compilers/llvm/[12, git]/{libcxx, libcxxabi} 2. update stdenv to account for merge -- files: stdenv.{adapters, cc.wrapper, darwin} 3. remove all references to libcxxabi outside of llvm (about 58 packages modified) ### merging libcxxabi into libcxx - take the union of the libcxxabi and libcxx cmake flags - eliminate the libcxx-headers-only package - it was only needed to break libcxx <-> libcxxabi circular dependency - libcxx.cxxabi is removed. external cxxabi (freebsd) will symlink headers / libs into libcxx. - darwin will re-export the libcxxabi symbols into libcxx so linking `-lc++` is sufficient. - linux/freebsd `libc++.so` is a linker script `LINK(libc++.so.1, -lc++abi)` making `-lc++` sufficient. - libcxx/default.nix [12, 17] are identical except for patches and `LIBCXX_ADDITIONAL_LIBRARIES` (only used in 16+) - git/libcxx/defaul.nix does not link with -nostdlib when useLLVM is true so flag is removed. this is not much different than before as libcxxabi used -nostdlib where libcxx did not, so libc was linked in anyway. ### stdenv changes - darwin bootstrap, remove references to libcxxabi and cxxabi - cc-wrapper: remove c++ link workaround when libcxx.cxxabi doesn't exist (still exists for LLVM pre 12) - adapter: update overrideLibcxx to account for a pkgs.stdenv that only has libcxx ### 58 package updates - remove `NIX_LDFLAGS = "-l${stdenv.cc.libcxx.cxxabi.libName}` as no longer needed - swift, nodejs_v8 remove libcxxabi references in the clang override https://github.com/NixOS/nixpkgs/pull/292043
2024-02-24llvmPackages_*.llvm: disable trivialautovarinit hardening flagRobert Scott1-0/+2
2024-02-23Merge branch 'master' into staging-nextWeijia Wang3-3/+3
2024-02-23llvmPackages: move patches to proper folders (#287092)Weijia Wang3-3/+3
* llvmPackages: move clang-*-LLVMgold-path.patch to common/clang * llvmPackages: move exegesis-force-bdver2.patch to 9/llvm * llvmPackages: move llvm-config-link-static.patch to common/llvm * llvmPackages: move TLI-musl.patch to common/llvm * llvmPackages: move libcxx-0001-musl-hacks.patch to common/llvm
2024-02-19llvm_14: backport fix for python crashes on aarch64-linuxMartin Weinelt1-0/+6
This fixes the tests of numba on aarch64-linux.
2024-01-21Merge pull request #274089 from risicle/ris-zerocallusedregsRobert Scott1-1/+1
cc-wrapper: add `zerocallusedregs` hardening flag, add `pkgsExtraHardening` package set
2024-01-20Merge master into staging-nextgithub-actions[bot]1-0/+3
2024-01-20cc-wrapper: add zerocallusedregs hardening flagRobert Scott1-1/+1
this uses the value `used-gpr` which seems to be a commonly chosen value for general use
2024-01-20llvmPackages.compiler-rt: mark broken for RISC-V GCCAlyssa Ross1-0/+3
c33c7c3d5fa9 ("clang_11: Fix RISC-V builds for compiler-rt. (#135718)") already marked tihs as broken for LLVM 11, but didn't apply the same change to other affected LLVM versions.
2024-01-13llvmPackages_*.clangUseLLVM: add libunwind to lib search pathSharzyL1-0/+1
2024-01-11llvm: Avoid cross compiling if the build platform can execute host binariesSameer Rahmani1-1/+1
2024-01-04Merge branch 'master' into staging-nextVladimír Čunát2-50/+1
2024-01-04llvmPackages_{14,15,16,17,git}.lldb: unify lua and python path patchSemion Nadezhdin2-50/+1
2024-01-03Merge branch 'master' into staging-nextWeijia Wang1-38/+20
2023-12-22Merge pull request #273788 from sternenseemann/llvmgold-clang-16-and-aboveBernardo Meurer1-1/+1
2023-12-22lldb_14: fix broken bindings againWeijia Wang1-38/+20
2023-12-19pkgsLLVM.llvmPackages.compiler-rt: fix for RISC-VAlyssa Ross1-2/+4
compiler-rt includes <linux/unistd.h> on RISC-V. This only seems to be necessary for useLLVM, but looking at the source code I can't see any reason for that, so probably in the non-useLLVM case it just gets propagated in.
2023-12-12llvmPackages_*: update name for LLVMgold patch for clang >= 11sternenseemann1-1/+1
It no longer applies to clang >= 16, let's make the name correspond to the versions it applies to.
2023-11-21llvmPackages: Remove dead codeArtturin2-2/+2
for hygiene Run `deadnix . --edit` `gccForLibs` is an argument used by multi.nix but it's an argument to cc-wrapper, not to llvmPackages. `@args` in `llvm/default.nix` was accidentally added in 4badff49fda90fba01684d2f19c31442688252b4 There are no uses of `@` therefore these changes are safe.
2023-11-21llvmPackages_{13,14}: Use releaseInfo and monorepoSrcArtturin1-16/+39
Doing the same thing as was done in the initial adding of `monorepoSrc` to `llvmPackages_15` d231d18e4aa5e1d00f86b4f484f9e4344538e3ea
2023-11-21llvmPackages: Dedupe `llvm_meta`Artturin1-16/+1
2023-09-08treewide: replace -DCMAKE_BUILD_TYPE in cmakeFlags with cmakeBuildTypeSandro Jäckel1-1/+2
2023-09-07Merge staging-next into staginggithub-actions[bot]1-1/+2
2023-09-06Merge pull request #236203 from SharzyL/llvm_no_extendArtturi1-1/+2
2023-09-06Merge pull request #253533 from Artturin/llvmusesuballArtturi1-7/+8
2023-09-06Merge pull request #253573 from Artturin/llvmdedup2Artturi2-17/+1
2023-09-06llvmPackages.lldb: remove unnecessary inheritArtturin1-1/+1
release_version is provided with callPackage
2023-09-06llvmPackages.libcxxabi: dedupe `wasm.patch`Artturin2-17/+1
found with fdupes ``` pkgs/development/compilers/llvm/8/libcxxabi/wasm.patch pkgs/development/compilers/llvm/13/libcxxabi/wasm.patch pkgs/development/compilers/llvm/14/libcxxabi/wasm.patch pkgs/development/compilers/llvm/10/libcxxabi/wasm.patch pkgs/development/compilers/llvm/15/libcxxabi/wasm.patch pkgs/development/compilers/llvm/12/libcxxabi/wasm.patch pkgs/development/compilers/llvm/9/libcxxabi/wasm.patch pkgs/development/compilers/llvm/16/libcxxabi/wasm.patch pkgs/development/compilers/llvm/git/libcxxabi/wasm.patch pkgs/development/compilers/llvm/11/libcxxabi/wasm.patch ```
2023-09-06llvmPackages.bintools-unwrapped: deduplicateArtturin2-36/+1
2023-09-06llvmPackages.lldb: use substituteAllArtturin1-6/+7