electron / libchromiumcontent

Shared library build of Chromium’s Content module
MIT License
485 stars 183 forks source link

webkitcore.lib is too big and errors when compiling on Windows #683

Closed vulture closed 5 years ago

vulture commented 6 years ago

obj/libchromiumcontent/chromiumcontent/webkitcore.lib : fatal error LNK1248: image size (100xxxxxx) exceeds maximum allowable size (FFFFFFFF)

Electron 1.8.8's libcc: working (vs2015) Electron 2.0.8's libcc: broken for me (vs2017) Electron 3.0.0's libcc: broken for me (vs2017)

webkitcore.lib appears to be roughly 18~28 GB for me depending on settings and version (Electron 2 and 3). I noticed that in libcc for Electron 2 and 3, webkitcore is specified as a single library static_library("webkitcore") { : https://github.com/electron/libchromiumcontent/blob/electron-3-0-x/chromiumcontent/BUILD.gn#L327

while previously(or at least currently?) in 1.8 it was specified as a 9 part split library split_static_library("webkitcore") { split_count = 9. https://github.com/electron/libchromiumcontent/blob/electron-1-8-x/chromiumcontent/BUILD.gn#L303

If I update 2.0 and 3.0's BUILD.gn to use split_static_library with split_count=9, I'm able to compile without errors again (though I run into later errors regarding Electron needing an updated filenames.gypi for all the split .lib files to keep in sync between Electron and libcc, I think I just need to rebuild that file via create-dist and it should work). v8base on 2.0 and 3.0 is also using split_static_library currently, so it seems weird that a much larger library (webkitcore) is not using split_static_library.

Side note: not sure if this matters, but I have to disable jumbo builds for some of our patches to work -- don't know if this is why it's broken for us but not for official Electron builds? Seems like the .lib would still extremely large for jumbo builds too, though.

MarshallOfSound commented 5 years ago

Hey there,

It's been a long time coming but the libchromiumcontent repository is being archived as it is no longer used in the Electron build system (🎉 this is a good thing).

If your issue is still relevant to Electron in it's current build system (please verify first) then you should probably raise a similar issue on electron/electron.

Thanks 😄