Skip to content

Commit ed12128

Browse files
authored
Improve the distribution finding and comment on some of the unexpected support. (#493)
Improve the distribution finding and comment on some of the unexpected support. The result is that more (mostly) RetHat/Ubuntu are seen as compatible choices. ```sh diff --git a/toolchain/internal/llvm_distributions.golden.sel.txt b/toolchain/internal/llvm_distributions.golden.sel.txt index b8a08c5..64e069e 100644 --- a/toolchain/internal/llvm_distributions.golden.sel.txt +++ b/toolchain/internal/llvm_distributions.golden.sel.txt -6.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +6.0.0-x86_64-linux/rhel/0 -> clang+llvm-6.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz -6.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +6.0.1-x86_64-linux/rhel/0 -> clang+llvm-6.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz -7.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +7.0.0-x86_64-linux/rhel/0 -> clang+llvm-7.0.0-x86_64-linux-gnu-ubuntu-16.04.tar.xz -8.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +8.0.0-x86_64-linux/rhel/0 -> clang+llvm-8.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -8.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +8.0.1-x86_64-linux/rhel/0 -> clang+llvm-8.0.1-x86_64-linux-gnu-ubuntu-14.04.tar.xz -9.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +9.0.0-x86_64-linux/rhel/0 -> clang+llvm-9.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -10.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +10.0.0-x86_64-linux/rhel/0 -> clang+llvm-10.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -10.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +10.0.1-x86_64-linux/rhel/0 -> clang+llvm-10.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz -11.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +11.0.0-x86_64-linux/rhel/0 -> clang+llvm-11.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz -11.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +11.0.1-x86_64-linux/rhel/0 -> clang+llvm-11.0.1-x86_64-linux-gnu-ubuntu-20.10.tar.xz -11.1.0-x86_64-linux/rhel/0 -> ERROR: No version selected +11.1.0-x86_64-linux/rhel/0 -> clang+llvm-11.1.0-x86_64-linux-gnu-ubuntu-20.10.tar.xz -12.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +12.0.0-x86_64-linux/rhel/0 -> clang+llvm-12.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz -12.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +12.0.1-x86_64-linux/rhel/0 -> clang+llvm-12.0.1-x86_64-linux-gnu-ubuntu-16.04.tar.xz -13.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +13.0.0-x86_64-linux/rhel/0 -> clang+llvm-13.0.0-x86_64-linux-gnu-ubuntu-20.04.tar.xz -13.0.1-x86_64-linux/rhel/0 -> ERROR: No version selected +13.0.1-x86_64-linux/rhel/0 -> clang+llvm-13.0.1-x86_64-linux-gnu-ubuntu-18.04.tar.xz -14.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +14.0.0-x86_64-linux/rhel/0 -> clang+llvm-14.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -14.0.6-x86_64-linux/arch/0 -> ERROR: No version selected +14.0.6-x86_64-linux/arch/0 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz -14.0.6-x86_64-linux/linuxmint/18 -> ERROR: No version selected -14.0.6-x86_64-linux/linuxmint/19 -> ERROR: No version selected +14.0.6-x86_64-linux/linuxmint/18 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/linuxmint/19 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz -14.0.6-x86_64-linux/ubuntu/14.04 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/16.04 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/18.04.5 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/18.04.6 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/18.04 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/20.04 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/20.10 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/22.04 -> ERROR: No version selected -14.0.6-x86_64-linux/ubuntu/24.04 -> ERROR: No version selected +14.0.6-x86_64-linux/ubuntu/14.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/16.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/18.04.5 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/18.04.6 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/18.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/20.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/20.10 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/22.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz +14.0.6-x86_64-linux/ubuntu/24.04 -> clang+llvm-14.0.6-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.0-x86_64-linux/arch/0 -> ERROR: No version selected +15.0.0-x86_64-linux/arch/0 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.0-x86_64-linux/linuxmint/18 -> ERROR: No version selected -15.0.0-x86_64-linux/linuxmint/19 -> ERROR: No version selected +15.0.0-x86_64-linux/linuxmint/18 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/linuxmint/19 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.0-x86_64-linux/ubuntu/14.04 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/16.04 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/18.04.5 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/18.04.6 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/18.04 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/20.04 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/20.10 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/22.04 -> ERROR: No version selected -15.0.0-x86_64-linux/ubuntu/24.04 -> ERROR: No version selected +15.0.0-x86_64-linux/ubuntu/14.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/16.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/18.04.5 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/18.04.6 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/18.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/20.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/20.10 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/22.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.0-x86_64-linux/ubuntu/24.04 -> clang+llvm-15.0.0-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.2-x86_64-linux/rhel/0 -> ERROR: No version selected +15.0.2-x86_64-linux/rhel/0 -> clang+llvm-15.0.2-x86_64-unknown-linux-gnu-rhel86.tar.xz -15.0.4-x86_64-linux/arch/0 -> ERROR: No version selected +15.0.4-x86_64-linux/arch/0 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.4-x86_64-linux/linuxmint/18 -> ERROR: No version selected -15.0.4-x86_64-linux/linuxmint/19 -> ERROR: No version selected +15.0.4-x86_64-linux/linuxmint/18 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/linuxmint/19 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.4-x86_64-linux/ubuntu/14.04 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/16.04 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/18.04.5 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/18.04.6 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/18.04 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/20.04 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/20.10 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/22.04 -> ERROR: No version selected -15.0.4-x86_64-linux/ubuntu/24.04 -> ERROR: No version selected +15.0.4-x86_64-linux/ubuntu/14.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/16.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/18.04.5 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/18.04.6 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/18.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/20.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/20.10 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/22.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz +15.0.4-x86_64-linux/ubuntu/24.04 -> clang+llvm-15.0.4-x86_64-linux-gnu-rhel-8.4.tar.xz -15.0.5-x86_64-linux/rhel/0 -> ERROR: No version selected +15.0.5-x86_64-linux/rhel/0 -> clang+llvm-15.0.5-x86_64-linux-gnu-ubuntu-18.04.tar.xz -15.0.6-x86_64-linux/rhel/0 -> ERROR: No version selected +15.0.6-x86_64-linux/rhel/0 -> clang+llvm-15.0.6-x86_64-linux-gnu-ubuntu-18.04.tar.xz -16.0.0-x86_64-linux/rhel/0 -> ERROR: No version selected +16.0.0-x86_64-linux/rhel/0 -> clang+llvm-16.0.0-x86_64-linux-gnu-ubuntu-18.04.tar.xz -16.0.2-x86_64-linux/rhel/0 -> ERROR: No version selected +16.0.2-x86_64-linux/rhel/0 -> clang+llvm-16.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz -16.0.3-x86_64-linux/rhel/0 -> ERROR: No version selected +16.0.3-x86_64-linux/rhel/0 -> clang+llvm-16.0.3-x86_64-linux-gnu-ubuntu-22.04.tar.xz -16.0.4-x86_64-linux/rhel/0 -> ERROR: No version selected +16.0.4-x86_64-linux/rhel/0 -> clang+llvm-16.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz -17.0.2-x86_64-linux/rhel/0 -> ERROR: No version selected +17.0.2-x86_64-linux/rhel/0 -> clang+llvm-17.0.2-x86_64-linux-gnu-ubuntu-22.04.tar.xz -17.0.4-x86_64-linux/rhel/0 -> ERROR: No version selected +17.0.4-x86_64-linux/rhel/0 -> clang+llvm-17.0.4-x86_64-linux-gnu-ubuntu-22.04.tar.xz -17.0.5-x86_64-linux/rhel/0 -> ERROR: No version selected +17.0.5-x86_64-linux/rhel/0 -> clang+llvm-17.0.5-x86_64-linux-gnu-ubuntu-22.04.tar.xz -17.0.6-x86_64-linux/rhel/0 -> ERROR: No version selected +17.0.6-x86_64-linux/rhel/0 -> clang+llvm-17.0.6-x86_64-linux-gnu-ubuntu-22.04.tar.xz -18.1.4-x86_64-linux/rhel/0 -> ERROR: No version selected +18.1.4-x86_64-linux/rhel/0 -> clang+llvm-18.1.4-x86_64-linux-gnu-ubuntu-18.04.tar.xz -18.1.7-x86_64-linux/rhel/0 -> ERROR: No version selected +18.1.7-x86_64-linux/rhel/0 -> clang+llvm-18.1.7-x86_64-linux-gnu-ubuntu-18.04.tar.xz -18.1.8-x86_64-linux/rhel/0 -> ERROR: No version selected +18.1.8-x86_64-linux/rhel/0 -> clang+llvm-18.1.8-x86_64-linux-gnu-ubuntu-18.04.tar.xz ```
1 parent 2fdfdd5 commit ed12128

File tree

2 files changed

+88
-113
lines changed

2 files changed

+88
-113
lines changed

toolchain/internal/llvm_distributions.bzl

Lines changed: 22 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -757,6 +757,8 @@ _UBUNTU_VERSIONS = [
757757
"linux-gnu-ubuntu-18.04",
758758
"linux-gnu-ubuntu-16.04",
759759
"linux-gnu-ubuntu-14.04",
760+
"linux-ubuntu-", # Version prefix to catch other versions.
761+
"linux-gnu-ubuntu-", # Version prefix to catch other versions.
760762
"linux-gnu",
761763
"unknown-linux-gnu",
762764
"unknown-linux-gnu-rhel86",
@@ -775,6 +777,9 @@ def _dist_to_os_names(dist, default_os_names = []):
775777
"linux-sles12.2",
776778
"linux-sles11.3",
777779
"linux-sles",
780+
# The below rhel/ubuntu selection implements backwards compatibility
781+
# with the old predictions. However suse is not close to either. So
782+
# We are not using `_UBUNTU_VERSIONS` here.
778783
"unknown-linux-gnu-rhel86",
779784
"linux-gnu-ubuntu-24.04",
780785
"linux-gnu-ubuntu-22.04",
@@ -787,8 +792,9 @@ def _dist_to_os_names(dist, default_os_names = []):
787792
return [
788793
"linux-gnu",
789794
"unknown-linux-gnu",
790-
# The Ubuntu list could be replaced with _UBUNTU_VERSIONS which
791-
# Spawns more selections and changes a few to near Ubuntu versions.
795+
# The below ubuntu selection implements backwards compatibility
796+
# with the old predictions. However suse is not close to either. So
797+
# We are not using `_UBUNTU_VERSIONS` here.
792798
"linux-gnu-ubuntu-22.04",
793799
"linux-gnu-ubuntu-20.04",
794800
"linux-gnu-ubuntu-18.04",
@@ -800,24 +806,16 @@ def _dist_to_os_names(dist, default_os_names = []):
800806
"unknown-linux-gnu-rhel86",
801807
"linux-gnu",
802808
"unknown-linux-gnu",
803-
# The Ubuntu list could be replaced with _UBUNTU_VERSIONS which
804-
# Spawns more selections and changes a few to near Ubuntu versions.
805-
"linux-gnu-ubuntu-22.04",
806-
"linux-gnu-ubuntu-20.04",
807-
"linux-gnu-ubuntu-18.04",
808-
"linux-gnu-ubuntu-16.04",
809-
"linux-ubuntu-20.04",
810-
"linux-ubuntu-18.04",
811-
"linux-ubuntu-18.04.6",
812-
"linux-ubuntu-18.04.5",
813-
"linux-ubuntu-16.04",
814-
]
809+
] + _UBUNTU_VERSIONS
815810
if dist.name == "freebsd":
816811
return ["unknown-freebsd", "unknown-freebsd-"]
817812
if dist.name == "raspbian":
818813
return ["linux-gnueabihf", "linux-gnu"]
819814
if dist.name in ["rhel", "ol", "almalinux"]:
820-
return ["linux-rhel-", "linux-gnu-rhel-"]
815+
return [
816+
"linux-rhel-",
817+
"linux-gnu-rhel-",
818+
] + _UBUNTU_VERSIONS
821819
if dist.name == "debian":
822820
return [
823821
"linux-gnu-debian8",
@@ -892,29 +890,6 @@ def _find_llvm_basename_list(llvm_version, host_info):
892890
os = "pc-windows-msvc",
893891
),
894892
])
895-
elif dist.name in ["amzn", "suse"] and arch == "x86_64":
896-
return _find_llvm_basenames_by_stem([
897-
"clang+llvm-{llvm_version}-{arch}-{os}".format(
898-
llvm_version = llvm_version,
899-
arch = arch,
900-
os = suse_os,
901-
)
902-
for suse_os in _dist_to_os_names(dist)
903-
], is_prefix = True, return_first_match = True)
904-
elif dist.name in _UBUNTU_NAMES:
905-
arch_list = {
906-
"sparcv9": ["sparc64", "sparcv9"],
907-
}.get(arch, [arch])
908-
return _find_llvm_basenames_by_stem([
909-
"clang+llvm-{llvm_version}-{arch}-{os}".format(
910-
llvm_version = llvm_version,
911-
arch = select_arch,
912-
os = select_os,
913-
)
914-
for select_os in _dist_to_os_names(dist)
915-
for select_arch in arch_list
916-
], return_first_match = True)
917-
918893
elif dist.name == "raspbian":
919894
return _find_llvm_basenames_by_stem([
920895
"clang+llvm-{llvm_version}-{arch}-{os}".format(
@@ -925,20 +900,20 @@ def _find_llvm_basename_list(llvm_version, host_info):
925900
for select_os in _dist_to_os_names(dist)
926901
])
927902
elif os == "linux":
928-
if arch in ["aarch64", "armv7a", "mips", "mipsel"]:
929-
return _find_llvm_basenames_by_stem(["clang+llvm-{llvm_version}-{arch}-{os}".format(
930-
llvm_version = llvm_version,
931-
arch = arch,
932-
os = "linux-gnu",
933-
)])
934-
elif arch in ["sparc64", "sparcv9"]:
903+
if arch in ["aarch64", "armv7a", "mips", "mipsel", "sparc64", "sparcv9"]:
904+
arch_alias_list = {
905+
"sparc64": ["sparc64", "sparcv9"],
906+
"sparcv9": ["sparc64", "sparcv9"],
907+
}.get(arch, [arch])
908+
935909
return _find_llvm_basenames_by_stem([
936910
"clang+llvm-{llvm_version}-{arch}-{os}".format(
937911
llvm_version = llvm_version,
938912
arch = arch_alias,
939-
os = "unknown-linux-gnu",
913+
os = os_name,
940914
)
941-
for arch_alias in ["sparc64", "sparcv9"]
915+
for arch_alias in arch_alias_list
916+
for os_name in ["linux-gnu", "unknown-linux-gnu"] + _dist_to_os_names(dist)
942917
])
943918

944919
arch_alias_list = {

0 commit comments

Comments
 (0)