From 2902f99c5734c0eebf265b4009dfccb5703aa9e1 Mon Sep 17 00:00:00 2001 From: Artturin Date: Mon, 20 Nov 2023 23:27:31 +0200 Subject: [PATCH 1/6] llvmPackages: Dedupe `llvm_meta` --- .../development/compilers/llvm/10/default.nix | 16 +------------- .../development/compilers/llvm/11/default.nix | 16 +------------- .../development/compilers/llvm/12/default.nix | 16 +------------- .../development/compilers/llvm/13/default.nix | 16 +------------- .../development/compilers/llvm/14/default.nix | 17 +-------------- .../development/compilers/llvm/15/default.nix | 17 +-------------- .../development/compilers/llvm/16/default.nix | 17 +-------------- pkgs/development/compilers/llvm/6/default.nix | 15 +------------ pkgs/development/compilers/llvm/7/default.nix | 16 +------------- pkgs/development/compilers/llvm/8/default.nix | 16 +------------- pkgs/development/compilers/llvm/9/default.nix | 16 +------------- .../compilers/llvm/common/common-let.nix | 21 +++++++++++++++++++ .../compilers/llvm/git/default.nix | 17 +-------------- 13 files changed, 33 insertions(+), 183 deletions(-) create mode 100644 pkgs/development/compilers/llvm/common/common-let.nix diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix index 37c32e425c63..eca009a1c8c1 100644 --- a/pkgs/development/compilers/llvm/10/default.nix +++ b/pkgs/development/compilers/llvm/10/default.nix @@ -29,21 +29,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "06n1yp638rh24xdxv9v2df0qajxbjz4w59b7dd4ky36drwmpi4yh"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix index 6ce7d86c835e..d0916e89519b 100644 --- a/pkgs/development/compilers/llvm/11/default.nix +++ b/pkgs/development/compilers/llvm/11/default.nix @@ -31,21 +31,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "18n1w1hkv931xzq02b34wglbv6zd6sd0r5kb8piwvag7klj7qw3n"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix index b976dd2ee67a..c720e53eeb0f 100644 --- a/pkgs/development/compilers/llvm/12/default.nix +++ b/pkgs/development/compilers/llvm/12/default.nix @@ -32,21 +32,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "1r9a4fdz9ci58b5z2inwvm4z4cdp6scrivnaw05dggkxz7yrwrb5"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix index 3cf7cd711ebe..0469b77fe425 100644 --- a/pkgs/development/compilers/llvm/13/default.nix +++ b/pkgs/development/compilers/llvm/13/default.nix @@ -34,21 +34,7 @@ let sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k"; }; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version src buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix index b9a74e0f070a..442b0f731579 100644 --- a/pkgs/development/compilers/llvm/14/default.nix +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -34,22 +34,7 @@ let sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE="; }; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.m68k ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 6a3b8cbabab7..1fbef0bb6c15 100644 --- a/pkgs/development/compilers/llvm/15/default.nix +++ b/pkgs/development/compilers/llvm/15/default.nix @@ -83,22 +83,7 @@ in let inherit (releaseInfo) release_version version; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.m68k ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix index 541db8c400de..94888d4ef53d 100644 --- a/pkgs/development/compilers/llvm/16/default.nix +++ b/pkgs/development/compilers/llvm/16/default.nix @@ -83,22 +83,7 @@ in let inherit (releaseInfo) release_version version; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.m68k ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index 3dcc75023f4f..b5eebe76a3f5 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -17,20 +17,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "1w8ml7fyn4vyxmy59n2qm4r1k1kgwgwkaldp6m45fdv4g0kkfbhd"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix index 0607b5ebf42c..e24656527067 100644 --- a/pkgs/development/compilers/llvm/7/default.nix +++ b/pkgs/development/compilers/llvm/7/default.nix @@ -29,21 +29,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "0lb4kdh7j2fhfz8kd6iv5df7m3pikiryk1vvwsf87spc90n09q0w"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix index 5beb8afb2ee9..5cb26ea5217f 100644 --- a/pkgs/development/compilers/llvm/8/default.nix +++ b/pkgs/development/compilers/llvm/8/default.nix @@ -29,21 +29,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "1qf3097bc5ia8p6cpmbx985rjr3yaah5s8fc0nv7pw742yv7jw8q"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix index 9f79dc5cce7f..3234eb2e17c0 100644 --- a/pkgs/development/compilers/llvm/9/default.nix +++ b/pkgs/development/compilers/llvm/9/default.nix @@ -29,21 +29,7 @@ let clang-tools-extra_src = fetch "clang-tools-extra" "01vgzd4k1q93nfs8gyl83mjlc4x0qsgfqw32lacbjzdxg0mdfvxj"; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version fetch buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/common/common-let.nix b/pkgs/development/compilers/llvm/common/common-let.nix new file mode 100644 index 000000000000..ca5a2f8b805c --- /dev/null +++ b/pkgs/development/compilers/llvm/common/common-let.nix @@ -0,0 +1,21 @@ +{ lib, release_version }: + +{ + llvm_meta = { + license = lib.licenses.ncsa; + maintainers = lib.teams.llvm.members; + + # See llvm/cmake/config-ix.cmake. + platforms = + lib.platforms.aarch64 ++ + lib.platforms.arm ++ + lib.platforms.mips ++ + lib.platforms.power ++ + lib.platforms.s390x ++ + lib.platforms.wasi ++ + lib.platforms.x86 ++ + lib.optionals (lib.versionAtLeast release_version "7") lib.platforms.riscv ++ + lib.optionals (lib.versionAtLeast release_version "14") lib.platforms.m68k; + }; + +} diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index 930b716881e8..e6e2f7113dab 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -82,22 +82,7 @@ in let inherit (releaseInfo) release_version version; - llvm_meta = { - license = lib.licenses.ncsa; - maintainers = lib.teams.llvm.members; - - # See llvm/cmake/config-ix.cmake. - platforms = - lib.platforms.aarch64 ++ - lib.platforms.arm ++ - lib.platforms.m68k ++ - lib.platforms.mips ++ - lib.platforms.power ++ - lib.platforms.riscv ++ - lib.platforms.s390x ++ - lib.platforms.wasi ++ - lib.platforms.x86; - }; + inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); From 5ac86a99e7e1c3374c8a5bd28599026e5450ae06 Mon Sep 17 00:00:00 2001 From: Artturin Date: Tue, 21 Nov 2023 01:14:37 +0200 Subject: [PATCH 2/6] llvmPackages: Dedupe releaseInfo --- .../development/compilers/llvm/15/default.nix | 18 +++------------- .../development/compilers/llvm/16/default.nix | 18 +++------------- .../compilers/llvm/common/common-let.nix | 21 ++++++++++++++++++- .../compilers/llvm/git/default.nix | 19 ++++------------- 4 files changed, 30 insertions(+), 46 deletions(-) diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 1fbef0bb6c15..0082ae8505e7 100644 --- a/pkgs/development/compilers/llvm/15/default.nix +++ b/pkgs/development/compilers/llvm/15/default.nix @@ -54,19 +54,6 @@ in let monorepoSrc' = monorepoSrc; in let - releaseInfo = if gitRelease != null then rec { - original = gitRelease; - release_version = original.version; - version = gitRelease.rev-version; - } else rec { - original = officialRelease; - release_version = original.version; - version = if original ? candidate then - "${release_version}-${original.candidate}" - else - release_version; - }; - monorepoSrc = if monorepoSrc' != null then monorepoSrc' else let @@ -81,9 +68,10 @@ in let inherit rev sha256; }; + # Import releaseInfo separately to avoid infinite recursion + inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - - inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; + inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix index 94888d4ef53d..5213ebc37b47 100644 --- a/pkgs/development/compilers/llvm/16/default.nix +++ b/pkgs/development/compilers/llvm/16/default.nix @@ -54,19 +54,6 @@ in let monorepoSrc' = monorepoSrc; in let - releaseInfo = if gitRelease != null then rec { - original = gitRelease; - release_version = original.version; - version = gitRelease.rev-version; - } else rec { - original = officialRelease; - release_version = original.version; - version = if original ? candidate then - "${release_version}-${original.candidate}" - else - release_version; - }; - monorepoSrc = if monorepoSrc' != null then monorepoSrc' else let @@ -81,9 +68,10 @@ in let inherit rev sha256; }; + # Import releaseInfo separately to avoid infinite recursion + inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - - inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; + inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/common/common-let.nix b/pkgs/development/compilers/llvm/common/common-let.nix index ca5a2f8b805c..d56063f1bc43 100644 --- a/pkgs/development/compilers/llvm/common/common-let.nix +++ b/pkgs/development/compilers/llvm/common/common-let.nix @@ -1,4 +1,8 @@ -{ lib, release_version }: +{ lib +, release_version ? null +, gitRelease ? null +, officialRelease ? null +}: { llvm_meta = { @@ -18,4 +22,19 @@ lib.optionals (lib.versionAtLeast release_version "14") lib.platforms.m68k; }; + releaseInfo = + if gitRelease != null then rec { + original = gitRelease; + release_version = original.version; + version = gitRelease.rev-version; + } else rec { + original = officialRelease; + release_version = original.version; + version = + if original ? candidate then + "${release_version}-${original.candidate}" + else + release_version; + }; + } diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index e6e2f7113dab..dc5ea642995c 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -53,19 +53,6 @@ in let monorepoSrc' = monorepoSrc; in let - releaseInfo = if gitRelease != null then rec { - original = gitRelease; - release_version = original.version; - version = gitRelease.rev-version; - } else rec { - original = officialRelease; - release_version = original.version; - version = if original ? candidate then - "${release_version}-${original.candidate}" - else - release_version; - }; - monorepoSrc = if monorepoSrc' != null then monorepoSrc' else let @@ -80,9 +67,11 @@ in let inherit rev sha256; }; - inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; + # Import releaseInfo separately to avoid infinite recursion + inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; + inherit (releaseInfo) release_version version; + inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); From e6751897e0209add93b7ee9725e7479dea25c873 Mon Sep 17 00:00:00 2001 From: Artturin Date: Tue, 21 Nov 2023 01:28:25 +0200 Subject: [PATCH 3/6] llvmPackages: Dedupe monorepoSrc --- .../development/compilers/llvm/15/default.nix | 16 +------------- .../development/compilers/llvm/16/default.nix | 16 +------------- .../compilers/llvm/common/common-let.nix | 22 ++++++++++++++++++- .../compilers/llvm/git/default.nix | 17 +------------- 4 files changed, 24 insertions(+), 47 deletions(-) diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 0082ae8505e7..96c4c6e8aa4c 100644 --- a/pkgs/development/compilers/llvm/15/default.nix +++ b/pkgs/development/compilers/llvm/15/default.nix @@ -54,24 +54,10 @@ in let monorepoSrc' = monorepoSrc; in let - monorepoSrc = if monorepoSrc' != null then - monorepoSrc' - else let - sha256 = releaseInfo.original.sha256; - rev = if gitRelease != null then - gitRelease.rev - else - "llvmorg-${releaseInfo.version}"; - in fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - inherit rev sha256; - }; - # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; + inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix index 5213ebc37b47..d75e1a121a99 100644 --- a/pkgs/development/compilers/llvm/16/default.nix +++ b/pkgs/development/compilers/llvm/16/default.nix @@ -54,24 +54,10 @@ in let monorepoSrc' = monorepoSrc; in let - monorepoSrc = if monorepoSrc' != null then - monorepoSrc' - else let - sha256 = releaseInfo.original.sha256; - rev = if gitRelease != null then - gitRelease.rev - else - "llvmorg-${releaseInfo.version}"; - in fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - inherit rev sha256; - }; - # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; + inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/common/common-let.nix b/pkgs/development/compilers/llvm/common/common-let.nix index d56063f1bc43..31360f5b98b9 100644 --- a/pkgs/development/compilers/llvm/common/common-let.nix +++ b/pkgs/development/compilers/llvm/common/common-let.nix @@ -1,10 +1,12 @@ { lib +, fetchFromGitHub ? null , release_version ? null , gitRelease ? null , officialRelease ? null +, monorepoSrc' ? null }: -{ +rec { llvm_meta = { license = lib.licenses.ncsa; maintainers = lib.teams.llvm.members; @@ -37,4 +39,22 @@ release_version; }; + monorepoSrc = + if monorepoSrc' != null then + monorepoSrc' + else + let + sha256 = releaseInfo.original.sha256; + rev = + if gitRelease != null then + gitRelease.rev + else + "llvmorg-${releaseInfo.version}"; + in + fetchFromGitHub { + owner = "llvm"; + repo = "llvm-project"; + inherit rev sha256; + }; + } diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index dc5ea642995c..2506d177a174 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -53,25 +53,10 @@ in let monorepoSrc' = monorepoSrc; in let - monorepoSrc = if monorepoSrc' != null then - monorepoSrc' - else let - sha256 = releaseInfo.original.sha256; - rev = if gitRelease != null then - gitRelease.rev - else - "llvmorg-${releaseInfo.version}"; - in fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - inherit rev sha256; - }; - - # Import releaseInfo separately to avoid infinite recursion inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; inherit (releaseInfo) release_version version; - inherit (import ../common/common-let.nix { inherit lib release_version gitRelease officialRelease; }) llvm_meta; + inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake ninja libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); From c1e1a583a02f1a7ee34b822a09ee2a5bae184396 Mon Sep 17 00:00:00 2001 From: Artturin Date: Tue, 21 Nov 2023 01:44:34 +0200 Subject: [PATCH 4/6] llvmPackages_{13,14}: Use releaseInfo and monorepoSrc Doing the same thing as was done in the initial adding of `monorepoSrc` to `llvmPackages_15` d231d18e4aa5e1d00f86b4f484f9e4344538e3ea --- .../development/compilers/llvm/13/default.nix | 56 ++++++++++++++----- .../development/compilers/llvm/14/default.nix | 55 ++++++++++++------ 2 files changed, 80 insertions(+), 31 deletions(-) diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix index 0469b77fe425..0a1b90fc9fd4 100644 --- a/pkgs/development/compilers/llvm/13/default.nix +++ b/pkgs/development/compilers/llvm/13/default.nix @@ -16,25 +16,51 @@ then null else pkgs.bintools , darwin +# LLVM release information; specify one of these but not both: +, gitRelease ? null + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # rev = /* commit SHA */; + # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +, officialRelease ? { version = "13.0.1"; sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k"; } + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # candidate = /* optional; if specified, should be: "rcN" */ + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +# By default, we'll try to fetch a release from `github:llvm/llvm-project` +# corresponding to the `gitRelease` or `officialRelease` specified. +# +# You can provide your own LLVM source by specifying this arg but then it's up +# to you to make sure that the LLVM repo given matches the release configuration +# specified. +, monorepoSrc ? null + }: +assert let + int = a: if a then 1 else 0; + xor = a: b: ((builtins.bitXor (int a) (int b)) == 1); +in + lib.assertMsg + (xor + (gitRelease != null) + (officialRelease != null)) + ("must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both")); let - release_version = "13.0.1"; - candidate = ""; # empty or "rcN" - dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; - rev = ""; # When using a Git commit - rev-version = ""; # When using a Git commit - version = if rev != "" then rev-version else "${release_version}${dash-candidate}"; - targetConfig = stdenv.targetPlatform.config; + monorepoSrc' = monorepoSrc; +in let + # Import releaseInfo separately to avoid infinite recursion + inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; + inherit (releaseInfo) release_version version; + inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; - src = fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - rev = if rev != "" then rev else "llvmorg-${version}"; - sha256 = "06dv6h5dmvzdxbif2s8njki6h32796v368dyb5945x8gjj72xh7k"; - }; - - inherit (import ../common/common-let.nix { inherit lib release_version; }) llvm_meta; + src = monorepoSrc; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 isl release_version version src buildLlvmTools; }); diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix index 442b0f731579..da37ce0ef1e2 100644 --- a/pkgs/development/compilers/llvm/14/default.nix +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -16,25 +16,48 @@ then null else pkgs.bintools , darwin +# LLVM release information; specify one of these but not both: +, gitRelease ? null + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # rev = /* commit SHA */; + # rev-version = /* human readable version; i.e. "unstable-2022-26-07" */; + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +, officialRelease ? { version = "14.0.6"; sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE="; } + # i.e.: + # { + # version = /* i.e. "15.0.0" */; + # candidate = /* optional; if specified, should be: "rcN" */ + # sha256 = /* checksum for this release, can omit if specifying your own `monorepoSrc` */; + # } +# By default, we'll try to fetch a release from `github:llvm/llvm-project` +# corresponding to the `gitRelease` or `officialRelease` specified. +# +# You can provide your own LLVM source by specifying this arg but then it's up +# to you to make sure that the LLVM repo given matches the release configuration +# specified. +, monorepoSrc ? null }: +assert let + int = a: if a then 1 else 0; + xor = a: b: ((builtins.bitXor (int a) (int b)) == 1); +in + lib.assertMsg + (xor + (gitRelease != null) + (officialRelease != null)) + ("must specify `gitRelease` or `officialRelease`" + + (lib.optionalString (gitRelease != null) " — not both")); let - release_version = "14.0.6"; - candidate = ""; # empty or "rcN" - dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; - rev = ""; # When using a Git commit - rev-version = ""; # When using a Git commit - version = if rev != "" then rev-version else "${release_version}${dash-candidate}"; - targetConfig = stdenv.targetPlatform.config; - - monorepoSrc = fetchFromGitHub { - owner = "llvm"; - repo = "llvm-project"; - rev = if rev != "" then rev else "llvmorg-${version}"; - sha256 = "sha256-vffu4HilvYwtzwgq+NlS26m65DGbp6OSSne2aje1yJE="; - }; - - inherit (import ../common/common-let.nix { inherit lib; }) llvm_meta; + monorepoSrc' = monorepoSrc; +in let + # Import releaseInfo separately to avoid infinite recursion + inherit (import ../common/common-let.nix { inherit lib gitRelease officialRelease; }) releaseInfo; + inherit (releaseInfo) release_version version; + inherit (import ../common/common-let.nix { inherit lib fetchFromGitHub release_version gitRelease officialRelease monorepoSrc'; }) llvm_meta monorepoSrc; tools = lib.makeExtensible (tools: let callPackage = newScope (tools // { inherit stdenv cmake libxml2 python3 release_version version monorepoSrc buildLlvmTools; }); From b59fd202d70faa17d0150bae3dd81d3461545a10 Mon Sep 17 00:00:00 2001 From: Artturin Date: Tue, 21 Nov 2023 02:05:15 +0200 Subject: [PATCH 5/6] llvmPackages: Remove dead code 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. --- pkgs/development/compilers/llvm/10/default.nix | 3 +-- pkgs/development/compilers/llvm/10/libunwind/default.nix | 3 +-- pkgs/development/compilers/llvm/11/clang/default.nix | 2 +- pkgs/development/compilers/llvm/11/compiler-rt/default.nix | 2 +- pkgs/development/compilers/llvm/11/default.nix | 3 +-- pkgs/development/compilers/llvm/11/libunwind/default.nix | 3 +-- pkgs/development/compilers/llvm/12/default.nix | 3 +-- pkgs/development/compilers/llvm/13/default.nix | 2 +- pkgs/development/compilers/llvm/14/default.nix | 2 +- pkgs/development/compilers/llvm/14/llvm/default.nix | 2 +- pkgs/development/compilers/llvm/15/compiler-rt/default.nix | 2 +- pkgs/development/compilers/llvm/15/default.nix | 4 ++-- pkgs/development/compilers/llvm/15/llvm/default.nix | 2 +- pkgs/development/compilers/llvm/16/clang/default.nix | 2 +- pkgs/development/compilers/llvm/16/compiler-rt/default.nix | 2 +- pkgs/development/compilers/llvm/16/default.nix | 4 ++-- pkgs/development/compilers/llvm/16/llvm/default.nix | 3 +-- pkgs/development/compilers/llvm/6/default.nix | 4 +--- pkgs/development/compilers/llvm/7/default.nix | 3 +-- pkgs/development/compilers/llvm/8/default.nix | 3 +-- pkgs/development/compilers/llvm/9/default.nix | 3 +-- pkgs/development/compilers/llvm/9/libunwind/default.nix | 3 +-- pkgs/development/compilers/llvm/git/default.nix | 2 +- pkgs/development/compilers/llvm/git/llvm/default.nix | 2 +- 24 files changed, 26 insertions(+), 38 deletions(-) diff --git a/pkgs/development/compilers/llvm/10/default.nix b/pkgs/development/compilers/llvm/10/default.nix index eca009a1c8c1..bc72be0ce7a1 100644 --- a/pkgs/development/compilers/llvm/10/default.nix +++ b/pkgs/development/compilers/llvm/10/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -20,7 +20,6 @@ let release_version = "10.0.1"; version = release_version; # differentiating these (variables) is important for RCs - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/10/libunwind/default.nix b/pkgs/development/compilers/llvm/10/libunwind/default.nix index 8124cf0821e0..2941dca35bf6 100644 --- a/pkgs/development/compilers/llvm/10/libunwind/default.nix +++ b/pkgs/development/compilers/llvm/10/libunwind/default.nix @@ -1,5 +1,4 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch -, enableShared ? !stdenv.hostPlatform.isStatic +{ lib, stdenv, llvm_meta, version, fetch, cmake, enableShared ? !stdenv.hostPlatform.isStatic }: stdenv.mkDerivation rec { diff --git a/pkgs/development/compilers/llvm/11/clang/default.nix b/pkgs/development/compilers/llvm/11/clang/default.nix index f0d41a3ab734..a4fe7199e080 100644 --- a/pkgs/development/compilers/llvm/11/clang/default.nix +++ b/pkgs/development/compilers/llvm/11/clang/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, llvm_meta, fetch, fetchpatch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3 +{ lib, stdenv, llvm_meta, fetch, substituteAll, cmake, libxml2, libllvm, version, clang-tools-extra_src, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index 38dc7a0fbdc8..a41aa7ac4074 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libxcrypt , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD }: diff --git a/pkgs/development/compilers/llvm/11/default.nix b/pkgs/development/compilers/llvm/11/default.nix index d0916e89519b..2d9790fe61ac 100644 --- a/pkgs/development/compilers/llvm/11/default.nix +++ b/pkgs/development/compilers/llvm/11/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -22,7 +22,6 @@ let candidate = ""; # empty or "rcN" dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/11/libunwind/default.nix b/pkgs/development/compilers/llvm/11/libunwind/default.nix index 462d63283baf..4cd39e379601 100644 --- a/pkgs/development/compilers/llvm/11/libunwind/default.nix +++ b/pkgs/development/compilers/llvm/11/libunwind/default.nix @@ -1,5 +1,4 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch -, enableShared ? !stdenv.hostPlatform.isStatic +{ lib, stdenv, llvm_meta, version, fetch, cmake, enableShared ? !stdenv.hostPlatform.isStatic }: stdenv.mkDerivation rec { diff --git a/pkgs/development/compilers/llvm/12/default.nix b/pkgs/development/compilers/llvm/12/default.nix index c720e53eeb0f..4de048827071 100644 --- a/pkgs/development/compilers/llvm/12/default.nix +++ b/pkgs/development/compilers/llvm/12/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -23,7 +23,6 @@ let candidate = ""; # empty or "rcN" dash-candidate = lib.optionalString (candidate != "") "-${candidate}"; version = "${release_version}${dash-candidate}"; # differentiating these (variables) is important for RCs - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/${name}-${release_version}${candidate}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/13/default.nix b/pkgs/development/compilers/llvm/13/default.nix index 0a1b90fc9fd4..c46ebee1d0db 100644 --- a/pkgs/development/compilers/llvm/13/default.nix +++ b/pkgs/development/compilers/llvm/13/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross diff --git a/pkgs/development/compilers/llvm/14/default.nix b/pkgs/development/compilers/llvm/14/default.nix index da37ce0ef1e2..d6d3c2d088b0 100644 --- a/pkgs/development/compilers/llvm/14/default.nix +++ b/pkgs/development/compilers/llvm/14/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross diff --git a/pkgs/development/compilers/llvm/14/llvm/default.nix b/pkgs/development/compilers/llvm/14/llvm/default.nix index 081c84c04e06..6eec4c563f9c 100644 --- a/pkgs/development/compilers/llvm/14/llvm/default.nix +++ b/pkgs/development/compilers/llvm/14/llvm/default.nix @@ -25,7 +25,7 @@ # broken for the armv7l builder , enablePFM ? stdenv.isLinux && !stdenv.hostPlatform.isAarch , enablePolly ? true -} @args: +}: let inherit (lib) optional optionals optionalString; diff --git a/pkgs/development/compilers/llvm/15/compiler-rt/default.nix b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix index 4ac51c1dd31e..bfdeeff6db5b 100644 --- a/pkgs/development/compilers/llvm/15/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/15/compiler-rt/default.nix @@ -9,7 +9,7 @@ let useLLVM = stdenv.hostPlatform.useLLVM or false; bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; haveLibc = stdenv.cc.libc != null; - inherit (stdenv.hostPlatform) isMusl isGnu; + inherit (stdenv.hostPlatform) isMusl; baseName = "compiler-rt"; diff --git a/pkgs/development/compilers/llvm/15/default.nix b/pkgs/development/compilers/llvm/15/default.nix index 96c4c6e8aa4c..095da445a990 100644 --- a/pkgs/development/compilers/llvm/15/default.nix +++ b/pkgs/development/compilers/llvm/15/default.nix @@ -1,5 +1,5 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, stdenvNoCC, cmake, ninja -, gccForLibs, preLibcCrossHeaders +{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja +, preLibcCrossHeaders , libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross diff --git a/pkgs/development/compilers/llvm/15/llvm/default.nix b/pkgs/development/compilers/llvm/15/llvm/default.nix index 8a1c0547890b..0b9e83259b2c 100644 --- a/pkgs/development/compilers/llvm/15/llvm/default.nix +++ b/pkgs/development/compilers/llvm/15/llvm/default.nix @@ -30,7 +30,7 @@ # broken for the armv7l builder && !stdenv.hostPlatform.isAarch , enablePolly ? true -} @args: +}: let inherit (lib) optional optionals optionalString; diff --git a/pkgs/development/compilers/llvm/16/clang/default.nix b/pkgs/development/compilers/llvm/16/clang/default.nix index 2a2656df5fe1..b801bdda5292 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 -, substituteAll, cmake, ninja, libxml2, libllvm, version, python3 +, cmake, ninja, libxml2, libllvm, version, python3 , buildLlvmTools , fixDarwinDylibNames , enableManpages ? false diff --git a/pkgs/development/compilers/llvm/16/compiler-rt/default.nix b/pkgs/development/compilers/llvm/16/compiler-rt/default.nix index 9b6ab0a77c2a..7add8fab0f91 100644 --- a/pkgs/development/compilers/llvm/16/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/16/compiler-rt/default.nix @@ -10,7 +10,7 @@ let bareMetal = stdenv.hostPlatform.parsed.kernel.name == "none"; haveLibc = stdenv.cc.libc != null; isDarwinStatic = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isStatic; - inherit (stdenv.hostPlatform) isMusl isGnu; + inherit (stdenv.hostPlatform) isMusl; baseName = "compiler-rt"; diff --git a/pkgs/development/compilers/llvm/16/default.nix b/pkgs/development/compilers/llvm/16/default.nix index d75e1a121a99..5ecb89a3a264 100644 --- a/pkgs/development/compilers/llvm/16/default.nix +++ b/pkgs/development/compilers/llvm/16/default.nix @@ -1,5 +1,5 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, stdenvNoCC, cmake, ninja -, gccForLibs, preLibcCrossHeaders +{ lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja +, preLibcCrossHeaders , libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross diff --git a/pkgs/development/compilers/llvm/16/llvm/default.nix b/pkgs/development/compilers/llvm/16/llvm/default.nix index 9475b5c99485..9994076bbdab 100644 --- a/pkgs/development/compilers/llvm/16/llvm/default.nix +++ b/pkgs/development/compilers/llvm/16/llvm/default.nix @@ -2,7 +2,6 @@ , pkgsBuildBuild , monorepoSrc , runCommand -, fetchpatch , cmake , darwin , ninja @@ -31,7 +30,7 @@ # broken for the armv7l builder && !stdenv.hostPlatform.isAarch , enablePolly ? true -} @args: +}: let inherit (lib) optional optionals optionalString; diff --git a/pkgs/development/compilers/llvm/6/default.nix b/pkgs/development/compilers/llvm/6/default.nix index b5eebe76a3f5..3e78f5461e3f 100644 --- a/pkgs/development/compilers/llvm/6/default.nix +++ b/pkgs/development/compilers/llvm/6/default.nix @@ -1,5 +1,4 @@ -{ lowPrio, newScope, pkgs, lib, stdenv, cmake, gccForLibs -, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith +{ lowPrio, newScope, pkgs, lib, stdenv, cmake, libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross , targetLlvm @@ -8,7 +7,6 @@ let release_version = "6.0.1"; version = release_version; # differentiating these is important for rc's - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/7/default.nix b/pkgs/development/compilers/llvm/7/default.nix index e24656527067..972d52ac6e1a 100644 --- a/pkgs/development/compilers/llvm/7/default.nix +++ b/pkgs/development/compilers/llvm/7/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -20,7 +20,6 @@ let release_version = "7.1.0"; version = release_version; # differentiating these is important for rc's - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://releases.llvm.org/${release_version}/${name}-${version}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/8/default.nix b/pkgs/development/compilers/llvm/8/default.nix index 5cb26ea5217f..0483916a620b 100644 --- a/pkgs/development/compilers/llvm/8/default.nix +++ b/pkgs/development/compilers/llvm/8/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -20,7 +20,6 @@ let release_version = "8.0.1"; version = release_version; # differentiating these is important for rc's - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/9/default.nix b/pkgs/development/compilers/llvm/9/default.nix index 3234eb2e17c0..fbd2e57805be 100644 --- a/pkgs/development/compilers/llvm/9/default.nix +++ b/pkgs/development/compilers/llvm/9/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, isl, fetchurl, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross @@ -20,7 +20,6 @@ let release_version = "9.0.1"; version = release_version; # differentiating these is important for rc's - targetConfig = stdenv.targetPlatform.config; fetch = name: sha256: fetchurl { url = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${release_version}/${name}-${version}.src.tar.xz"; diff --git a/pkgs/development/compilers/llvm/9/libunwind/default.nix b/pkgs/development/compilers/llvm/9/libunwind/default.nix index 65b89c6bb18f..9a78025d71d4 100644 --- a/pkgs/development/compilers/llvm/9/libunwind/default.nix +++ b/pkgs/development/compilers/llvm/9/libunwind/default.nix @@ -1,5 +1,4 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, fetchpatch -, enableShared ? !stdenv.hostPlatform.isStatic +{ lib, stdenv, llvm_meta, version, fetch, cmake, enableShared ? !stdenv.hostPlatform.isStatic }: stdenv.mkDerivation rec { diff --git a/pkgs/development/compilers/llvm/git/default.nix b/pkgs/development/compilers/llvm/git/default.nix index 2506d177a174..0748b97dd598 100644 --- a/pkgs/development/compilers/llvm/git/default.nix +++ b/pkgs/development/compilers/llvm/git/default.nix @@ -1,5 +1,5 @@ { lowPrio, newScope, pkgs, lib, stdenv, cmake, ninja -, gccForLibs, preLibcCrossHeaders +, preLibcCrossHeaders , libxml2, python3, fetchFromGitHub, overrideCC, wrapCCWith, wrapBintoolsWith , buildLlvmTools # tools, but from the previous stage, for cross , targetLlvmLibraries # libraries, but from the next stage, for cross diff --git a/pkgs/development/compilers/llvm/git/llvm/default.nix b/pkgs/development/compilers/llvm/git/llvm/default.nix index 66b0a7438cef..119b2272beda 100644 --- a/pkgs/development/compilers/llvm/git/llvm/default.nix +++ b/pkgs/development/compilers/llvm/git/llvm/default.nix @@ -29,7 +29,7 @@ # broken for the armv7l builder && !stdenv.hostPlatform.isAarch , enablePolly ? true -} @args: +}: let inherit (lib) optional optionals optionalString; From f6749cddad78531de21e0779c0251f66976e8098 Mon Sep 17 00:00:00 2001 From: Artturin Date: Tue, 21 Nov 2023 17:45:58 +0200 Subject: [PATCH 6/6] llvmPackages_11.compiler-rt: restore `libcxxabi` argument Removing this caused `error: anonymous function at /var/lib/ofborg/checkout/repo/38dca4e3aa6bca43ea96d2fcc04e8229/mr-est/ofborg-evaluator-2/pkgs/development/compilers/llvm/11/compiler-rt/default.nix:1:1 called with unexpected argument 'libcxxabi'` https://github.com/search?q=repo%3ANixOS%2Fnixpkgs%20%2Fcompiler-rt.override%2F&type=code The argument became unused in https://github.com/nixos/nixpkgs/commit/56fcbcd1543188fcc855df7e79fee0a8df259681#diff-b1bb77941db4393b7d2cf7a370cee294318418f2507b7a78e22353d1afbb6d21L18 but it was not removed from `buildInputs` in later `llvmPackages` because `llvmPackages_12` had been created before this change was done. Removing `libcxxabi` from `buildInputs` may have to be applied to the other `llvmPackages` too. --- pkgs/development/compilers/llvm/11/compiler-rt/default.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix index a41aa7ac4074..38dc7a0fbdc8 100644 --- a/pkgs/development/compilers/llvm/11/compiler-rt/default.nix +++ b/pkgs/development/compilers/llvm/11/compiler-rt/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libxcrypt +{ lib, stdenv, llvm_meta, version, fetch, cmake, python3, xcbuild, libllvm, libcxxabi, libxcrypt , doFakeLibgcc ? stdenv.hostPlatform.isFreeBSD }: