diff options
author | Adam Joseph <adam@westernsemico.com> | 2023-04-16 16:59:18 -0700 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2023-04-19 01:06:08 +0000 |
commit | 2e77eb8190809acb24953ddc7806fec80fa977e3 (patch) | |
tree | 72acf332a56b03302592d260672f1709fb3410ed /pkgs/development/compilers/llvm/15/clang | |
parent | ac413afd088932a344ba4499d1596675eeb65e95 (diff) |
clang_15: fix build!=(host==target) cross compilation
clang_15 appears to not cross compile in the build!=(host==target) case due to two problems, which this commit fixes: - It trips -Wmaybe-uninitialized on recent gcc, but only in the build!=host case (likely due to #ifdefs) - Two more buildPlatform tools have been added: clang-tidy-confusable-chars-gen and clang-pseudo-gen Co-authored-by: Rahul Butani <rrbutani@users.noreply.github.com>
Diffstat (limited to 'pkgs/development/compilers/llvm/15/clang')
-rw-r--r-- | pkgs/development/compilers/llvm/15/clang/default.nix | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/pkgs/development/compilers/llvm/15/clang/default.nix b/pkgs/development/compilers/llvm/15/clang/default.nix index 4963d0ecce601..894db1a4975f6 100644 --- a/pkgs/development/compilers/llvm/15/clang/default.nix +++ b/pkgs/development/compilers/llvm/15/clang/default.nix @@ -36,9 +36,14 @@ let "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ "-DLLVM_TABLEGEN_EXE=${buildLlvmTools.llvm}/bin/llvm-tblgen" "-DCLANG_TABLEGEN=${buildLlvmTools.libclang.dev}/bin/clang-tblgen" + # Added in LLVM15: + # `clang-tidy-confusable-chars-gen`: https://github.com/llvm/llvm-project/commit/c3574ef739fbfcc59d405985a3a4fa6f4619ecdb + # `clang-pseudo-gen`: https://github.com/llvm/llvm-project/commit/cd2292ef824591cc34cc299910a3098545c840c7 + "-DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${buildLlvmTools.libclang.dev}/bin/clang-tidy-confusable-chars-gen" + "-DCLANG_PSEUDO_GEN=${buildLlvmTools.libclang.dev}/bin/clang-pseudo-gen" ]; patches = [ @@ -60,6 +65,12 @@ let outputs = [ "out" "lib" "dev" "python" ]; + env = lib.optionalAttrs (stdenv.buildPlatform != stdenv.hostPlatform) { + # The following warning is triggered with (at least) gcc >= + # 12, but appears to occur only for cross compiles. + NIX_CFLAGS_COMPILE = "-Wno-maybe-uninitialized"; + }; + postInstall = '' ln -sv $out/bin/clang $out/bin/cpp @@ -80,7 +91,7 @@ let patchShebangs $python/bin mkdir -p $dev/bin - cp bin/clang-tblgen $dev/bin + cp bin/{clang-tblgen,clang-tidy-confusable-chars-gen,clang-pseudo-gen} $dev/bin ''; passthru = { |