| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
|
Review requested:
|
Sorry, something went wrong.
|
The main goal is to unblock #61898 and future V8 updates. |
Sorry, something went wrong.
Update the configure script to select Clang by default. V8 no longer officially supports GCC and we often have problems because of it. Also bump the expected version to 13.2 because version 12 can't compile newer V8. Signed-Off-By: Michaël Zasso <targos@protonmail.com>
|
Would it make more sense to deprecate GCC rather than move it to experimental? Or is there an expectation that the "experimental" flag could be removed, even though the following is stated?
|
Sorry, something went wrong.
| - name: Install Clang ${{ env.CLANG_VERSION }} | ||
| uses: ./.github/actions/install-clang | ||
| with: | ||
| clang-version: ${{ env.CLANG_VERSION }} |
There was a problem hiding this comment.
This job only packs the tarball, the actual compilation already uses clang
| - name: Install Clang ${{ env.CLANG_VERSION }} | |
| uses: ./.github/actions/install-clang | |
| with: | |
| clang-version: ${{ env.CLANG_VERSION }} |
Sorry, something went wrong.
There was a problem hiding this comment.
If clang is not installed, the new default in configure.py makes it fail. See https://github.com/nodejs/node/actions/runs/23843452764/job/69504716314?pr=62533
Sorry, something went wrong.
There was a problem hiding this comment.
Can we add a flag to disable that check:
diff --git a/configure.py b/configure.py
index 6182537bfa..49a99767a9 100755
--- a/configure.py
+++ b/configure.py
@@ -2607,7 +2607,8 @@ configurations = {
}
# Print a warning when the compiler is too old.
-check_compiler(output)
+if not os.environ['SKIP_COMPILER_CHECK']:
+ check_compiler(output)
# determine the "flavor" (operating system) we're building for,
# leveraging gyp's GetFlavor function
Sorry, something went wrong.
| env: | ||
| CC: clang-19 | ||
| CXX: clang++-19 |
There was a problem hiding this comment.
| env: | |
| CC: clang-19 | |
| CXX: clang++-19 |
Sorry, something went wrong.
| - name: Install Clang ${{ env.CLANG_VERSION }} | ||
| uses: ./.github/actions/install-clang | ||
| with: | ||
| clang-version: ${{ env.CLANG_VERSION }} | ||
|
|
There was a problem hiding this comment.
| - name: Install Clang ${{ env.CLANG_VERSION }} | |
| uses: ./.github/actions/install-clang | |
| with: | |
| clang-version: ${{ env.CLANG_VERSION }} |
Sorry, something went wrong.
| CC: clang-19 | ||
| CXX: clang++-19 |
There was a problem hiding this comment.
| CC: clang-19 | |
| CXX: clang++-19 |
Sorry, something went wrong.
I think the GCC support for 61898 was already unblocked by https://chromium-review.googlesource.com/c/v8/v8/+/7666244 and the remaining blocker seems unrelated? (I think the remaining blocker is similar to something else I fixed for the previous upgrade, most likely a legit bug in V8's transitions management) |
Sorry, something went wrong.
|
The current GCC issue is something else: #61898 (comment) |
Sorry, something went wrong.
It seems specific to GCC 12? I feel that we could split the discussion separately: bumping GCC support to 13 (12 already reached EOL last year, so this seems less disruptive), and moving GCC to experimental on all platforms, which can cause more disruption, especially considering addons and downstream distros - it would be unfortunate to disrupt Linux distros just because an EOL version of GCC doesn't work on AIX - at least keeping an up-to-date version of GCC on Linux supported is good ROI, and V8 is generally happy to take patches to keep that working |
Sorry, something went wrong.
|
I agree with you, but in practice, I am close to giving up on my usual task of updating V8 mainly because of GCC. Until recently, it's been relatively OK because IBM still often submitted compatibility patches to make it work for AIX, but this is going to stop since they switched to Clang. I'll open another PR to only bump the minimum version. |
Sorry, something went wrong.
Sorry, something went wrong.
Sorry, something went wrong.
There was a problem hiding this comment.
lgtm
Sorry, something went wrong.
Sorry, something went wrong.
|
I reached out a bit and I can confirm I (and maybe with additional hands) could help keep a non-EOL version of GCC + x64 Linux build supported at least in the foreseeable future - we could keep it working via GHA in the main repo and in canary to reduce the churn in V8 updates. Can we keep this configuration as supported in BUILDING.md and in the actions? |
Sorry, something went wrong.
If there's an efficient way to get it fixed in advance, that would be awesome. |
Sorry, something went wrong.
|
Thanks for the pointer, I'll take a look |
Sorry, something went wrong.
| Back | FazBrowse Home | New Git URL |
Update the configure script to select Clang by default.
V8 no longer officially supports GCC and we often have problems because of it.
Also bump the expected version to 13.2 because version 12 can't compile newer V8.
/cc @nodejs/build @nodejs/tsc @nodejs/embedders @nodejs/delivery-channels @nodejs/distros
Impacted CI systems: