From 23b805e0e84fe17660e291111cfb50240d7b941c Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Thu, 8 May 2025 19:54:55 -0400 Subject: [PATCH 1/7] Implement OCaml compiler support --- Artifacts.toml | 154 ++++++++++++++++++++++++++++++++++++++++++++++++ src/Rootfs.jl | 21 +++++++ src/Runner.jl | 29 +++++++++ test/rootfs.jl | 10 ++++ test/runners.jl | 21 +++++++ 5 files changed, 235 insertions(+) diff --git a/Artifacts.toml b/Artifacts.toml index 5390ee80..c41e2b88 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -3804,6 +3804,160 @@ os = "linux" sha256 = "80c9869b8421b7efdba72f13ec2c24c7ef77b533ad75d8c72739a312adcaef75" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/LLVMBootstrap-v9.0.1+0/LLVMBootstrap.v9.0.1.x86_64-linux-musl.unpacked.tar.gz" +[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "1f9faa347127cf618ef813b387d721e8af22c276" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "ac11194f566997f6da4a86ef39e9e28e57d33884e8467b7a48555b84797e0ee2" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "9f0d650ccbd8200284ec7bb8100cc4c6ce44ca2c" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "8d1c3c9fdb01159c22380ff8b0178813b9b26adf78873ac970e56580fbe11037" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "43825a0f78b3cd4537bc7450e0b9d0ca9dab2468" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "cac028a1fec129df5ca919a1c978f5333a3673025c523ffb34e3b3a67c4208c6" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "8e050f2038df590797f3f69f158534324f7ce2c9" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "2b15cde9b66c82e4da4ec336566fb162f6bfae9d0c5187e1d23e8335de549c30" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "c27e000b6061db267d69bb554142a6036b1a1883" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "7352645dc52064131f9fc20d3c8db8708400bf1b9737701339cc4b3f7febf02b" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "10b7c45f5cdc390b07ac18f6de7b773bc6303070" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "b3327ffe3525604f2793ab07b823ca70fcd73e0b97af733d98ccda0e0fc8f680" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "ac1a2a8809bde935390af5d6e0681c68a00a4db1" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "2a4b7d421a203e217e99034f804f46c5e3c564671bafc172eecc711e4f382726" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "1ba0493deaa6ec2b3d1b468ef1cdd633af6e9ab1" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "0d824d99193c18b1ff6380a128605bd0237d6ed5f771ca6948ac0c796d302bd2" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "81ee49ddc2991943d42f5f958117b9a12e6d8542" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "f0e5b04a1beb69bcaab12289e5bc7237e14d8520c8b66edf0b8f90eda828b24e" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "adfa663e0cf79e8fa40afb1dfa3d5f2b13c144ed" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "57f6bbe7af42ef089809fc50b5881f4c8c6c5216813c455b8319b753b60d1b40" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "e09f0e9d114794327a1d16f18fca33fbf9dac98b" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "296cebca96f8e045292730426c5c3baab3a8785ad9a9c5d4c7638e63f556c71a" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "3b6ebd3c7d07a6eb2980d559c17f94ff921fa510" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "ebf316f8c81be0c74439be1ec45d0ebc4c42b8303487d6bb3136f6e64ecc2ee9" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "85b2f93bedd5a49457a508522c9184221a85494b" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "b7b4c0a802cd17a2f315186ac102318273fe044ae1c4a829ff01d7fa054d57fa" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "d49567a0c987074f9d3509c63ca73cce5b3512a0" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "c35291496ff5f9d17abbc7182d0a835857a9ee5012b2d1c08421469e7a0bb9ef" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + [["PlatformSupport-aarch64-apple-darwin20.v2021.8.10.x86_64-linux-musl.squashfs"]] arch = "x86_64" git-tree-sha1 = "e99cd089f71d5d9605621ba7dd6d32994bba3de8" diff --git a/src/Rootfs.jl b/src/Rootfs.jl index 395b7853..74257ab4 100644 --- a/src/Rootfs.jl +++ b/src/Rootfs.jl @@ -383,6 +383,10 @@ struct RustBuild <: CompilerBuild version::VersionNumber end +struct OCamlBuild <: CompilerBuild + version::VersionNumber +end + getversion(c::CompilerBuild) = c.version getabi(c::CompilerBuild) = c.abi @@ -418,6 +422,8 @@ const available_go_builds = GoBuild.(get_available_builds("Go.")) const available_rust_builds = RustBuild.(get_available_builds("RustBase.")) +const available_ocaml_builds = OCamlBuild.(get_available_builds("OCaml-")) + """ gcc_version(p::AbstractPlatform, GCC_builds::Vector{GCCBuild}, compilers::Vector{Symbol}=[:c]; @@ -586,6 +592,7 @@ function choose_shards(p::AbstractPlatform; LLVM_builds::Vector{LLVMBuild}=available_llvm_builds, Rust_builds::Vector{RustBuild}=available_rust_builds, Go_builds::Vector{GoBuild}=available_go_builds, + OCaml_builds::Vector{OCamlBuild}=available_ocaml_builds, archive_type::Symbol = (use_squashfs[] ? :squashfs : :unpacked), bootstrap_list::Vector{Symbol} = bootstrap_list, # Because GCC has lots of compatibility issues, we always default to @@ -599,6 +606,8 @@ function choose_shards(p::AbstractPlatform; preferred_rust_version::VersionNumber = maximum(getversion.(Rust_builds)), # Always default to the latest Go version preferred_go_version::VersionNumber = maximum(getversion.(Go_builds)), + # Always default to the latest OCaml version + preferred_ocaml_version::VersionNumber = maximum(getversion.(OCaml_builds)), ) function find_shard(name, version, archive_type; target = nothing) @@ -713,6 +722,18 @@ function choose_shards(p::AbstractPlatform; push!(shards, find_shard("Go", Go_build, archive_type)) end + + if :ocaml in compilers + # Make sure the selected OCaml toolchain version is available + if preferred_ocaml_version in getversion.(OCaml_builds) + OCaml_build = preferred_ocaml_version + else + error("Requested OCaml toolchain $(preferred_ocaml_version) not available in $(OCaml_builds)") + end + + push!(shards, find_shard("OCaml", OCaml_build, archive_type; + target = isa(p, AnyPlatform) ? default_host_platform : p)) + end else function find_latest_version(name) versions = [cs.version for cs in all_compiler_shards() diff --git a/src/Runner.jl b/src/Runner.jl index 3999de26..b8049b58 100644 --- a/src/Runner.jl +++ b/src/Runner.jl @@ -729,6 +729,14 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr end gofmt(io::IO, p::AbstractPlatform) = wrapper(io, "/opt/$(host_target)/go/bin/gofmt"; allow_ccache=false) + # OCaml stuff + function ocaml_wrapper(io::IO, tool::String, p::AbstractPlatform) + return wrapper(io, "/opt/$(aatriplet(p))/bin/$(tool)") + end + ocamlc(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "ocamlc.opt", p) + ocamlopt(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "ocamlopt.opt", p) + flexlink(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "flexlink", p) + # Rust stuff function rust_flags!(p::AbstractPlatform, flags::Vector{String} = String[]) if Sys.islinux(p) @@ -965,6 +973,16 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr end end + # Generate OCaml stuff + if :ocaml in compilers + write_wrapper(ocamlc, p, "$(t)-ocamlc.opt") + write_wrapper(ocamlopt, p, "$(t)-ocamlopt.opt") + + if Sys.iswindows(p) + write_wrapper(flexlink, p, "$(t)-flexlink") + end + end + # Generate go stuff if :go in compilers write_wrapper(go, p, "$(t)-go") @@ -1011,6 +1029,12 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr if :rust in compilers append!(default_tools, ("rustc","rustup","cargo")) end + if :ocaml in compilers + append!(default_tools, ("ocamlc.opt", "ocamlopt.opt")) + if Sys.iswindows(platform) + push!(default_tools, "flexlink") + end + end if :go in compilers append!(default_tools, ("go", "gofmt")) end @@ -1268,6 +1292,11 @@ function platform_envs(platform::AbstractPlatform, src_name::AbstractString; )) end + # OCaml stuff + if :ocaml in compilers + # no environment variables required (yet) + end + # Rust stuff if :rust in compilers merge!(mapping, Dict( diff --git a/test/rootfs.jl b/test/rootfs.jl index dd9e98c1..9267185b 100644 --- a/test/rootfs.jl +++ b/test/rootfs.jl @@ -138,6 +138,16 @@ end @test_throws ErrorException choose_shards(platform; preferred_go_version = v"1.14", (common_opts)...) end + @testset "OCaml toolchain selection" begin + platform = Platform("x86_64", "linux") + common_opts = (preferred_gcc_version=v"9", compilers=[:c, :ocaml]) + + shards = choose_shards(platform; preferred_ocaml_version = v"5.4", (common_opts)... ) + @test filter(s-> s.name == "OCaml", shards)[end].version == v"5.4" + + @test_throws ErrorException choose_shards(platform; preferred_ocaml_version = v"4.1", (common_opts)...) + end + @testset "GCC ABI matching" begin # Preferred libgfortran version and C++ string ABI platform = Platform("x86_64", "freebsd") diff --git a/test/runners.jl b/test/runners.jl index 7a12eb05..18ec886c 100644 --- a/test/runners.jl +++ b/test/runners.jl @@ -581,4 +581,25 @@ end @test run(ur, `/bin/bash -c "$(test_script)"`, iobuff) end end + @testset "basic program" begin + mktempdir() do dir + compilers = [:c, :ocaml] + ur = preferred_runner()(dir; platform=Platform("x86_64", "linux"; libc="glibc"), preferred_gcc_version=v"5", compilers) + # Make sure the runner platform is concrete even if the requested platform isn't + @test !isnothing(libgfortran_version(ur.platform)) + @test !isnothing(cxxstring_abi(ur.platform)) + iobuff = IOBuffer() + test_script = raw""" + set -e + mkdir -p ${prefix}/bin + echo 'let () = print_endline "hello world"' > hello.ml + ocamlopt -o ${prefix}/bin/hello_world${exeext} hello.ml + install_license /usr/share/licenses/MIT + + # Make sure it runs + ${prefix}/bin/hello_world${exeext} + """ + @test run(ur, `/bin/bash -c "$(test_script)"`, iobuff) + end + end end From 1be45788bff965fdfdc7345f90de0e3f70839188 Mon Sep 17 00:00:00 2001 From: Cody Tapscott Date: Mon, 12 May 2025 07:09:40 -0400 Subject: [PATCH 2/7] Use `aarch64-apple-darwin20` / `x86_64-apple-darwin14` for shards --- Artifacts.toml | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index c41e2b88..dc361b23 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -3804,27 +3804,27 @@ os = "linux" sha256 = "80c9869b8421b7efdba72f13ec2c24c7ef77b533ad75d8c72739a312adcaef75" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/LLVMBootstrap-v9.0.1+0/LLVMBootstrap.v9.0.1.x86_64-linux-musl.unpacked.tar.gz" -[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +[["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "1f9faa347127cf618ef813b387d721e8af22c276" +git-tree-sha1 = "c89112114146d405a3fa393913a6a81aaebd1c89" lazy = true libc = "musl" os = "linux" - [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "ac11194f566997f6da4a86ef39e9e28e57d33884e8467b7a48555b84797e0ee2" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "ed44e69ff293ce2c222ca2cbdb4dd81ce7526a69c7c5ec9ab9e07211b56ea357" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" -[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +[["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" git-tree-sha1 = "9f0d650ccbd8200284ec7bb8100cc4c6ce44ca2c" lazy = true libc = "musl" os = "linux" - [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked".download]] sha256 = "8d1c3c9fdb01159c22380ff8b0178813b9b26adf78873ac970e56580fbe11037" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" @@ -3870,27 +3870,27 @@ os = "linux" sha256 = "b3327ffe3525604f2793ab07b823ca70fcd73e0b97af733d98ccda0e0fc8f680" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" -[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +[["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "ac1a2a8809bde935390af5d6e0681c68a00a4db1" +git-tree-sha1 = "cb559d35f820a3323742c58912c02c8bb2d87cc1" lazy = true libc = "musl" os = "linux" - [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "2a4b7d421a203e217e99034f804f46c5e3c564671bafc172eecc711e4f382726" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "4867ca2f6e21d7cf5589b2f1c8bf73e6055e9c417a0b92bf0d842ba8834e337a" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" -[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +[["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" git-tree-sha1 = "1ba0493deaa6ec2b3d1b468ef1cdd633af6e9ab1" lazy = true libc = "musl" os = "linux" - [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked".download]] sha256 = "0d824d99193c18b1ff6380a128605bd0237d6ed5f771ca6948ac0c796d302bd2" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" From 1de108a16704f47b439a813a7746abbeb31dd106 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 27 Jun 2025 13:49:54 +0200 Subject: [PATCH 3/7] Bump the GCC version when using OCaml. --- src/Rootfs.jl | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Rootfs.jl b/src/Rootfs.jl index 74257ab4..be7b506a 100644 --- a/src/Rootfs.jl +++ b/src/Rootfs.jl @@ -597,7 +597,7 @@ function choose_shards(p::AbstractPlatform; bootstrap_list::Vector{Symbol} = bootstrap_list, # Because GCC has lots of compatibility issues, we always default to # the earliest version possible. - preferred_gcc_version::VersionNumber = getversion(GCC_builds[1]), + preferred_gcc_version::Union{Nothing,VersionNumber} = nothing, # Because LLVM doesn't have compatibility issues, we always default # to the newest version possible. preferred_llvm_version::VersionNumber = getversion(LLVM_builds[end]), @@ -610,6 +610,17 @@ function choose_shards(p::AbstractPlatform; preferred_ocaml_version::VersionNumber = maximum(getversion.(OCaml_builds)), ) + # The preferred GCC version depends on the compilers we are using. + if preferred_gcc_version === nothing + preferred_gcc_version = if :ocaml in compilers + # OCaml shards have been compiled agains GCC 6 + compatible_gcc_builds = filter(b -> getversion(b) >= v"6", GCC_builds) + getversion(compatible_gcc_builds[1]) + else + getversion(GCC_builds[1]) + end + end + function find_shard(name, version, archive_type; target = nothing) # aarch64-apple-darwin is a special platform because it has a single GCCBootstrap # with a version number different from any other platforms: match this shard with a From c1f29700263fcd3684ef2d97706224e651802a11 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 27 Jun 2025 13:50:06 +0200 Subject: [PATCH 4/7] Add additional OCaml wrappers. --- src/Runner.jl | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Runner.jl b/src/Runner.jl index b8049b58..d9fe66f2 100644 --- a/src/Runner.jl +++ b/src/Runner.jl @@ -736,6 +736,9 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr ocamlc(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "ocamlc.opt", p) ocamlopt(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "ocamlopt.opt", p) flexlink(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "flexlink", p) + dune(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "dune", p) + ocamlbuild(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "ocamlbuild", p) + opam(io::IO, p::AbstractPlatform) = ocaml_wrapper(io, "opam", p) # Rust stuff function rust_flags!(p::AbstractPlatform, flags::Vector{String} = String[]) @@ -981,6 +984,10 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr if Sys.iswindows(p) write_wrapper(flexlink, p, "$(t)-flexlink") end + + write_wrapper(dune, p, "$(t)-dune") + write_wrapper(ocamlbuild, p, "$(t)-ocamlbuild") + write_wrapper(opam, p, "$(t)-opam") end # Generate go stuff @@ -1034,6 +1041,7 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr if Sys.iswindows(platform) push!(default_tools, "flexlink") end + append!(default_tools, ("dune", "ocamlbuild", "opam")) end if :go in compilers append!(default_tools, ("go", "gofmt")) From addd2c2435ae356d1184a9bf2fbe7b1414ded30c Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 27 Jun 2025 14:22:26 +0200 Subject: [PATCH 5/7] Update artifacts. --- Artifacts.toml | 154 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 132 insertions(+), 22 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index dc361b23..7c5c1b85 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -3804,6 +3804,28 @@ os = "linux" sha256 = "80c9869b8421b7efdba72f13ec2c24c7ef77b533ad75d8c72739a312adcaef75" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/LLVMBootstrap-v9.0.1+0/LLVMBootstrap.v9.0.1.x86_64-linux-musl.unpacked.tar.gz" +[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "0fb7f2b055421aa486b77bc88e2f24a475d6da8e" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "1acc30f3b896a5f492b493c07e89995e294400722daa6c7a3b04d4dd70bc3c2a" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "d158b3adb4f15ae9eaaa82cbdee5b1c2edd80c22" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "5c7f7f1b2dbf322c243ec24b309ab07962f80423501757601be51aa3047a709c" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" git-tree-sha1 = "c89112114146d405a3fa393913a6a81aaebd1c89" @@ -3828,48 +3850,136 @@ os = "linux" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "43825a0f78b3cd4537bc7450e0b9d0ca9dab2468" +git-tree-sha1 = "4c92b99878772c11036ac3f3d35613cd0d22a105" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "cac028a1fec129df5ca919a1c978f5333a3673025c523ffb34e3b3a67c4208c6" + sha256 = "8c79f86d3d8ea8bf1ca3921286810ad848622375eb76a0a7cc375b6725f087c8" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "8e050f2038df590797f3f69f158534324f7ce2c9" +git-tree-sha1 = "16f2000e45cacb3b2c1b25a90eab5b9027814a9b" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "2b15cde9b66c82e4da4ec336566fb162f6bfae9d0c5187e1d23e8335de549c30" + sha256 = "b4dd597e1cee242a0fa6c4794a9f2335cb9cf53b5244d97e7bb2787aa4479e66" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "c27e000b6061db267d69bb554142a6036b1a1883" +git-tree-sha1 = "eb905333bf339d68b06007aeb276eaf0efb692aa" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "7352645dc52064131f9fc20d3c8db8708400bf1b9737701339cc4b3f7febf02b" + sha256 = "9369b4798f826970bccb95a1d1365e8691848614bdb9c08f1bee1d419c33ccba" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "10b7c45f5cdc390b07ac18f6de7b773bc6303070" +git-tree-sha1 = "9398cc967a856044880290ba1b741a910c813bec" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "b3327ffe3525604f2793ab07b823ca70fcd73e0b97af733d98ccda0e0fc8f680" + sha256 = "0b9ea6a1335942d96f2ade4a4a43fe758ad5316a3a8bc764d0c4539776a7bc2c" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" +[["OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "49eefc6b4c91d6c59d60afc456d7083ce356cde5" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "506523e90f61442915f7659fd9fb753ce8e017c715b290efa5bd93ec4bc3014c" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "225dca8fd51acf700c95525cc915665e0e4f8d58" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "f61f19b9ab2ac48c14a37e17f0f14fcb3859e9b41f4fcfebcbc376122b7c9cda" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-powerpc64le-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "e8e774d2168a2391d47ea911265df3237912a17e" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "e20c30f117e55d467f5d3cc0bdd22c559f90463c5882c1ed2c9ba20a8f58dbb8" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "964e9cd1822b50951db2c05939535f589f371105" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "63ee68d9f0203e98da8e109829f12ac9487fb7b0a5612d83d89cb816128692e1" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-riscv64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "c18e4bc321203e62ab2fb66e0221f645c001ec58" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "c24c752703fd1f8ea8c2652fc7892164cb01a5cb0d05cc4034792b8536207892" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "364cea6c4e086679f7a0b849526f42be9fbc8170" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "696f216f1fffa0fda91bcb25e3b43f245eddc7a1eba6e8fb8ca4c1dc2275a3b7" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-riscv64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + +[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] +arch = "x86_64" +git-tree-sha1 = "1286e0c9cfd128c0d6dcf218e2ca27281c55569e" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] + sha256 = "deaec8203f8cec9e407ba83f697cd430df6afebdb57db901401e699ea363bb27" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + +[["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] +arch = "x86_64" +git-tree-sha1 = "f1348a293134d2739b6dabb034ef9325d8fac81f" +lazy = true +libc = "musl" +os = "linux" + + [["OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] + sha256 = "980d6d24975b1254b44c37e74a6a193ae83530a29b7f89b2dbd195ead1e7960c" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" git-tree-sha1 = "cb559d35f820a3323742c58912c02c8bb2d87cc1" @@ -3894,69 +4004,69 @@ os = "linux" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "81ee49ddc2991943d42f5f958117b9a12e6d8542" +git-tree-sha1 = "ace1695c3922d652a76297783d40d000ee8565b2" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "f0e5b04a1beb69bcaab12289e5bc7237e14d8520c8b66edf0b8f90eda828b24e" + sha256 = "6ee4429eeb5c0d1fd49012da14deb31af2f2a977ff40e6bdd9fbd00075ed119b" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "adfa663e0cf79e8fa40afb1dfa3d5f2b13c144ed" +git-tree-sha1 = "2a35dab4cd616a1b4af521affdda66fc71a1e853" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "57f6bbe7af42ef089809fc50b5881f4c8c6c5216813c455b8319b753b60d1b40" + sha256 = "dcbdd0fda993695dc0df7a2a5a0b0f051e9f413d8b36df49f12a96cc7af6ef4d" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "e09f0e9d114794327a1d16f18fca33fbf9dac98b" +git-tree-sha1 = "831d24ba8d4ab79979e174ab1aa48ac7f15e9344" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "296cebca96f8e045292730426c5c3baab3a8785ad9a9c5d4c7638e63f556c71a" + sha256 = "d8499159c52913752dd797369e80aa231b3de16547903e8f27e43a2fcbae5d75" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "3b6ebd3c7d07a6eb2980d559c17f94ff921fa510" +git-tree-sha1 = "283fee71290024e3f041139420b1c32fa9b2de26" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "ebf316f8c81be0c74439be1ec45d0ebc4c42b8303487d6bb3136f6e64ecc2ee9" + sha256 = "8cd963297240fc9d47a246b718a022a8c4c4f5dab13b3244bf306c832e27a57a" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-linux-musl.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "85b2f93bedd5a49457a508522c9184221a85494b" +git-tree-sha1 = "d0376ec8d9051da75069b537e492f23d54e757c0" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "b7b4c0a802cd17a2f315186ac102318273fe044ae1c4a829ff01d7fa054d57fa" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + sha256 = "f885c585acd4cc1fef1d4460a4dd31b7c75a67d373d26632b66099457d3d7d19" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "d49567a0c987074f9d3509c63ca73cce5b3512a0" +git-tree-sha1 = "94fd8bd51bdf8680bc2ea5880c7955e88019d58c" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "c35291496ff5f9d17abbc7182d0a835857a9ee5012b2d1c08421469e7a0bb9ef" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + sha256 = "ae373dcc3382fe9dbc80deef2c2f0cc561ee64345361cd6a91a79aa75c126134" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-x86_64-w64-mingw32.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["PlatformSupport-aarch64-apple-darwin20.v2021.8.10.x86_64-linux-musl.squashfs"]] arch = "x86_64" From 95907a912663442fef28b5f8e637cc23cbd34a3f Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 27 Jun 2025 14:44:34 +0200 Subject: [PATCH 6/7] Fix Darwin shards. --- Artifacts.toml | 46 ++++++++++++---------------------------------- 1 file changed, 12 insertions(+), 34 deletions(-) diff --git a/Artifacts.toml b/Artifacts.toml index 7c5c1b85..38e4c8e3 100644 --- a/Artifacts.toml +++ b/Artifacts.toml @@ -3804,49 +3804,27 @@ os = "linux" sha256 = "80c9869b8421b7efdba72f13ec2c24c7ef77b533ad75d8c72739a312adcaef75" url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/LLVMBootstrap-v9.0.1+0/LLVMBootstrap.v9.0.1.x86_64-linux-musl.unpacked.tar.gz" -[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs"]] -arch = "x86_64" -git-tree-sha1 = "0fb7f2b055421aa486b77bc88e2f24a475d6da8e" -lazy = true -libc = "musl" -os = "linux" - - [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "1acc30f3b896a5f492b493c07e89995e294400722daa6c7a3b04d4dd70bc3c2a" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" - -[["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked"]] -arch = "x86_64" -git-tree-sha1 = "d158b3adb4f15ae9eaaa82cbdee5b1c2edd80c22" -lazy = true -libc = "musl" -os = "linux" - - [["OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "5c7f7f1b2dbf322c243ec24b309ab07962f80423501757601be51aa3047a709c" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" - [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "c89112114146d405a3fa393913a6a81aaebd1c89" +git-tree-sha1 = "07f8b6b69fe1b0cb07e398491755335f9b18d315" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "ed44e69ff293ce2c222ca2cbdb4dd81ce7526a69c7c5ec9ab9e07211b56ea357" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + sha256 = "9f1111cb10dac171ced05e141c64ceee8df00818810755e4fccb1a515b2eeddc" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "9f0d650ccbd8200284ec7bb8100cc4c6ce44ca2c" +git-tree-sha1 = "b85f61a66ba2d6eb2b87b1061f78f6841ce47470" lazy = true libc = "musl" os = "linux" [["OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "8d1c3c9fdb01159c22380ff8b0178813b9b26adf78873ac970e56580fbe11037" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + sha256 = "378a13c379f32cfb6431b300d3b193f19122c6cef98f87f93a0556c2ecc0f367" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-aarch64-apple-darwin20.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-aarch64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" @@ -3982,25 +3960,25 @@ os = "linux" [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" -git-tree-sha1 = "cb559d35f820a3323742c58912c02c8bb2d87cc1" +git-tree-sha1 = "4fd4470d73a4cb3052f69d81b58c6be995e4568e" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs".download]] - sha256 = "4867ca2f6e21d7cf5589b2f1c8bf73e6055e9c417a0b92bf0d842ba8834e337a" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" + sha256 = "62cf8d1587c57813bda0db95267d7eba9062e6cb4bcee6d031faf7517450e34c" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.squashfs.tar.gz" [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked"]] arch = "x86_64" -git-tree-sha1 = "1ba0493deaa6ec2b3d1b468ef1cdd633af6e9ab1" +git-tree-sha1 = "dc4fcca16508ed1d1eec5e2b0bc5b4dd945b6791" lazy = true libc = "musl" os = "linux" [["OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked".download]] - sha256 = "0d824d99193c18b1ff6380a128605bd0237d6ed5f771ca6948ac0c796d302bd2" - url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" + sha256 = "68e11b31cb66a8cc6244b2c700e95122610d8be55e54f3789331cca53e62613b" + url = "https://github.com/JuliaPackaging/Yggdrasil/releases/download/OCaml-v5.4.0+0/OCaml-x86_64-apple-darwin14.v5.4.0.x86_64-linux-musl.unpacked.tar.gz" [["OCaml-x86_64-linux-gnu.v5.4.0.x86_64-linux-musl.squashfs"]] arch = "x86_64" From 2150a754efbcdd8a9d2c4ea1b86f4fe6afbbb530 Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Fri, 27 Jun 2025 15:08:48 +0200 Subject: [PATCH 7/7] Bump the used GCC version. --- test/runners.jl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/runners.jl b/test/runners.jl index 18ec886c..a13202d3 100644 --- a/test/runners.jl +++ b/test/runners.jl @@ -584,7 +584,7 @@ end @testset "basic program" begin mktempdir() do dir compilers = [:c, :ocaml] - ur = preferred_runner()(dir; platform=Platform("x86_64", "linux"; libc="glibc"), preferred_gcc_version=v"5", compilers) + ur = preferred_runner()(dir; platform=Platform("x86_64", "linux"; libc="glibc"), preferred_gcc_version=v"6", compilers) # Make sure the runner platform is concrete even if the requested platform isn't @test !isnothing(libgfortran_version(ur.platform)) @test !isnothing(cxxstring_abi(ur.platform))