From 27da13a12838e2327dfddad825777c554a237215 Mon Sep 17 00:00:00 2001 From: helly25 Date: Sat, 26 Apr 2025 11:17:20 +0000 Subject: [PATCH 1/3] For V19+: * add win32.exe, win64.exe and woa.exe distributions. * find win32.exe and woad64.exe distributions automatically. --- toolchain/internal/llvm_distributions.bzl | 37 +++++++++++++++++++ .../internal/llvm_distributions.golden.txt | 12 ++++++ toolchain/internal/release_name.bzl | 9 +++++ utils/llvm_checksums.sh | 6 +-- 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/toolchain/internal/llvm_distributions.bzl b/toolchain/internal/llvm_distributions.bzl index 7b52303c3..b6073f2fb 100644 --- a/toolchain/internal/llvm_distributions.bzl +++ b/toolchain/internal/llvm_distributions.bzl @@ -533,6 +533,9 @@ _llvm_distributions = { "LLVM-19.1.0-Windows-X64.tar.xz": "a132377865d72bc7452343d59d05da63266ffc928b4072d63fb854fd42097dc4", "LLVM-19.1.0-macOS-ARM64.tar.xz": "9da86f64a99f5ce9b679caf54e938736ca269c5e069d0c94ad08b995c5f25c16", "LLVM-19.1.0-macOS-X64.tar.xz": "264f2f1e8b67f066749349ae8b4943d346cd44e099464164ef21b42a57663540", + "LLVM-19.1.0-win32.exe": "644bcaab8d3e279050810ba443c0f09660a486affec58a130fcc758a1a4af015", + "LLVM-19.1.0-win64.exe": "143827ab00c50e45729d0cdd50ccf242997078f9dd40418113ba395e53194f36", + "LLVM-19.1.0-woa64.exe": "4e1ff3c84ff0ae11c7fded3a35bb616a6672800d134d646675ba261d6457401d", "clang+llvm-19.1.0-aarch64-linux-gnu.tar.xz": "7bb54afd330fe1a1c2d4c593fa1e2dbe2abd9bf34fb3597994ff41e443cf144b", "clang+llvm-19.1.0-armv7a-linux-gnueabihf.tar.gz": "d2f9f7fe803b38dc2fa64a1b2d1d3356f230f9ba402c321d8615ba3598f5cb66", "clang+llvm-19.1.0-x86_64-pc-windows-msvc.tar.xz": "de3199fcace428386878e5a98c2be35576459f140f405eddc8b1f8e91f5dae64", @@ -541,6 +544,9 @@ _llvm_distributions = { "LLVM-19.1.1-Linux-X64.tar.xz": "8204de000b6a6921f0572e038336601e3225898e9a253c8aaa43b0a5fae8a4ce", "LLVM-19.1.1-Windows-X64.tar.xz": "dafd21646d10b7a59cf755002b608a657173c22daf63d99663eb193aedde48c1", "LLVM-19.1.1-macOS-ARM64.tar.xz": "e00def99a6b32de61fffabd4bb85290589731f3f5cb9836fd51770256cd694dd", + "LLVM-19.1.1-win32.exe": "afa2c594f74f9fd3a93db1e0fe7c9c92a76486482cf26458d0d36ab0d48453fd", + "LLVM-19.1.1-win64.exe": "95f03b6a8a0049e29898b0fadf84a0ea252f2e7f1b36db15a81aae11e912f675", + "LLVM-19.1.1-woa64.exe": "f256585b8e39cf95ce3191eb4002e269a755217f8492b240653c94c0ae077c8a", "clang+llvm-19.1.1-aarch64-linux-gnu.tar.xz": "414d2ebef10c5035e9df10a224e81b484dbe17d319373050d0c1b3b1467040d2", "clang+llvm-19.1.1-armv7a-linux-gnueabihf.tar.gz": "bf63f9092d1cd4c63d1858182ffa2a1713d4f00bc637d4169717bd5c9c905be3", "clang+llvm-19.1.1-x86_64-pc-windows-msvc.tar.xz": "621fc299fceb1bbdae927e355d1073034c9a1bbdda5a46a27e217c56af72f72a", @@ -549,6 +555,9 @@ _llvm_distributions = { "LLVM-19.1.2-Linux-X64.tar.xz": "5b7fe5b2dbbacadd0fee17ac45103c0393bc4b5a9096506a865aa2fbcba976a7", "LLVM-19.1.2-Windows-X64.tar.xz": "3aa49c72622c14caabb63f80cc156ce1d6806e12af554754ae1084bd7bc8f6ba", "LLVM-19.1.2-macOS-ARM64.tar.xz": "62eb2d8e9f610595fc53db020e26e4576c57c5853a55981292f17730916e676d", + "LLVM-19.1.2-win32.exe": "2957419ae11a6d0a14bbc65a83128c38707ebf0a0502aeea2c7dae075c902931", + "LLVM-19.1.2-win64.exe": "de0f7a467f949d649a13201d5dafb795c1f4c82f595ef6350ff35d9afef683a9", + "LLVM-19.1.2-woa64.exe": "76df5995e015e317072a3887b52f9a2163338f4eae23f09e5d3fcb025317f334", "clang+llvm-19.1.2-aarch64-linux-gnu.tar.xz": "eb9ab2b24f4b75f8010feed4a43d5a4ebf3c7e1ccff881e1cdf12a122748e7c4", "clang+llvm-19.1.2-armv7a-linux-gnueabihf.tar.gz": "5a86ae82efca724882af265e3a8d7a37f09cf217483604882365b6ecb4195f00", "clang+llvm-19.1.2-x86_64-pc-windows-msvc.tar.xz": "14e764eb79e4ed58da1b88320e33e5eb6c6064103446b47c4439b14292b99d12", @@ -558,6 +567,9 @@ _llvm_distributions = { "LLVM-19.1.3-Windows-X64.tar.xz": "1077267ca353a1e236055ed4b57d6a404d09c40b01bd27dc882870395cdc1aae", "LLVM-19.1.3-macOS-ARM64.tar.xz": "80a54a467e9e770a76ba9670e89a235224ec47578cc4d4dbd928592813732518", "LLVM-19.1.3-macOS-X64.tar.xz": "52ea30f3089af4e086a98638a16167c5a20d253d43f7146c058e3e9e6d33274f", + "LLVM-19.1.3-win32.exe": "9bab022d175ff27e35db517b71d3e428027d75ffff0d0195ccc9f20ce5a20d4f", + "LLVM-19.1.3-win64.exe": "ad63bea52fd89f62a4f30ed87895a7d38b087f604564fe50c5cf226cee4274ff", + "LLVM-19.1.3-woa64.exe": "20a4a1094f813f7c548b2ff0a23bdc7f56ef0773c9aa1041d31ba56269b298a9", "clang+llvm-19.1.3-aarch64-linux-gnu.tar.xz": "a730175e58233f20a99ecab0015d8cd0f1af5d92411ca1f9e3e472645d889bcd", "clang+llvm-19.1.3-armv7a-linux-gnueabihf.tar.gz": "b602416a0ea588da73d535050a7efc2b89bc58c69556cd2d828d413c258ba215", "clang+llvm-19.1.3-x86_64-pc-windows-msvc.tar.xz": "84789dc852e67f8507861a5dea9ed41f11ad7a6c9d3db6d52f04d72b3e4e29d3", @@ -566,6 +578,9 @@ _llvm_distributions = { "LLVM-19.1.4-Linux-X64.tar.xz": "da7e0f571b440e5ef9ae6e061ae6afc1071179e18f86f77cf630dabbed11a5f6", "LLVM-19.1.4-macOS-ARM64.tar.xz": "52245bc374fdb9f3665046fe7319b5b8165ca2732053c74f06ba1e90e142ed8e", "LLVM-19.1.4-macOS-X64.tar.xz": "eedb896c193cc3bad35a9f132d91e16cf73d33723f35d63dcaae4755872674c2", + "LLVM-19.1.4-win32.exe": "7e7ae114bfdfe4d176a16c8c2ccf19bd2a92b0a13561103b33dafa9d2328608c", + "LLVM-19.1.4-win64.exe": "b1aab7481cf2c6be83958d6b1890f9568c1ec2ec7a0a238ae7d19c8e21a00e1c", + "LLVM-19.1.4-woa64.exe": "a5f72fe384773a2cee8ca9ae91fe77747e93c8b4793a46cd12d083880e470414", "clang+llvm-19.1.4-aarch64-linux-gnu.tar.xz": "c42ea92e7a4cfad96b2b0d6c7872c6e9a9960a1d8a56c1847eca45d79cd67533", "clang+llvm-19.1.4-armv7a-linux-gnueabihf.tar.gz": "1725f51a2be83feb9e7d2c393e179fa646f85eb80d17dca8b1c65bcee43455a4", "clang+llvm-19.1.4-x86_64-pc-windows-msvc.tar.xz": "5e965a1281c9df1fda8eddab3752ee6a3139e36ce469537f216cd938c498e6c3", @@ -573,6 +588,9 @@ _llvm_distributions = { # 19.1.5 "LLVM-19.1.5-Linux-X64.tar.xz": "13e9975b026d431c945927960e5f8c0a47a155a2f600f57e85f4d1482620c65f", "LLVM-19.1.5-macOS-X64.tar.xz": "f593d45992807d03c2aeb4c968c5cab9e78403430caea21dca4b787cbca3b9f4", + "LLVM-19.1.5-win32.exe": "5db99b33285848d65f6b095f950a64293c261c80ffc28d69b7e6710d0839e69e", + "LLVM-19.1.5-win64.exe": "9b29856202d82047b504a9e501d66080bed0eaff3f1127191f4f361e0e00c770", + "LLVM-19.1.5-woa64.exe": "63d479c19c3908f8c973331edc9b576485eab6ab0809f58c79df5d209fdd8f96", "clang+llvm-19.1.5-aarch64-linux-gnu.tar.xz": "1bdc342b7d03cbcfafb2ffb8659eb0e4d5c6ddef6f56e0cad0e0c09c52577a4f", "clang+llvm-19.1.5-armv7a-linux-gnueabihf.tar.gz": "f0058f9fc80dd939609a1ac2cbf791bbaf3e66ee56eb320b93f1494f3478cb57", "clang+llvm-19.1.5-x86_64-pc-windows-msvc.tar.xz": "467d1a73ca938f47734af3baac2e78c5e730285469096ee088bb5c9590cabd70", @@ -581,6 +599,9 @@ _llvm_distributions = { "LLVM-19.1.6-Linux-X64.tar.xz": "d55dcbb309de7ade4e3073ec3ac3fac4d3ff236d54df3c4de04464fe68bec531", "LLVM-19.1.6-macOS-ARM64.tar.xz": "2c28bcd132ce3db367354c892839a962aa01b7b850a25e61316178f2ac72ecac", "LLVM-19.1.6-macOS-X64.tar.xz": "58ce29a2adb82872b6de49018091c6d844ca555a9b017faa698f6df409b25281", + "LLVM-19.1.6-win32.exe": "110bf3c367635e2a29360864dbd57b7f7531b6e041866acbc45e39644e131b5c", + "LLVM-19.1.6-win64.exe": "ccb7140dd9eb2c0e8ab1feed2d38c6fd22a161c1843b48b444c500f2f60e4f1c", + "LLVM-19.1.6-woa64.exe": "fb8308726d4a43934462a4aaa458041b2a21de325b6f79c6689cb0e63e702847", "clang+llvm-19.1.6-aarch64-linux-gnu.tar.xz": "f6fd8cf8bb12f507c4a55609ef6a435b3c59bc658008b712b80ec1cdc1ee9325", "clang+llvm-19.1.6-armv7a-linux-gnueabihf.tar.gz": "3ce188e3394c2bf2d2f2ec1c63f4e450e10092d642953d1b73940cfe9213f9ba", "clang+llvm-19.1.6-x86_64-pc-windows-msvc.tar.xz": "d2e64d4d6eca9199ea5b8ac018e626fe2f2814ab90247c335fc9fd7448681bb3", @@ -589,6 +610,9 @@ _llvm_distributions = { "LLVM-19.1.7-Linux-X64.tar.xz": "4a5ec53951a584ed36f80240f6fbf8fdd46b4cf6c7ee87cc2d5018dc37caf679", "LLVM-19.1.7-macOS-ARM64.tar.xz": "d93bf12952d89fe4ec7501c40475718b722407da6a8d651f05c995863468e570", "LLVM-19.1.7-macOS-X64.tar.xz": "49405e75fbe7ad6f8139a33f59ec8c5112b75b3027405c7b92d19f4c6f02c78a", + "LLVM-19.1.7-win32.exe": "3d7044fa307d3183e4ee2a98e12dd0523ced58f1d1c95c5e057694fb75beb51a", + "LLVM-19.1.7-win64.exe": "f19ae5bc4823ac69ec01dc2ded503ec80a04ad2208dda1595d1f0413c148ef90", + "LLVM-19.1.7-woa64.exe": "08d871c9a20caf0987ede1a4e44d489e28854c9f2fff3da98b486891f4856e05", "clang+llvm-19.1.7-aarch64-linux-gnu.tar.xz": "a73d9326e5d756e3937df6a9f621664d76403b59119f741901106b387e53a6ae", "clang+llvm-19.1.7-armv7a-linux-gnueabihf.tar.gz": "dedde2acbc164649b77d6f6635e8551218c9aed5a6df4c09b2614aaccc0c05b2", "clang+llvm-19.1.7-x86_64-pc-windows-msvc.tar.xz": "b4557b4f012161f56a2f5d9e877ab9635cafd7a08f7affe14829bd60c9d357f0", @@ -597,6 +621,9 @@ _llvm_distributions = { "LLVM-20.1.0-Linux-ARM64.tar.xz": "9d1bbf3f6d4d011e3b8b4b585f686bc968474917f37d3b82b4a534f456168c67", "LLVM-20.1.0-Linux-X64.tar.xz": "954ac51498519f6ed9540714fb04bc401f70039b296a8160dd1559be380788d7", "LLVM-20.1.0-macOS-ARM64.tar.xz": "2c42ec26ec50c4bf8b95585f762b9d2f5b385d170dee772d9c1d6c9a7190dcef", + "LLVM-20.1.0-win32.exe": "bb13ac6af1bd30849b7f4fcea9c5aaf93e43e86399360c8a3e7488379d01f2ea", + "LLVM-20.1.0-win64.exe": "64b9ee39d07c1adca999a132b7367fbeaa649f4e829e07d8e8766626235a1aa7", + "LLVM-20.1.0-woa64.exe": "f72856191694c3e77509c2bc7c0b91c385c5a37010eddbc2b8daacf07f659d79", "clang+llvm-20.1.0-aarch64-pc-windows-msvc.tar.xz": "f52e40d68843ed6205858e817ed791295ef51e526037186352a1aeac4a59e51a", "clang+llvm-20.1.0-armv7a-linux-gnueabihf.tar.gz": "487d38a49bd64ef03b46ce1dc6f32645052ded09f96ada847e4f46e69c799d01", "clang+llvm-20.1.0-x86_64-pc-windows-msvc.tar.xz": "91e29416f4a0c188368f0540a5538efc0d8a9f7134afba7a2160296472ce84eb", @@ -605,6 +632,9 @@ _llvm_distributions = { "LLVM-20.1.1-Linux-ARM64.tar.xz": "09f5a08ef6c96a7c6c11258b3053ae5ed11a6717ffd9fd01bbebd75d8038a0fc", "LLVM-20.1.1-Linux-X64.tar.xz": "b1f40360adbf31934d5d3d999c5f91f7e52e089ae984d237565cc4c23bbfa283", "LLVM-20.1.1-macOS-ARM64.tar.xz": "ae52012b28bb43e1aa698aa347e37d06edb4643895b8bb189ed275025cd349ed", + "LLVM-20.1.1-win32.exe": "a343d8ef021194af3941854627cc4d49581ac884f326416c2590d3330cb1d17e", + "LLVM-20.1.1-win64.exe": "40fe7010123a501eb72d25a6e71ba536a10b5db47f6c19e3cf01f6157f7ff54a", + "LLVM-20.1.1-woa64.exe": "b3ccda1eb9c8b3a1cb6d061ead07705043115dfde2c1c92670fc8ea631a10262", "clang+llvm-20.1.1-aarch64-pc-windows-msvc.tar.xz": "6ee4c1a8c51cf081e19a7225d802d160cc888cdc3a8da07dcbdb5768e3160244", "clang+llvm-20.1.1-armv7a-linux-gnueabihf.tar.gz": "c443e13fc8293f688acdd1d715cb56cd36c763a0525b86265417d57cdfa42994", "clang+llvm-20.1.1-x86_64-pc-windows-msvc.tar.xz": "f8114cb674317e8a303731b1f9d22bf37b8c571b64f600abe528e92275ed4ace", @@ -613,6 +643,9 @@ _llvm_distributions = { "LLVM-20.1.2-Linux-ARM64.tar.xz": "41a6a2892cf66cd7c275753f2d1afe0e33b26c9674eff7d114fb36a52253436a", "LLVM-20.1.2-Linux-X64.tar.xz": "3a392f151375eeed4fd50c6b6f7c7203da37b373a57f220ae58ef62b8aade3cc", "LLVM-20.1.2-macOS-ARM64.tar.xz": "e502de0ccaa12dec9b7499c9e15e896006feda438078aba8b97894ae3218d4e3", + "LLVM-20.1.2-win32.exe": "0a47463d3be7301e4803388f7bbee468687e277577b6dd6358aa501c87cfa8a7", + "LLVM-20.1.2-win64.exe": "210bfb78034addb7b1162bb9bbc9c907cc8aec4fda95cc64e6a1f068718d8197", + "LLVM-20.1.2-woa64.exe": "d75028c79aab926c2c14a8fcf87f266695a525b70a6581bbaa80ea5cb8fca364", "clang+llvm-20.1.2-aarch64-pc-windows-msvc.tar.xz": "cb82f730a7d0d70866d4228fedafb8aca36d7dc3fd8a74a570f72ed95a52d5ed", "clang+llvm-20.1.2-armv7a-linux-gnueabihf.tar.gz": "79ea2536f45a9f4c3fa89c3c03dae29be2e5fcd1bea2e163939ba527aa913219", "clang+llvm-20.1.2-x86_64-pc-windows-msvc.tar.xz": "8e771a685cd718303ea0d632a8a95ad7b3cb17068f3952fbefa64a77290324d8", @@ -622,6 +655,9 @@ _llvm_distributions = { "LLVM-20.1.3-Linux-X64.tar.xz": "c75103f520626cd2137a7e907998f12fff64136514ade1bb0a259995ae2de80e", "LLVM-20.1.3-macOS-ARM64.tar.xz": "70cd48fcd6b838690149bd00a85270d054c1c410d430f7c51f6d6e9019790d62", "LLVM-20.1.3-macOS-X64.tar.xz": "c3043862e4715ed3dc9f2c83e2a600e75ffecc005b977a391af50664a63fed2b", + "LLVM-20.1.3-win32.exe": "d76de655141ee5fdc31e043192e80d70a4b31e07a36be36e7257e70f03ee87ba", + "LLVM-20.1.3-win64.exe": "0a18ea761147a7de69d6dd60ef81b70496e5255aec6caff22d45da85188614af", + "LLVM-20.1.3-woa64.exe": "cadc1d94e107d373000b770cd071f39ef60b2a8415322be0890131da00a2ea29", "clang+llvm-20.1.3-aarch64-pc-windows-msvc.tar.xz": "fcbbd259fc4430f96f4a1ee51bc41038cd1e93138675d2f46baa2d479f0eb306", "clang+llvm-20.1.3-armv7a-linux-gnueabihf.tar.gz": "fc6ebfbabbbfea74f164f7c19ae953bcf066d34d348c6ef758d32fb87872b9e3", "clang+llvm-20.1.3-x86_64-pc-windows-msvc.tar.xz": "3831e10ca8409e2288d70491c2fd925f5d5f9b644abf4553552887ff9ce32798", @@ -779,6 +815,7 @@ def _write_distributions_impl(ctx): """ arch_list = [ "aarch64", + "x86_32", "x86_64", ] os_list = [ diff --git a/toolchain/internal/llvm_distributions.golden.txt b/toolchain/internal/llvm_distributions.golden.txt index 13ebd1e09..a0d2d9766 100644 --- a/toolchain/internal/llvm_distributions.golden.txt +++ b/toolchain/internal/llvm_distributions.golden.txt @@ -10,34 +10,46 @@ version: 20.1.0 version: 20.1.1 version: 20.1.2 version: 20.1.3 +del: LLVM-19.1.0-win64.exe del: clang+llvm-19.1.0-aarch64-linux-gnu.tar.xz del: clang+llvm-19.1.0-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.0-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.1-win64.exe del: clang+llvm-19.1.1-aarch64-linux-gnu.tar.xz del: clang+llvm-19.1.1-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.1-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.2-win64.exe del: clang+llvm-19.1.2-aarch64-linux-gnu.tar.xz del: clang+llvm-19.1.2-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.2-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.3-win64.exe del: clang+llvm-19.1.3-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.3-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.4-win64.exe del: clang+llvm-19.1.4-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.4-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.5-win64.exe del: clang+llvm-19.1.5-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.5-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.6-win64.exe del: clang+llvm-19.1.6-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.6-x86_64-pc-windows-msvc.tar.xz +del: LLVM-19.1.7-win64.exe del: clang+llvm-19.1.7-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-19.1.7-x86_64-pc-windows-msvc.tar.xz +del: LLVM-20.1.0-win64.exe del: clang+llvm-20.1.0-aarch64-pc-windows-msvc.tar.xz del: clang+llvm-20.1.0-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-20.1.0-x86_64-pc-windows-msvc.tar.xz +del: LLVM-20.1.1-win64.exe del: clang+llvm-20.1.1-aarch64-pc-windows-msvc.tar.xz del: clang+llvm-20.1.1-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-20.1.1-x86_64-pc-windows-msvc.tar.xz +del: LLVM-20.1.2-win64.exe del: clang+llvm-20.1.2-aarch64-pc-windows-msvc.tar.xz del: clang+llvm-20.1.2-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-20.1.2-x86_64-pc-windows-msvc.tar.xz +del: LLVM-20.1.3-win64.exe del: clang+llvm-20.1.3-aarch64-pc-windows-msvc.tar.xz del: clang+llvm-20.1.3-armv7a-linux-gnueabihf.tar.gz del: clang+llvm-20.1.3-x86_64-pc-windows-msvc.tar.xz diff --git a/toolchain/internal/release_name.bzl b/toolchain/internal/release_name.bzl index c45c8042e..b14389209 100755 --- a/toolchain/internal/release_name.bzl +++ b/toolchain/internal/release_name.bzl @@ -212,6 +212,15 @@ def _linux(llvm_version, distname, version, arch): ) def llvm_release_name_19(llvm_version, rctx_arch, rctx_os): + if rctx_os == "windows": + if rctx_arch == "x86_32": + return "LLVM-{llvm_version}-win32.exe".format(llvm_version = llvm_version) + if rctx_arch == "aarch64": + return "LLVM-{llvm_version}-woa64.exe".format(llvm_version = llvm_version) + # For Win64 we prefer `LLVM--Windows-X64.tar.xz` over the other two options: + # `LLVM--win64.exe` + # `clang+llvm--x86_64-pc-windows-msvc.tar.xz` + # TODO(helly25): Automatically find the correct one. arch = { "aarch64": "ARM64", "x86_64": "X64", diff --git a/utils/llvm_checksums.sh b/utils/llvm_checksums.sh index 9e2712855..797a18d03 100755 --- a/utils/llvm_checksums.sh +++ b/utils/llvm_checksums.sh @@ -61,7 +61,7 @@ llvm_host() { local url_base="releases.llvm.org/${llvm_version}" output_dir="${tmp_dir}/${url_base}" wget --recursive --level 1 --directory-prefix="${tmp_dir}" \ - --accept-regex "(clang%2bllvm|LLVM)-.*tar.(xz|gz)$" "http://${url_base}/" + --accept-regex "(clang%2bllvm|LLVM)-.*(.exe|.tar.gz|.tar.xz)$" "http://${url_base}/" } github_host() { @@ -71,7 +71,7 @@ github_host() { cd "${output_dir}" curl -s "https://api.github.com/repos/llvm/llvm-project/releases/tags/llvmorg-${llvm_version}" | tee ./releases.json | - jq '.assets[]|select(any(.name; test("^(clang[+]llvm|LLVM)-.*tar.(xz|gz)$")))|.browser_download_url' | + jq '.assets[]|select(any(.name; test("^(clang[+]llvm|LLVM)-.*(.exe|.tar.gz|.tar.xz)$")))|.browser_download_url' | tee ./filtered_urls.txt | xargs -n1 curl -L -O -C - ) @@ -87,7 +87,7 @@ echo "" echo "====" echo "Checksums for clang+llvm distributions are (${output_dir}):" echo " # ${llvm_version}" -find "${output_dir}" -type f \( -name 'clang%2?llvm-*.tar.*' -o -name 'LLVM-*.tar.*' \) \( -name '*.gz' -o -name '*.xz' \) -exec shasum -a 256 {} \; | +find "${output_dir}" -type f \( -name 'clang%2?llvm-*' -o -name 'LLVM-*' \) \( -name '*.exe' -o -name '*.tar.gz' -o -name '*.tar.xz' \) -exec shasum -a 256 {} \; | sed -e "s@${output_dir}/@@" | awk '{ printf " \"%s\": \"%s\",\n", $2, $1 }' | sed -e 's/%2[Bb]/+/' | From feeadc706f451dba503c372f451e74fcb306cf2d Mon Sep 17 00:00:00 2001 From: helly25 Date: Sat, 26 Apr 2025 11:23:03 +0000 Subject: [PATCH 2/3] Format --- toolchain/internal/release_name.bzl | 2 ++ 1 file changed, 2 insertions(+) diff --git a/toolchain/internal/release_name.bzl b/toolchain/internal/release_name.bzl index b14389209..d98e52f8b 100755 --- a/toolchain/internal/release_name.bzl +++ b/toolchain/internal/release_name.bzl @@ -217,10 +217,12 @@ def llvm_release_name_19(llvm_version, rctx_arch, rctx_os): return "LLVM-{llvm_version}-win32.exe".format(llvm_version = llvm_version) if rctx_arch == "aarch64": return "LLVM-{llvm_version}-woa64.exe".format(llvm_version = llvm_version) + # For Win64 we prefer `LLVM--Windows-X64.tar.xz` over the other two options: # `LLVM--win64.exe` # `clang+llvm--x86_64-pc-windows-msvc.tar.xz` # TODO(helly25): Automatically find the correct one. + arch = { "aarch64": "ARM64", "x86_64": "X64", From f8ebf122ee3d3b453d6f8a04ea6748ee90bea7ca Mon Sep 17 00:00:00 2001 From: helly25 Date: Sat, 26 Apr 2025 16:38:29 +0000 Subject: [PATCH 3/3] Extraxt exe with 7zip since msiexe does not work. --- toolchain/internal/llvm_distributions.bzl | 35 +++++++++++++++++------ 1 file changed, 26 insertions(+), 9 deletions(-) diff --git a/toolchain/internal/llvm_distributions.bzl b/toolchain/internal/llvm_distributions.bzl index b6073f2fb..cf5186c3c 100644 --- a/toolchain/internal/llvm_distributions.bzl +++ b/toolchain/internal/llvm_distributions.bzl @@ -714,12 +714,29 @@ def download_llvm(rctx): if not urls: urls, sha256, strip_prefix = _distribution_urls(rctx) - res = rctx.download_and_extract( - urls, - sha256 = sha256, - stripPrefix = strip_prefix, - auth = _get_auth(rctx, urls), - ) + filename = urls[0].split("?")[0] + basename = filename.split("/")[-1] + if urls[0].endswith(".exe"): + res = rctx.download( + urls, + sha256 = sha256, + auth = _get_auth(rctx, urls), + output = basename, + ) + rctx.execute( + arguments = [ + "C:/Program Files/7-Zip7z.exe", + "x", + basename, + ], + ) + else: + res = rctx.download_and_extract( + urls, + sha256 = sha256, + stripPrefix = strip_prefix, + auth = _get_auth(rctx, urls), + ) if rctx.attr.libclang_rt: clang_versions = rctx.path("lib/clang").readdir() @@ -832,9 +849,9 @@ def _write_distributions_impl(ctx): for prefix in ["LLVM-", "clang+llvm-"]: if name.startswith(prefix): version = name.split("-", 2)[1] - if not _version_ge(version, MIN_VERSION): - continue - version_list.append(version) + if _version_ge(version, MIN_VERSION): + version_list.append(version) + break for version in _llvm_distributions_base_url.keys(): if not _version_ge(version, MIN_VERSION): continue