Created attachment 152079 [details]
split libWebCore into two archives to avoid the 4G ar format limit
I have (on debian sid that is binutils >= 2.22 but issue should apply before those releases too)
the same bug as on :
ie libWebCore.a: could not read symbols: Malformed archive while linking WebKitPluginProcess
"Nick Clifton 2012-07-03 11:17:15 EDT
(In reply to comment #10)
> Isn't the ar format limitation 9.3GiB file size inside of the ar archive
> (above that it won't fit into 10 decimal digits reserved in the file header)?
There is also a 32-bit limit on the size of file offsets in symbol table at the start of the archive (if it has one). This was the problem - the linker uses these file offsets to locate individual archive members and since these had been truncated when the archive symbol table was created, the linker failed to find the archive members that it wanted."
As libWebCore.a built with flags "-g -02" is 4.4G it goes beyond this limit.
I made a quick sample of how it could get fixed in attached patch (split libWebCore.a into libWebCoreA.a and libWebCoreB.a)
It is not ready to apply (the split is approximate , there is no changelog entry). It is there to open the discussion.
If we must continue splitting WebCore, I'm not sure having simply WebCoreA and a WebCoreB is a good way to split it. I'd rather see it split to match the organizational structure of the code.
The s390x elf target in binutils got support for big archives recently as a reaction on https://bugzilla.redhat.com/show_bug.cgi?id=835957
(In reply to comment #1)
> If we must continue splitting WebCore, I'm not sure having simply WebCoreA and a WebCoreB is a good way to split it. I'd rather see it split to match the organizational structure of the code.
Based on the source structure, I would split 'WebCore/Modules' to libwebcoremodules.
If this wouldn't be enough, then also:
'WebCore/dom' -> libwebcoredom
'WebCore/css' -> libwebcorecss
'WebCore/html' -> libwebcorehtml
'WebCore/svg' -> libwebcoresvg
Any better ideas?
libwebcoremodules is already split; I tried to split platform but it didn't work well with the pluginprocess. I think splitting svg could be a good idea, actually, maybe it'll not be as problematic, I'll give it a try.
*** This bug has been marked as a duplicate of bug 102347 ***
So, WebCore has been split - we now have libWebCore, libWebCoreModules, libWebCorePlatform and libWebCoreSVG, see: 134864 and 135538, thanks for the bug report!