Closed
Conversation
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Building on Windows x86 has been broken on master since the update of V8 to 5.7 (#11752, nodejs/v8#4, nodejs/build#669). This was not detected at the time because the CI matrix does not include a 32 bit build (which I plan to add after this lands).
When building V8 with Gyp, the library
v8_baseis divided into several shards because its size exceeds the limit. For each shard, a singlecl.exeinvocation is used to compile all.ccfiles into.objfiles. In this invocation, some functions fromruntime.ccare not getting compiled intoruntime.obj. Usingcl.exewith all the same arguments but to compile onlyruntime.cccompiles all functions as expected. I was not yet able to determine what set of files interferes, but none of the other files compiled alone withruntime.cccauses the problem. This seems to happens only when a big set of files (>110) is compiled simultaneously.This might have passed unnoticed in V8 upstream because ninja compiles every source file one at a time.
This PR increases the number of shards to divide v8_base into. This increases the number of calls to
cl.exebut decreases the number of files compiled each time.Fixes: nodejs/v8#4
cc @nodejs/v8 @jasnell
Checklist
make -j4 test(UNIX), orvcbuild test(Windows) passesAffected core subsystem(s)
Deps, V8, build, Windows.