···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3-, substitute, fetchFromGitHub, fetchpatch
4, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
5, buildLlvmTools # tools, but from the previous stage, for cross
6, targetLlvmLibraries # libraries, but from the next stage, for cross
···56 then tools.bintools
57 else bootBintools;
5859- in {
6061 libllvm = callPackage ./llvm {
62 inherit llvm_meta;
···66 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
67 llvm = tools.libllvm;
6869- libclang = callPackage ./clang {
000000000070 inherit clang-tools-extra_src llvm_meta;
71 };
72
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3+, substitute, substituteAll, fetchFromGitHub, fetchpatch
4, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith
5, buildLlvmTools # tools, but from the previous stage, for cross
6, targetLlvmLibraries # libraries, but from the next stage, for cross
···56 then tools.bintools
57 else bootBintools;
5859+ in rec {
6061 libllvm = callPackage ./llvm {
62 inherit llvm_meta;
···66 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
67 llvm = tools.libllvm;
6869+ libclang = callPackage ../common/clang {
70+ src = fetch "clang" "0px4gl27az6cdz6adds89qzdwb1cqpjsfvrldbz9qvpmphrj34bf";
71+ patches = [
72+ ./clang/purity.patch
73+ # https://reviews.llvm.org/D51899
74+ ./clang/gnu-install-dirs.patch
75+ (substituteAll {
76+ src = ../common/clang/clang-11-15-LLVMgold-path.patch;
77+ libllvmLibdir = "${libllvm.lib}/lib";
78+ })
79+ ];
80 inherit clang-tools-extra_src llvm_meta;
81 };
82
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3, fetchpatch
4-, libxml2, python3, isl, fetchFromGitHub, substitute, overrideCC, wrapCCWith, wrapBintoolsWith
5, buildLlvmTools # tools, but from the previous stage, for cross
6, targetLlvmLibraries # libraries, but from the next stage, for cross
7, targetLlvm
···82 then tools.bintools
83 else bootBintools;
8485- in {
8687 libllvm = callPackage ./llvm {
88 inherit llvm_meta;
···92 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
93 llvm = tools.libllvm;
9495- libclang = callPackage ./clang {
00000000000000096 inherit llvm_meta;
97 };
98
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3, fetchpatch
4+, libxml2, python3, isl, fetchFromGitHub, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
5, buildLlvmTools # tools, but from the previous stage, for cross
6, targetLlvmLibraries # libraries, but from the next stage, for cross
7, targetLlvm
···82 then tools.bintools
83 else bootBintools;
8485+ in rec {
8687 libllvm = callPackage ./llvm {
88 inherit llvm_meta;
···92 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
93 llvm = tools.libllvm;
9495+ libclang = callPackage ../common/clang {
96+ patches = [
97+ ./clang/purity.patch
98+ # https://reviews.llvm.org/D51899
99+ ./clang/gnu-install-dirs.patch
100+ # Revert of https://reviews.llvm.org/D100879
101+ # The malloc alignment assumption is incorrect for jemalloc and causes
102+ # mis-compilation in firefox.
103+ # See: https://bugzilla.mozilla.org/show_bug.cgi?id=1741454
104+ ./clang/revert-malloc-alignment-assumption.patch
105+ ../common/clang/add-nostdlibinc-flag.patch
106+ (substituteAll {
107+ src = ../common/clang/clang-11-15-LLVMgold-path.patch;
108+ libllvmLibdir = "${libllvm.lib}/lib";
109+ })
110+ ];
111 inherit llvm_meta;
112 };
113
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, substitute, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···78 then tools.bintools
79 else bootBintools;
8081- in {
8283 libllvm = callPackage ./llvm {
84 inherit llvm_meta;
···88 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
89 llvm = tools.libllvm;
9091- libclang = callPackage ./clang {
000000000092 inherit llvm_meta;
93 };
94
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···78 then tools.bintools
79 else bootBintools;
8081+ in rec {
8283 libllvm = callPackage ./llvm {
84 inherit llvm_meta;
···88 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
89 llvm = tools.libllvm;
9091+ libclang = callPackage ../common/clang {
92+ patches = [
93+ ./clang/purity.patch
94+ # https://reviews.llvm.org/D51899
95+ ./clang/gnu-install-dirs.patch
96+ ../common/clang/add-nostdlibinc-flag.patch
97+ (substituteAll {
98+ src = ../common/clang/clang-11-15-LLVMgold-path.patch;
99+ libllvmLibdir = "${libllvm.lib}/lib";
100+ })
101+ ];
102 inherit llvm_meta;
103 };
104
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, fetchpatch, substitute, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···84 then tools.bintools
85 else bootBintools;
8687- in {
8889 libllvm = callPackage ./llvm {
90 inherit llvm_meta;
···94 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
95 llvm = tools.libllvm;
9697- libclang = callPackage ./clang {
000000000098 inherit llvm_meta;
99 };
100
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, fetchpatch, substitute, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···84 then tools.bintools
85 else bootBintools;
8687+ in rec {
8889 libllvm = callPackage ./llvm {
90 inherit llvm_meta;
···94 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
95 llvm = tools.libllvm;
9697+ libclang = callPackage ../common/clang {
98+ patches = [
99+ ./clang/purity.patch
100+ # https://reviews.llvm.org/D51899
101+ ./clang/gnu-install-dirs.patch
102+ ../common/clang/add-nostdlibinc-flag.patch
103+ (substituteAll {
104+ src = ../common/clang/clang-11-15-LLVMgold-path.patch;
105+ libllvmLibdir = "${libllvm.lib}/lib";
106+ })
107+ ];
108 inherit llvm_meta;
109 };
110
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···85 then tools.bintools
86 else bootBintools;
8788- in {
8990 libllvm = callPackage ./llvm {
91 inherit llvm_meta;
···95 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
96 llvm = tools.libllvm;
9798- libclang = callPackage ./clang {
000000000099 inherit llvm_meta;
100 };
101
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···85 then tools.bintools
86 else bootBintools;
8788+ in rec {
8990 libllvm = callPackage ./llvm {
91 inherit llvm_meta;
···95 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
96 llvm = tools.libllvm;
9798+ libclang = callPackage ../common/clang {
99+ patches = [
100+ ./clang/purity.patch
101+ # https://reviews.llvm.org/D51899
102+ ./clang/gnu-install-dirs.patch
103+ ../common/clang/add-nostdlibinc-flag.patch
104+ (substituteAll {
105+ src = ../common/clang/clang-at-least-16-LLVMgold-path.patch;
106+ libllvmLibdir = "${libllvm.lib}/lib";
107+ })
108+ ];
109 inherit llvm_meta;
110 };
111
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, fetchpatch, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···80 then tools.bintools
81 else bootBintools;
8283- in {
8485 libllvm = callPackage ./llvm {
86 inherit llvm_meta;
···90 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
91 llvm = tools.libllvm;
9293- libclang = callPackage ./clang {
000000000094 inherit llvm_meta;
95 };
96
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, fetchpatch, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···80 then tools.bintools
81 else bootBintools;
8283+ in rec {
8485 libllvm = callPackage ./llvm {
86 inherit llvm_meta;
···90 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
91 llvm = tools.libllvm;
9293+ libclang = callPackage ../common/clang {
94+ patches = [
95+ ./clang/purity.patch
96+ # https://reviews.llvm.org/D51899
97+ ./clang/gnu-install-dirs.patch
98+ ../common/clang/add-nostdlibinc-flag.patch
99+ (substituteAll {
100+ src = ../common/clang/clang-at-least-16-LLVMgold-path.patch;
101+ libllvmLibdir = "${libllvm.lib}/lib";
102+ })
103+ ];
104 inherit llvm_meta;
105 };
106
+13-3
pkgs/development/compilers/llvm/18/default.nix
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···80 then tools.bintools
81 else bootBintools;
8283- in {
8485 libllvm = callPackage ./llvm {
86 inherit llvm_meta;
···90 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
91 llvm = tools.libllvm;
9293- libclang = callPackage ./clang {
000000000094 inherit llvm_meta;
95 };
96
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···80 then tools.bintools
81 else bootBintools;
8283+ in rec {
8485 libllvm = callPackage ./llvm {
86 inherit llvm_meta;
···90 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
91 llvm = tools.libllvm;
9293+ libclang = callPackage ../common/clang {
94+ patches = [
95+ ./clang/purity.patch
96+ # https://reviews.llvm.org/D51899
97+ ./clang/gnu-install-dirs.patch
98+ ../common/clang/add-nostdlibinc-flag.patch
99+ (substituteAll {
100+ src = ../common/clang/clang-at-least-16-LLVMgold-path.patch;
101+ libllvmLibdir = "${libllvm.lib}/lib";
102+ })
103+ ];
104 inherit llvm_meta;
105 };
106
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3-, libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···85 then tools.bintools
86 else bootBintools;
8788- in {
8990 libllvm = callPackage ./llvm {
91 inherit llvm_meta;
···95 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
96 llvm = tools.libllvm;
9798- libclang = callPackage ./clang {
000000000099 inherit llvm_meta;
100 };
101
···1{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja
2, preLibcCrossHeaders
3+, libxml2, python3, fetchFromGitHub, substituteAll, overrideCC, wrapCCWith, wrapBintoolsWith
4, buildLlvmTools # tools, but from the previous stage, for cross
5, targetLlvmLibraries # libraries, but from the next stage, for cross
6, targetLlvm
···85 then tools.bintools
86 else bootBintools;
8788+ in rec {
8990 libllvm = callPackage ./llvm {
91 inherit llvm_meta;
···95 # we need to reintroduce `outputSpecified` to get the expected behavior e.g. of lib.get*
96 llvm = tools.libllvm;
9798+ libclang = callPackage ../common/clang {
99+ patches = [
100+ ./clang/purity.patch
101+ # https://reviews.llvm.org/D51899
102+ ./clang/gnu-install-dirs.patch
103+ ../common/clang/add-nostdlibinc-flag.patch
104+ (substituteAll {
105+ src = ../common/clang/clang-at-least-16-LLVMgold-path.patch;
106+ libllvmLibdir = "${libllvm.lib}/lib";
107+ })
108+ ];
109 inherit llvm_meta;
110 };
111