Skip to content
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

V8 build error with 22.7.0 #54576

Open
bnoordhuis opened this issue Aug 26, 2024 · 11 comments
Open

V8 build error with 22.7.0 #54576

bnoordhuis opened this issue Aug 26, 2024 · 11 comments
Labels
build Issues and PRs related to build files or the CI. confirmed-bug Issues with confirmed bugs. v8 engine Issues and PRs related to the V8 dependency.

Comments

@bnoordhuis
Copy link
Member

Like #53633 which was for gcc 12 and fixed in commit f4a7ac5 but with clang 15.0.7 on x86_64 linux I get the exact same build error:

../deps/v8/src/base/small-vector.h:25:3: error: static assertion failed due to requirement '::v8::base::is_trivially_copyable<std::pair<const v8::internal::com
piler::turboshaft::PhiOp *, const v8::internal::compiler::turboshaft::OpIndex>>::value': T should be trivially copyable                                        
  ASSERT_TRIVIALLY_COPYABLE(T);                                                                                                                                
  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                                                 
../deps/v8/src/base/macros.h:211:3: note: expanded from macro 'ASSERT_TRIVIALLY_COPYABLE'                                                                      
  static_assert(::v8::base::is_trivially_copyable<T>::value, \                                                                                                 
  ^             ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~                                                                                                    
../deps/v8/src/compiler/turboshaft/loop-unrolling-reducer.h:431:65: note: in instantiation of template class 'v8::base::SmallVector<std::pair<const v8::interna
l::compiler::turboshaft::PhiOp *, const v8::internal::compiler::turboshaft::OpIndex>, 16>' requested here                                                      
  base::SmallVector<std::pair<const PhiOp*, const OpIndex>, 16> phis;

Maybe just remove that ASSERT_TRIVIALLY_COPYABLE? Upstream already tests for correctness and to us it's just a recurring source of build breakage.

@bnoordhuis bnoordhuis added confirmed-bug Issues with confirmed bugs. build Issues and PRs related to build files or the CI. v8 engine Issues and PRs related to the V8 dependency. labels Aug 26, 2024
bnoordhuis added a commit to bnoordhuis/libv8-node that referenced this issue Aug 27, 2024
@joyeecheung
Copy link
Member

joyeecheung commented Aug 27, 2024

Another option would be to pile the affected clang versions onto the ifdef mixture. According to the minimal repro this seems specific to clang 15 (doesn't reproduce on neither clang 14.0.0 nor 16.0.0)

@joyeecheung
Copy link
Member

Actually I remember we are using clang 15 for macOS in the canary CI? @targos

@targos
Copy link
Member

targos commented Aug 27, 2024

There's nothing special about the canary CI. It's using the same machines and config as main

@targos
Copy link
Member

targos commented Aug 27, 2024

According to https://en.wikipedia.org/wiki/Xcode#Xcode_11.0_-_14.x_(since_SwiftUI_framework)_2, clang 15 wasn't included for a long time in Xcode (it's the LLVM column):

CleanShot 2024-08-27 at 16 22 45

bnoordhuis added a commit to rubyjs/libv8-node that referenced this issue Aug 27, 2024
@bnoordhuis
Copy link
Member Author

I've seen this bug with both clang 14 and 15. What do our buildbots use? 16?

@bnoordhuis
Copy link
Member Author

Forgot to mention, I have a patch ready for upstreaming but I'd like to narrow down the range of broken clangs.

@targos
Copy link
Member

targos commented Sep 19, 2024

In Jenkins, the buildbots use Clang 12
In GitHub actions, it seems to be Apple Clang 15 (LLVM 16).

(on macOS)

@targos
Copy link
Member

targos commented Sep 19, 2024

on Linux, I think we only use Clang in GitHub actions, and it's on version 18.

@richardlau
Copy link
Member

Just hit this with FreeBSD 13.3 and clang 17.0.6.

FreeBSD clang version 17.0.6 (https://github.com/llvm/llvm-project.git llvmorg-17.0.6-0-g6009708b4367)
Target: x86_64-unknown-freebsd13.3
Thread model: posix
InstalledDir: /usr/bin

@bnoordhuis
Copy link
Member Author

https://chromium-review.googlesource.com/c/v8/v8/+/5872655 - restricted to clang <= 17.

@richardlau
Copy link
Member

https://chromium-review.googlesource.com/c/v8/v8/+/5872655 - restricted to clang <= 17.

FYI I tried this out on FreeBSD 13 (clang 17.0.6) but that hasn't fixed the build.

(CI with richardlau@953b8e3): https://ci.nodejs.org/job/richardlau-node-test-commit-freebsd/11/nodes=freebsd13-x64/consoleFull

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
build Issues and PRs related to build files or the CI. confirmed-bug Issues with confirmed bugs. v8 engine Issues and PRs related to the V8 dependency.
Projects
None yet
Development

No branches or pull requests

7 participants
@bnoordhuis @targos @joyeecheung @richardlau and others