diff options
author | Andrew Childs <lorne@cons.org.nz> | 2020-10-15 17:23:57 +0900 |
---|---|---|
committer | John Ericson <John.Ericson@Obsidian.Systems> | 2021-04-30 05:41:00 +0000 |
commit | 7869d1654517c028aa76fc1dedc9b5ac301a867a (patch) | |
tree | 28385e3d35074ace1c036e5bee5b7aa3d684059d /pkgs/development/compilers/llvm/8/lld/default.nix | |
parent | 17a8c9c4bfd9042b92b1d07d638a3dc1157b11d4 (diff) | |
download | nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar.gz nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar.bz2 nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar.lz nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar.xz nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.tar.zst nixpkgs-7869d1654517c028aa76fc1dedc9b5ac301a867a.zip |
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 db29857eb391ed002046090851a44c452b80bdbd, 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)`
Diffstat (limited to 'pkgs/development/compilers/llvm/8/lld/default.nix')
-rw-r--r-- | pkgs/development/compilers/llvm/8/lld/default.nix | 20 |
1 files changed, 13 insertions, 7 deletions
diff --git a/pkgs/development/compilers/llvm/8/lld/default.nix b/pkgs/development/compilers/llvm/8/lld/default.nix index 8009beb7bc1..696403d1bf6 100644 --- a/pkgs/development/compilers/llvm/8/lld/default.nix +++ b/pkgs/development/compilers/llvm/8/lld/default.nix @@ -1,8 +1,9 @@ { lib, stdenv +, buildLlvmTools , fetch , cmake , libxml2 -, llvm +, libllvm , version }: @@ -12,15 +13,20 @@ stdenv.mkDerivation { src = fetch "lld" "121xhxrlvwy3k5nf6p1wv31whxlb635ssfkci8z93mwv4ja1xflz"; + patches = [ + ./gnu-install-dirs.patch + ]; + nativeBuildInputs = [ cmake ]; - buildInputs = [ llvm libxml2 ]; + buildInputs = [ libllvm libxml2 ]; - outputs = [ "out" "dev" ]; + cmakeFlags = [ + "-DLLVM_CONFIG_PATH=${libllvm.dev}/bin/llvm-config${lib.optionalString (stdenv.hostPlatform != stdenv.buildPlatform) "-native"}" + ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" + ]; - postInstall = '' - moveToOutput include "$dev" - moveToOutput lib "$dev" - ''; + outputs = [ "out" "lib" "dev" ]; meta = { description = "The LLVM Linker"; |