Bug 81063

Summary: GTK 32-bit Linux Release build failing after r110580 (from bug 80338)
Product: WebKit Reporter: Max Vujovic <mvujovic>
Component: WebKitGTKAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
Prospective build fix patch after r110580 for GTK Linux 32-bit release. none

Description Max Vujovic 2012-03-13 17:28:08 PDT
GTK friends,

The GTK 64-bit bots are building fine, but the GTK 32-bit bot is failing with a linking error:

  CCLD   Programs/unittests/testcopyandpaste
./.libs/libWebCoreInternals.a(libWebCoreInternals_la-Internals.o):Internals.cpp:function WebCore::Internals::inspectorHighlightRects(WebCore::Document*, int&): error: undefined reference to 'WebCore::ClientRectList::ClientRectList(WTF::Vector<WebCore::FloatQuad, 0u> const&)'

(From GTK 32-bit log: http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/22245/steps/compile-webkit/logs/stdio)

In r110580 (bug 80338), I added a reference to ClientRectList(Vector<FloatQuad>) and I put its symbol in symbols.filter. This passed the GTK EWS bot, and the GTK 64-bit build bots after landing.

However, I think GTK 32-bit wants another symbol for ClientRectList(Vector<FloatQuad>).

I don't have a working environment set up to build GTK 32-bit on Linux and determine the required symbol. However, I have inferred a reasonable guess for what the symbol is, based on a very similar 32-bit build fix that Gustavo did: http://trac.webkit.org/changeset/105424/

Gustavo's fix also was related to method that took in a Vector.
In that fix, there was already a symbol:
_ZN7WebCore30overrideUserPreferredLanguagesERKN3WTF6VectorINS0_6StringELm0EEE;

And Gustavo added:
_ZN7WebCore30overrideUserPreferredLanguagesERKN3WTF6VectorINS0_6StringELj0EEE;

(Notice the first symbol ends with "ELm0EEE". The second symbol ends with "ELj0EEE".)

Currently, the symbol I have for the ClientRectList(Vector<FloatQuad>) constructor is:
_ZN7WebCore14ClientRectListC1ERKN3WTF6VectorINS_9FloatQuadELm0EEE;

Notice how this also ends with "ELm0EEE", like in Gustavo's fix.
I'm guessing that the symbol I need to add is almost the same, except with a "ELj0EEE" at the end, like this:

_ZN7WebCore14ClientRectListC1ERKN3WTF6VectorINS_9FloatQuadELj0EEE;
Comment 1 Max Vujovic 2012-03-13 17:35:18 PDT
Created attachment 131761 [details]
Prospective build fix patch after r110580 for GTK Linux 32-bit release. 

I've put a patch that adds the symbol that might fix the 32-bit build, based on the previous comment. If any GTK experts think I'm right, I would appreciate it if they reviewed and committed it. 

Thank you,
Max
Comment 2 WebKit Review Bot 2012-03-14 00:11:38 PDT
Comment on attachment 131761 [details]
Prospective build fix patch after r110580 for GTK Linux 32-bit release. 

Clearing flags on attachment: 131761

Committed r110668: <http://trac.webkit.org/changeset/110668>
Comment 3 WebKit Review Bot 2012-03-14 00:11:41 PDT
All reviewed patches have been landed.  Closing bug.
Comment 4 Max Vujovic 2012-03-14 09:00:11 PDT
Thank you for the review, Martin.

Looks like it fixed the GTK 32-bit build :)
http://build.webkit.org/builders/GTK%20Linux%2032-bit%20Release/builds/22282