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] bring msvc build to upstream v8 #36906

Closed
gengjiawen opened this issue Jan 13, 2021 · 17 comments
Closed

[V8] bring msvc build to upstream v8 #36906

gengjiawen opened this issue Jan 13, 2021 · 17 comments
Labels
build Issues and PRs related to build files or the CI. discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency. windows Issues and PRs related to the Windows platform.

Comments

@gengjiawen
Copy link
Member

For multi versions, we have special issue on msvc which is hard to trace and fix.

Build v8 with every commit in upstream will help us find root commit soon.

Currently we have daily build on https://github.com/nodejs/node-v8, but it's not good enough. Mainly it can be broken due to gyp issue or other issue. Then we lost track of which commit start to broken.

In the end, the msvc issues has been fixed, right ?

Yes. But the prices comes very high. You know how about cpp, it's very hard to find the exact error. On windows, it's worse. I have to take 40 minites or longer to verify my fix, even a single line. Windows doesn't support ninja or ccache for now. @targos and I spent weeks on v8 8.5 and 8.6 just to fix msvc issues.

So, if in upstream v8 doesn't has msvc build in every commit (don't has to be success, just to track which starts to broken will help a lot). This will super helpful for us maintaining v8 update.

cc @nodejs/v8-update

@gengjiawen gengjiawen added the v8 engine Issues and PRs related to the V8 dependency. label Jan 13, 2021
@targos
Copy link
Member

targos commented Jan 13, 2021

V8 already has an MSVC builder in their CI, which runs on every CL: https://ci.chromium.org/p/v8/builders/try/v8_win64_msvc_compile_rel

Honestly I don't understand how we have so many issues with V8 and MSVC. We probably need to look into the GYP configuration to make it closer to what they have.

@targos targos added discuss Issues opened for discussions and feedbacks. windows Issues and PRs related to the Windows platform. labels Jan 13, 2021
@targos
Copy link
Member

targos commented Jan 13, 2021

@gengjiawen
Copy link
Member Author

Honestly I don't understand how we have so many issues with V8 and MSVC. We probably need to look into the GYP configuration to make it closer to what they have.

But many msvc issue seems not strong connection with gyp. Like #36139 (comment) (debug build failure) and #34337 (comment) (Msvc has strong checks).

Is it because they lacks debug build and arm64 for windows in CI ?

Another confused me is that #34337 (comment) just won't build in msvc. if so, how do this passing the CI.

@gengjiawen
Copy link
Member Author

Another showcase bnoordhuis/v8-cmake#40. I am pretty positive upstream v8 msvc support has flaws. @nodejs/tsc Maybe you can push this forward ?

@gengjiawen
Copy link
Member Author

Given the upcoming V8 8.9 windows build failed in https://github.com/nodejs/node-v8 and bnoordhuis/v8-cmake#45. I am pretty positive upstream V8 CI not working.

@gengjiawen
Copy link
Member Author

Given the upcoming V8 8.9 windows build failed in nodejs/node-v8 and bnoordhuis/v8-cmake#45. I am pretty positive upstream V8 CI not working.

Fixed in #37330 (comment).

ping @nodejs/tsc @Trott @mhdawson Can you reach out V8 team for this. This is the best way V8 builds works consistently on msvc.

@mhdawson
Copy link
Member

@hashseed is this something you can help with? @targos do you know who are best/most responsive contact is these days?

@targos
Copy link
Member

targos commented Feb 24, 2021

Unfortunately no.

@mmarchini
Copy link
Contributor

cc @nodejs/v8 @verwaest

@gengjiawen
Copy link
Member Author

ping @nodejs/tsc , this keep dragging us, anyone from google side can helps ?. https://chromium-review.googlesource.com/c/v8/v8/+/3199856 takes really long time to close.

In the long run, if it's not on v8 CI system, we have to spend more time on this.

@joyeecheung
Copy link
Member

I'd suggest opening an issue in the v8 issue tracker or asking in v8-dev regarding the state of their MSVC build bot. I vaguely remember that they switched to clang+llvm on Windows for consistent builds, so not sure why there is still a MSVC bot, but my memory could be wrong.

@gengjiawen
Copy link
Member Author

We don't, strictly speaking, support MSVC, so keeping that build working is more best effort and community-led; we don't want to block any of our engineers by making them fix MSVC issues. That said, it'd maybe still be useful to have an FYI bot with MSVC so that we at least see when it's broken -- I'll chat to our infra team about it.

https://chromium-review.googlesource.com/c/v8/v8/+/3199856/comments/49f62820_b7e38917

Let's hope some good news.

@bnoordhuis
Copy link
Member

The V8 team just announced they'll be dropping msvc (and gcc) support wholesale in September, i.e., they'll remove all the hacks and tweaks needed for compilers that aren't clang. Refs:

https://groups.google.com/g/v8-dev/c/8mSxb2UriSU (msvc)
https://groups.google.com/g/v8-dev/c/9WLui7QgBI8 (gcc)

Some contingency planning is probably in order.

@RedYetiDev RedYetiDev added the build Issues and PRs related to build files or the CI. label Jun 17, 2024
@RedYetiDev
Copy link
Member

For reference:

https://groups.google.com/g/v8-dev/c/8mSxb2UriSU (msvc)

"V8 will follow Chromium's lead and will discontinue support for MSVC. To give projects time to adjust, we will stop support after V8 version 13.0 in September 2024. After that, we will remove the infrastructure bots and MSVC compatibility hacks in the code base."


https://groups.google.com/g/v8-dev/c/9WLui7QgBI8 (gcc)

"V8 will follow Chromium's lead and will stop providing infrastructure for GCC builds. We will still accept patches from the community but we will not invest in keeping this build functioning. To give projects time to adjust, we will perform this change after V8 version 13.0 in September 2024."

@joyeecheung
Copy link
Member

Latest clangcl switch work in tracked in #52809

@bnoordhuis
Copy link
Member

One thing that's important to stress - because it affects add-ons - is that msvcrt is going to be replaced with libc++. Big, fundamental change.

Node.js somehow has to ensure add-ons link to that libc++, otherwise many things will go boom in many different and colorful ways.

@targos
Copy link
Member

targos commented Oct 30, 2024

This will never happen. V8 officially dropped support for MSVC.

@targos targos closed this as not planned Won't fix, can't repro, duplicate, stale Oct 30, 2024
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. discuss Issues opened for discussions and feedbacks. v8 engine Issues and PRs related to the V8 dependency. windows Issues and PRs related to the Windows platform.
Projects
None yet
Development

No branches or pull requests

7 participants