Skip to content

Commit 3470916

Browse files
authored
Merge branch 'master' into tb/llvmbootstrap
2 parents d79577e + bb1d736 commit 3470916

File tree

9 files changed

+377
-21
lines changed

9 files changed

+377
-21
lines changed

.github/workflows/Documentation.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,9 @@ jobs:
3333
env:
3434
JULIA_PKG_SERVER: ""
3535
steps:
36-
- uses: actions/checkout@v4
36+
- uses: actions/checkout@v5
3737
- uses: julia-actions/cache@v2
38-
- uses: julia-actions/setup-julia@v1
38+
- uses: julia-actions/setup-julia@v2
3939
with:
4040
version: "1.7"
4141
- uses: julia-actions/julia-docdeploy@releases/v1

.github/workflows/PreviewsCleanup.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ jobs:
99
runs-on: ubuntu-latest
1010
steps:
1111
- name: Checkout gh-pages branch
12-
uses: actions/checkout@v4
12+
uses: actions/checkout@v5
1313
with:
1414
ref: gh-pages
1515
- name: Delete preview and history + push changes

.github/workflows/ci.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -86,13 +86,13 @@ jobs:
8686

8787
steps:
8888
- run: sudo rm -rf /opt/*
89-
- uses: actions/checkout@v4
90-
- uses: julia-actions/setup-julia@v1
89+
- uses: actions/checkout@v5
90+
- uses: julia-actions/setup-julia@v2
9191
with:
9292
version: ${{ matrix.julia-version }}
9393
arch: x64
9494
# We can't cache artifacts at the moment, it'd require more than 10 GiB.
95-
# - uses: julia-actions/cache@v1
95+
# - uses: julia-actions/cache@v2
9696
# # For the time being cache artifacts only for squashfs, we need too much
9797
# # storage for the unpacked shards
9898
# if: ${{ matrix.squashfs == true }}

Artifacts.toml

Lines changed: 352 additions & 0 deletions
Large diffs are not rendered by default.

deps/.gitignore

Lines changed: 0 additions & 7 deletions
This file was deleted.

src/BinaryBuilderBase.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@ function __init__()
176176

177177
# Allow the user to override the default value for `storage_dir`
178178
storage_cache[] = get(ENV, "BINARYBUILDER_STORAGE_DIR",
179-
abspath(joinpath(@__DIR__, "..", "deps")))
179+
@get_scratch!("storage_cache"))
180180

181181
# If the user has signalled that they really want us to automatically
182182
# accept apple EULAs, do that.

src/Rootfs.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -587,7 +587,7 @@ function choose_shards(p::AbstractPlatform;
587587
compilers::Vector{Symbol} = [:c],
588588
# We always just use the latest Rootfs embedded within our Artifacts.toml
589589
rootfs_build::VersionNumber=last(BinaryBuilderBase.get_available_builds("Rootfs")),
590-
ps_build::VersionNumber=v"2025.02.15",
590+
ps_build::VersionNumber=v"2025.08.13",
591591
GCC_builds::Vector{GCCBuild}=available_gcc_builds,
592592
LLVM_builds::Vector{LLVMBuild}=available_llvm_builds,
593593
Rust_builds::Vector{RustBuild}=available_rust_builds,

src/Runner.jl

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -440,9 +440,13 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr
440440
# build-id is not supported on macOS compilers
441441
if !Sys.isapple(p)
442442
# Windows build-id requires binutils 2.25+, which we only have for GCC 5+
443-
if !Sys.iswindows(p) || (Sys.iswindows(p) && gcc_version v"5")
443+
if !Sys.iswindows(p) || (Sys.iswindows(p) && gcc_version v"5" && !clang_use_lld)
444444
# Use a known algorithm to embed the build-id for reproducibility
445445
push!(flags, "-Wl,--build-id=sha1")
446+
elseif Sys.iswindows(p) && clang_use_lld
447+
# This is reproducible as we set `-Wl,--no-insert-timestamp` elsewhere
448+
# See https://github.com/llvm/llvm-project/issues/74238#issuecomment-1839640836
449+
push!(flags, "-Wl,--build-id")
446450
end
447451
end
448452
end
@@ -550,6 +554,10 @@ function generate_compiler_wrappers!(platform::AbstractPlatform; bin_path::Abstr
550554
# The `-sdk_version` flag is not implemented in lld yet.
551555
append!(flags, min_macos_version_linker_flags())
552556
end
557+
elseif Sys.iswindows(p) && gcc_version v"5"
558+
# Do not embed timestamps, for reproducibility:
559+
# https://github.com/JuliaPackaging/BinaryBuilder.jl/issues/1232
560+
push!(flags, "-Wl,--no-insert-timestamp")
553561
end
554562

555563
buildid_link_flags!(p, flags)
@@ -1573,7 +1581,10 @@ function runner_setup!(workspaces, mappings, workspace_root, verbose, kwargs, pl
15731581
if !isdir(ccache_dir())
15741582
mkpath(ccache_dir())
15751583
end
1576-
push!(workspaces, ccache_dir() => envs["CCACHE_DIR"])
1584+
if haskey(envs, "CCACHE_DIR")
1585+
# When bootstrapping, `CCACHE_DIR` is not defined.
1586+
push!(workspaces, ccache_dir() => envs["CCACHE_DIR"])
1587+
end
15771588
end
15781589

15791590
return platform, envs, shards

test/runners.jl

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -160,9 +160,9 @@ end
160160

161161
# Checks that the compiler/linker include a build-id
162162
# This is only available on ELF-based platforms
163-
@testset "Compilation - Linux build-id note $(platform) - $(compiler)" for platform in elf_platforms, compiler in ("cc", "gcc", "clang", "c++", "g++", "clang++")
163+
@testset "Compilation - Linux build-id note $(platform) - $(compiler) - clang_use_lld=$(clang_use_lld)" for platform in elf_platforms, compiler in ("cc", "gcc", "clang", "c++", "g++", "clang++"), clang_use_lld in (true, false)
164164
mktempdir() do dir
165-
ur = preferred_runner()(dir; platform=platform)
165+
ur = preferred_runner()(dir; platform=platform, clang_use_lld=clang_use_lld)
166166
iobuff = IOBuffer()
167167
test_c = """
168168
#include <stdlib.h>
@@ -196,10 +196,10 @@ end
196196
end
197197

198198
# Checks that Windows can include a build-id
199-
@testset "Compilation - Windows build-id note $(platform) - $(compiler)" for platform in win_platforms, compiler in ("cc", "gcc", "clang", "c++", "g++", "clang++")
199+
@testset "Compilation - Windows build-id note $(platform) - $(compiler) - clang_use_lld=$(clang_use_lld)" for platform in win_platforms, compiler in ("cc", "gcc", "clang", "c++", "g++", "clang++"), clang_use_lld in (true, false)
200200
mktempdir() do dir
201201
# Windows build-id support requires binutils 2.25, which is part of our GCC 5
202-
ur = preferred_runner()(dir; platform=platform, preferred_gcc_version=v"5")
202+
ur = preferred_runner()(dir; platform=platform, preferred_gcc_version=v"5", clang_use_lld=clang_use_lld)
203203
iobuff = IOBuffer()
204204
test_c = """
205205
#include <stdlib.h>

0 commit comments

Comments
 (0)