-
-
Notifications
You must be signed in to change notification settings - Fork 170
ansible: add rust toolchain to RHEL machines #4225
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
Overwriting `/usr/bin/python3` on RHEL 9 breaks `subscription-manager` (but does not on RHEL 8). Instead create and use a Python 3.12 virtual environment for the CI.
|
hmm https://ci.nodejs.org/job/node-test-commit-v8-linux/6975/nodes=rhel8-ppc64le,v8test=v8test/console has failed: I think the |
|
Based on https://github.com/ibmruntimes/v8-build/blob/main/bin/ppc64/release.gn I've tried setting Updated to install |
doh it does not. Need to install |
|
@miladfarca pointed out that just installing Latest attempt failed https://ci.nodejs.org/job/node-test-commit-v8-linux/6979/nodes=rhel8-ppc64le,v8test=v8test/console which is likely we need to pass |
|
|
Need to set which I've done in richardlau/node-1@5a7bf7e on top of the branch for nodejs/node#61002: diff --git a/tools/make-v8.sh b/tools/make-v8.sh
index ca3b5729043..6ce591a827a 100755
--- a/tools/make-v8.sh
+++ b/tools/make-v8.sh
@@ -29,10 +29,15 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then
# shellcheck disable=SC2154
case "$CXX" in
- *clang*) GN_COMPILER_OPTS="is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false treat_warnings_as_errors=false use_custom_libcxx=false" ;;
+ *clang*)
+ CLANG_VERSION=$(clang --version | awk '/clang version/ {print $3}' | cut -d. -f1)
+ RUST_VERSION=$(rustc --version | awk '/rustc/ {print $2}')
+ GN_COMPILER_OPTS="is_clang=true clang_base_path=\"/usr\" clang_use_chrome_plugins=false treat_warnings_as_errors=false use_custom_libcxx=false clang_version=\"${CLANG_VERSION}\" rustc_version=\"${RUST_VERSION}\""
+ export RUSTC_BOOTSTRAP=1
+ ;;
*) GN_COMPILER_OPTS="treat_warnings_as_errors=false use_custom_libcxx=false" ;;
esac
- gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="$GN_COMPILER_OPTS is_component_build=false is_debug=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true $CC_WRAPPER"
+ gn gen -v "out.gn/$BUILD_ARCH_TYPE" --args="$GN_COMPILER_OPTS is_component_build=false is_debug=false v8_target_cpu=\"$TARGET_ARCH\" target_cpu=\"$TARGET_ARCH\" v8_enable_backtrace=true rust_sysroot_absolute=\"/usr\" rust_bindgen_root=\"/usr\" $CC_WRAPPER"
ninja -v -C "out.gn/$BUILD_ARCH_TYPE" "${JOBS_ARG}" d8 cctest inspector-test
else
DEPOT_TOOLS_DIR="$(cd depot_tools && pwd)"With the above, https://ci.nodejs.org/job/node-test-commit-v8-linux/6983/ passed on rhel8-s390x and is still running on rhel8-ppc64le. |
cf6091d to
54309a6
Compare
261f10a to
af3e78d
Compare
|
Converted to draft. I still need to look at the RHEL x64 machines and arm64 machines (of which the test ones are containers). I had a working set up, and then I ran the playbook again to check idempotency... and then a rebuild of the V8 CI failed. It turns out this was because the package upgrade role in our playbooks was updating to newer clang (20) and rust (1.88.1).
It might be possible to get Linux ppc64le and s390x V8 building with newer rust, but we'd still be at the mercy of the next time RHEL decide to update rust (and I'm a little uncomfortable about clang/llvm being updated under us -- the RHEL 9 test machines were bumped to clang 20 when I installed Python 3.12 and I had not noticed it). I can pin llvm and rust using |
Pin `clang` to 19. Add and pin `rust` 1.84 toolchain for Temporal. Add `bindgen-cli` and `rustfmt` for V8 CI.
(first commit is from #4223)
Refs: nodejs/node#61002 (comment)
Refs: nodejs/node#58730
Refs: nodejs/node#57891
Refs: nodejs/node#57127
Deployment