-
-
Notifications
You must be signed in to change notification settings - Fork 221
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
Revert "Build v8 with i18n support" #138
Conversation
Codecov Report
@@ Coverage Diff @@
## master #138 +/- ##
==========================================
+ Coverage 95.59% 96.90% +1.30%
==========================================
Files 16 12 -4
Lines 545 452 -93
==========================================
- Hits 521 438 -83
+ Misses 15 9 -6
+ Partials 9 5 -4
Continue to review full report at Codecov.
|
@dylanahsmith |
It seems like some recent windwos builds are passing so maybe this is no the issue? I'm hoping this won't be reverted as I'm interested on using Intl as well! |
I think you are looking at the CI workflow runs, which are still being done against the pre-build windows without Intl support. Since the original build output isn't accessible after some amount of time, I'll copy the command that failed in the build from a more recent attempt (https://github.com/rogchap/v8go/runs/4012312091?check_suite_focus=true)
Looks like the
The problem is that we are trying to build using MinGW instead of MSVC. Currently, the windows build relies on V8 patches to support MinGW (as seen in deps/windows_x86_64), but this is brittle because, according to the chromium Windows build instructions
Unfortunately, it looks like golang doesn't currently support linking MSVC object files (golang/go#20982). If I understand correctly, that would be why MinGW was used with V8 patches to pre-build the static V8 library on Windows. If MSVC were used to build v8, then it seems like it would need to be built as a dynamic library (DLL) that would need to be distributed with the executable that Go builds in order to use v8go on Windows. This is why the PR that introduced the V8 windows patches (#102) says
|
cc @GustavoCaso
That issue does mention changes that had been submitted to add support for it (https://go-review.googlesource.com/q/MSVC+toolchain lists the submitted changes). Although, it isn't clear whether there is enough interest in that work actually getting merged.
Looks like there was older documentation for building V8 that was clearer (https://chromium.googlesource.com/external/github.com/v8/v8.wiki/+/c62669e6c70cc82c55ced64faf44804bd28f33d5/Building-with-Gyp.md#mingw)
In fact, there is even some compiler conditional V8 code code for MinGW (e.g. https://chromium.googlesource.com/v8/v8.git/+/5fe0aa3bc79c0a9d3ad546b79211f07105f09585/include/v8config.h#364). However, I didn't find much activity to improve support for MinGW in V8. A search for submitted changes (https://chromium-review.googlesource.com/q/project:v8/v8+mingw) only brought up a single change, but it was recent and got accepted. I'm not sure why the work to patch V8 for the MSYS2 V8 package wasn't submitted upstream to V8, since that would reduce the maintenance burden compared to having to continually rebase these patches to apply them to newer versions of V8. |
This reverts commit 0a25ed0.
2c59f2b
to
d32e671
Compare
I'll merge this revert, since it resolves the inconsistency between the build configuration and what is actually built. That seems like a pre-requisite for making a build for #138 that is consistent with the others on master. |
Reverts #136