From 6bfc4f68812154a502edd8a6d56a9768cf17ede7 Mon Sep 17 00:00:00 2001 From: Seth Boyles Date: Thu, 21 May 2026 11:54:30 -0600 Subject: [PATCH] Add rust for yjit/zjit ai-assisted=yes --- .final_builds/packages/rust-1-linux/index.yml | 6 ++++ config/blobs.yml | 3 ++ jobs/ruby-4.0-test/spec | 1 + packages/ruby-4.0/packaging | 33 ++++++++++++------- packages/ruby-4.0/spec | 2 ++ packages/rust-1-linux/spec.lock | 2 ++ 6 files changed, 36 insertions(+), 11 deletions(-) create mode 100644 .final_builds/packages/rust-1-linux/index.yml create mode 100644 packages/rust-1-linux/spec.lock diff --git a/.final_builds/packages/rust-1-linux/index.yml b/.final_builds/packages/rust-1-linux/index.yml new file mode 100644 index 0000000..7e21b14 --- /dev/null +++ b/.final_builds/packages/rust-1-linux/index.yml @@ -0,0 +1,6 @@ +builds: + cfd45a16afc4a9ee132855bbba23a780834af13ff3092277b4a086ae6d603b75: + version: cfd45a16afc4a9ee132855bbba23a780834af13ff3092277b4a086ae6d603b75 + blobstore_id: cd7a6392-c3b6-4e9e-5aa7-5225ce5662ca + sha1: sha256:818a3bdbd9f67ba62af3e1f35add4fae9b71a15aa8d3551857b407f19e8274cb +format-version: "2" diff --git a/config/blobs.yml b/config/blobs.yml index 49a73ee..2ec9a99 100644 --- a/config/blobs.yml +++ b/config/blobs.yml @@ -22,6 +22,9 @@ rubygems-4.0.11.tgz: size: 971240 object_id: 1fdb3c0c-dfc9-4a86-6b80-1e968e996fb4 sha: sha256:95fe9d9d5293d022ceb29afac56eee4e2d46f901de309ab46915ff84d5ec68e8 +rust-1-linux/rust-1.95.0.x86_64-unknown-linux-gnu.tar.gz: + size: 376272008 + sha: sha256:a47ac940abd12399d59ad15c877e7113fa35f2b9ec7e6a8a045d4fd8b9741dea yaml-0.2.5.tar.gz: size: 609454 object_id: b5eeae2b-1496-4bc2-556f-efac50c8bcfa diff --git a/jobs/ruby-4.0-test/spec b/jobs/ruby-4.0-test/spec index 1fe3c3d..c301ded 100644 --- a/jobs/ruby-4.0-test/spec +++ b/jobs/ruby-4.0-test/spec @@ -7,5 +7,6 @@ templates: packages: - ruby-4.0 - ruby-4.0-test +- rust-1-linux properties: {} diff --git a/packages/ruby-4.0/packaging b/packages/ruby-4.0/packaging index 5e340c1..891f758 100644 --- a/packages/ruby-4.0/packaging +++ b/packages/ruby-4.0/packaging @@ -12,17 +12,25 @@ if [ $(uname -s) == "Darwin" ]; then PATH="${brew_prefix_openssl}/bin:$PATH" with_openssl_dir="--with-openssl-dir=$brew_prefix_openssl" fi -fi - -# Use Clang if available; the resulting Ruby is faster -if command -v clang &> /dev/null -then - export CC="$(command -v clang)" -fi - -if command -v clang++ &> /dev/null -then - export CXX="$(command -v clang++)" +else + + # Set up GCC environment + export CC="gcc" + export CXX="g++" + + echo "GCC toolchain setup complete" + $CC --version + $CXX --version + + # Now source Rust environment + source "${BOSH_PACKAGES_DIR:-/var/vcap/packages}/rust-1-linux/bosh/runtime.env" + + # Let Rust use its internal LLVM - clear any conflicting flags + unset RUSTFLAGS + + # Check Rust version + echo "Verifying Rust version (will use internal LLVM)..." + rustc --version --verbose fi openssl_version=$(openssl version) @@ -58,6 +66,9 @@ tar xzf "ruby-${RUBY_VERSION}.tar.gz" cp "${BOSH_COMPILE_TARGET}"/config/config.{guess,sub} ./tool fi + # Disable LTO for better compatibility + sed -i 's/-C lto=thin/-C lto=no/' common.mk + LDFLAGS="-Wl,-rpath -Wl,${BOSH_INSTALL_TARGET}" ./configure --prefix="${BOSH_INSTALL_TARGET}" --disable-install-doc --with-opt-dir="${BOSH_INSTALL_TARGET}" --without-gmp $with_openssl_dir make make install diff --git a/packages/ruby-4.0/spec b/packages/ruby-4.0/spec index e5da419..011b5cd 100644 --- a/packages/ruby-4.0/spec +++ b/packages/ruby-4.0/spec @@ -1,5 +1,7 @@ --- name: ruby-4.0 +dependencies: +- rust-1-linux files: - compile-4.0.env diff --git a/packages/rust-1-linux/spec.lock b/packages/rust-1-linux/spec.lock new file mode 100644 index 0000000..9aaebd9 --- /dev/null +++ b/packages/rust-1-linux/spec.lock @@ -0,0 +1,2 @@ +name: rust-1-linux +fingerprint: cfd45a16afc4a9ee132855bbba23a780834af13ff3092277b4a086ae6d603b75