diff options
author | Bernardo Meurer <bernardo@meurer.org> | 2023-12-22 20:06:56 -0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-12-22 20:06:56 -0300 |
commit | 8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26 (patch) | |
tree | 0b24ecbe0433a2e3b4fdde2f0859e7920b3c515a /pkgs/development/compilers/llvm | |
parent | 0e08e6cad3a4e464c637aab31a5aa11c72e2f890 (diff) | |
parent | 3e8355df84c7352c908bfbe3ac0231c9d6ea24a2 (diff) | |
download | nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar.gz nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar.bz2 nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar.lz nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar.xz nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.tar.zst nixlib-8e5a5551e8eb869a8bf7e737f5e97fb5a6ad9d26.zip |
Merge pull request #273788 from sternenseemann/llvmgold-clang-16-and-above
Diffstat (limited to 'pkgs/development/compilers/llvm')
-rw-r--r-- | pkgs/development/compilers/llvm/11/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/12/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/13/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/14/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/15/clang/default.nix | 2 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/16/clang/default.nix | 11 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/16/llvm/default.nix | 3 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/17/clang/default.nix | 11 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/17/llvm/default.nix | 10 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang-11-15-LLVMgold-path.patch (renamed from pkgs/development/compilers/llvm/clang-11-12-LLVMgold-path.patch) | 0 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch | 14 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/git/clang/default.nix | 11 | ||||
-rw-r--r-- | pkgs/development/compilers/llvm/git/llvm/default.nix | 9 |
13 files changed, 45 insertions, 34 deletions
diff --git a/pkgs/development/compilers/llvm/11/clang/default.nix b/pkgs/development/compilers/llvm/11/clang/default.nix index a4fe7199e080..0e61930f1c0e 100644 --- a/pkgs/development/compilers/llvm/11/clang/default.nix +++ b/pkgs/development/compilers/llvm/11/clang/default.nix @@ -50,7 +50,7 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch (substituteAll { - src = ../../clang-11-12-LLVMgold-path.patch; + src = ../../clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/pkgs/development/compilers/llvm/12/clang/default.nix b/pkgs/development/compilers/llvm/12/clang/default.nix index 7ecd4efc0837..c46776d38ac3 100644 --- a/pkgs/development/compilers/llvm/12/clang/default.nix +++ b/pkgs/development/compilers/llvm/12/clang/default.nix @@ -47,7 +47,7 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch (substituteAll { - src = ../../clang-11-12-LLVMgold-path.patch; + src = ../../clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/pkgs/development/compilers/llvm/13/clang/default.nix b/pkgs/development/compilers/llvm/13/clang/default.nix index a070e64c7ddd..6604ae0efc3f 100644 --- a/pkgs/development/compilers/llvm/13/clang/default.nix +++ b/pkgs/development/compilers/llvm/13/clang/default.nix @@ -43,7 +43,7 @@ let ./revert-malloc-alignment-assumption.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-12-LLVMgold-path.patch; + src = ../../clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/pkgs/development/compilers/llvm/14/clang/default.nix b/pkgs/development/compilers/llvm/14/clang/default.nix index 976ff7580ac3..9f0da7a9f46c 100644 --- a/pkgs/development/compilers/llvm/14/clang/default.nix +++ b/pkgs/development/compilers/llvm/14/clang/default.nix @@ -46,7 +46,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-12-LLVMgold-path.patch; + src = ../../clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/pkgs/development/compilers/llvm/15/clang/default.nix b/pkgs/development/compilers/llvm/15/clang/default.nix index 894db1a4975f..c49d6368cb97 100644 --- a/pkgs/development/compilers/llvm/15/clang/default.nix +++ b/pkgs/development/compilers/llvm/15/clang/default.nix @@ -52,7 +52,7 @@ let ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch (substituteAll { - src = ../../clang-11-12-LLVMgold-path.patch; + src = ../../clang-11-15-LLVMgold-path.patch; libllvmLibdir = "${libllvm.lib}/lib"; }) ]; diff --git a/pkgs/development/compilers/llvm/16/clang/default.nix b/pkgs/development/compilers/llvm/16/clang/default.nix index b801bdda5292..5f28e810f603 100644 --- a/pkgs/development/compilers/llvm/16/clang/default.nix +++ b/pkgs/development/compilers/llvm/16/clang/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand -, cmake, ninja, libxml2, libllvm, version, python3 +, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false @@ -51,11 +51,10 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch - # FIMXE: do we need this patch? - # (substituteAll { - # src = ../../clang-11-12-LLVMgold-path.patch; - # libllvmLibdir = "${libllvm.lib}/lib"; - # }) + (substituteAll { + src = ../../clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${libllvm.lib}/lib"; + }) ]; postPatch = '' diff --git a/pkgs/development/compilers/llvm/16/llvm/default.nix b/pkgs/development/compilers/llvm/16/llvm/default.nix index 9994076bbdab..a6faf9fd635d 100644 --- a/pkgs/development/compilers/llvm/16/llvm/default.nix +++ b/pkgs/development/compilers/llvm/16/llvm/default.nix @@ -325,7 +325,8 @@ in "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (false) [ + ] ++ optionals enableGoldPlugin [ + # For LLVMgold plugin "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" diff --git a/pkgs/development/compilers/llvm/17/clang/default.nix b/pkgs/development/compilers/llvm/17/clang/default.nix index a576c07d3661..3184437830a2 100644 --- a/pkgs/development/compilers/llvm/17/clang/default.nix +++ b/pkgs/development/compilers/llvm/17/clang/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand -, cmake, ninja, libxml2, libllvm, version, python3 +, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false @@ -52,11 +52,10 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch - # FIMXE: do we need this patch? - # (substituteAll { - # src = ../../clang-11-12-LLVMgold-path.patch; - # libllvmLibdir = "${libllvm.lib}/lib"; - # }) + (substituteAll { + src = ../../clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${libllvm.lib}/lib"; + }) ]; postPatch = '' diff --git a/pkgs/development/compilers/llvm/17/llvm/default.nix b/pkgs/development/compilers/llvm/17/llvm/default.nix index 3d05837d45da..b38fef333135 100644 --- a/pkgs/development/compilers/llvm/17/llvm/default.nix +++ b/pkgs/development/compilers/llvm/17/llvm/default.nix @@ -8,8 +8,7 @@ , python3 , python3Packages , libffi -# TODO: Gold plugin on LLVM16 has a severe memory corruption bug: https://github.com/llvm/llvm-project/issues/61350. -, enableGoldPlugin ? false +, enableGoldPlugin ? true , libbfd , libpfm , libxml2 @@ -66,8 +65,8 @@ let else python3; in - assert (lib.assertMsg (!enableGoldPlugin) "Gold plugin cannot be enabled on LLVM16 due to a upstream issue: https://github.com/llvm/llvm-project/issues/61350"); - stdenv.mkDerivation (rec { + +stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -325,7 +324,8 @@ in "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (false) [ + ] ++ optionals enableGoldPlugin [ + # For LLVMgold plugin "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" diff --git a/pkgs/development/compilers/llvm/clang-11-12-LLVMgold-path.patch b/pkgs/development/compilers/llvm/clang-11-15-LLVMgold-path.patch index 8f8991976f33..8f8991976f33 100644 --- a/pkgs/development/compilers/llvm/clang-11-12-LLVMgold-path.patch +++ b/pkgs/development/compilers/llvm/clang-11-15-LLVMgold-path.patch diff --git a/pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch b/pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch new file mode 100644 index 000000000000..74cdbacc8a71 --- /dev/null +++ b/pkgs/development/compilers/llvm/clang-at-least-16-LLVMgold-path.patch @@ -0,0 +1,14 @@ +diff --git a/lib/Driver/ToolChains/CommonArgs.cpp b/lib/Driver/ToolChains/CommonArgs.cpp +index 34640b3c450d..93c4a4f4ec5c 100644 +--- a/lib/Driver/ToolChains/CommonArgs.cpp ++++ b/lib/Driver/ToolChains/CommonArgs.cpp +@@ -589,8 +589,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args, + #endif + + SmallString<1024> Plugin; +- llvm::sys::path::native(Twine(D.Dir) + +- "/../" CLANG_INSTALL_LIBDIR_BASENAME + ++ llvm::sys::path::native(Twine("@libllvmLibdir@") + + PluginName + Suffix, + Plugin); + CmdArgs.push_back(Args.MakeArgString(Twine(PluginPrefix) + Plugin)); diff --git a/pkgs/development/compilers/llvm/git/clang/default.nix b/pkgs/development/compilers/llvm/git/clang/default.nix index b193ebba3d6d..d8fe08569f3f 100644 --- a/pkgs/development/compilers/llvm/git/clang/default.nix +++ b/pkgs/development/compilers/llvm/git/clang/default.nix @@ -1,6 +1,6 @@ { lib, stdenv, llvm_meta , monorepoSrc, runCommand -, cmake, ninja, libxml2, libllvm, version, python3 +, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false @@ -52,11 +52,10 @@ let # https://reviews.llvm.org/D51899 ./gnu-install-dirs.patch ../../common/clang/add-nostdlibinc-flag.patch - # FIMXE: do we need this patch? - # (substituteAll { - # src = ../../clang-11-12-LLVMgold-path.patch; - # libllvmLibdir = "${libllvm.lib}/lib"; - # }) + (substituteAll { + src = ../../clang-at-least-16-LLVMgold-path.patch; + libllvmLibdir = "${libllvm.lib}/lib"; + }) ]; postPatch = '' diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix index 3d05837d45da..36edfee8a091 100644 --- a/pkgs/development/compilers/llvm/git/llvm/default.nix +++ b/pkgs/development/compilers/llvm/git/llvm/default.nix @@ -8,8 +8,7 @@ , python3 , python3Packages , libffi -# TODO: Gold plugin on LLVM16 has a severe memory corruption bug: https://github.com/llvm/llvm-project/issues/61350. -, enableGoldPlugin ? false +, enableGoldPlugin ? true , libbfd , libpfm , libxml2 @@ -66,8 +65,8 @@ let else python3; in - assert (lib.assertMsg (!enableGoldPlugin) "Gold plugin cannot be enabled on LLVM16 due to a upstream issue: https://github.com/llvm/llvm-project/issues/61350"); - stdenv.mkDerivation (rec { + +stdenv.mkDerivation (rec { pname = "llvm"; inherit version; @@ -325,7 +324,7 @@ in "-DSPHINX_OUTPUT_MAN=ON" "-DSPHINX_OUTPUT_HTML=OFF" "-DSPHINX_WARNINGS_AS_ERRORS=OFF" - ] ++ optionals (false) [ + ] ++ optionals enableGoldPlugin [ "-DLLVM_BINUTILS_INCDIR=${libbfd.dev}/include" ] ++ optionals isDarwin [ "-DLLVM_ENABLE_LIBCXX=ON" |