Pin compiler_builtins to 0.1.111 when building std main
authorMatt Corallo <git@bluematt.me>
Wed, 15 May 2024 02:33:32 +0000 (02:33 +0000)
committerMatt Corallo <git@bluematt.me>
Wed, 15 May 2024 02:34:04 +0000 (02:34 +0000)
See https://github.com/rust-lang/compiler-builtins/issues/610

deterministic-build-wrappers/compiler-builtins-dummy/Cargo.toml [new file with mode: 0644]
deterministic-build-wrappers/compiler-builtins-dummy/src/lib.rs [new file with mode: 0644]
genbindings.sh

diff --git a/deterministic-build-wrappers/compiler-builtins-dummy/Cargo.toml b/deterministic-build-wrappers/compiler-builtins-dummy/Cargo.toml
new file mode 100644 (file)
index 0000000..53fe89b
--- /dev/null
@@ -0,0 +1,7 @@
+[package]
+name = "compiler-builtins-dummy"
+version = "0.1.0"
+edition = "2021"
+
+[dependencies]
+compiler_builtins = "=0.1.111"
diff --git a/deterministic-build-wrappers/compiler-builtins-dummy/src/lib.rs b/deterministic-build-wrappers/compiler-builtins-dummy/src/lib.rs
new file mode 100644 (file)
index 0000000..e69de29
index 0e6f0f6a10fbe6d64705fe6e9996a7857bc241eb..33f70d2823c64578536828f70951684595f1a764 100755 (executable)
@@ -376,6 +376,9 @@ function REALLY_PIN_CC {
        cargo update -p cc --precise "1.0.79" --verbose
        ( RUSTC_BOOTSTRAP=1 cargo build --features=std -v --release --target x86_64-apple-darwin -Zbuild-std=std,panic_abort > /dev/null 2>&1 ) || echo -n
        ( RUSTC_BOOTSTRAP=1 cargo build --features=std -v --release --target aarch64-apple-darwin -Zbuild-std=std,panic_abort > /dev/null 2>&1 ) || echo -n
+       pushd deterministic-build-wrappers/compiler-builtins-dummy
+       cargo build
+       popd
        # Sadly, std also depends on cc, and we can't pin it in that tree
        # directly. Instead, we have to delete the file out of the cargo
        # registry and build --offline to avoid it using the latest version.
@@ -383,12 +386,16 @@ function REALLY_PIN_CC {
        [ "$NEW_CC_DEP" = "" ] && NEW_CC_DEP="$HOME"
        [ -d "$NEW_CC_DEP/.cargo/registry/cache/"github.com-* ] && CARGO_REGISTRY_CACHE="$NEW_CC_DEP/.cargo/registry/cache/"github.com-*
        [ -d "$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-* ] && CARGO_REGISTRY_CACHE="$NEW_CC_DEP/.cargo/registry/cache/"index.crates.io-*
-       if [ -d "$CARGO_REGISTRY_CACHE" ]; then
+       if [ -d "$CARGO_REGISTRY_CACHE" ]; the
+               if [ -f "$CARGO_REGISTRY_CACHE/compiler_builtins-0.1.111.crate" ]; then
+                       mv "$CARGO_REGISTRY_CACHE/compiler_builtins-0.1.111.crate" ./
+               fi
                if [ -f "$CARGO_REGISTRY_CACHE/cc-1.0.79.crate" ]; then
                        mv "$CARGO_REGISTRY_CACHE/cc-1.0.79.crate" ./
                fi
                rm -f "$CARGO_REGISTRY_CACHE/"*/cc-*.crate
                [ -f ./cc-1.0.79.crate ] && mv ./cc-1.0.79.crate "$CARGO_REGISTRY_CACHE/"
+               [ -f ./compiler_builtins-0.1.111.crate ] && mv ./compiler_builtins-0.1.111.crate "$CARGO_REGISTRY_CACHE/"
        else
                echo "Couldn't find cargo cache, build-std builds are likely to fail!"
        fi