Bug 83584

Summary: Fix the build with gcc 4.7.0
Product: WebKit Reporter: Andras Becsi <abecsi>
Component: Tools / TestsAssignee: Andras Becsi <abecsi>
Status: RESOLVED FIXED    
Severity: Normal CC: jingdow, kbalazs, ossy, vestbo, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: Linux   
Bug Depends on:    
Bug Blocks: 43191    
Attachments:
Description Flags
proposed fix
buildbot: commit-queue-
updated patch
none
updated patch with updated changelog none

Andras Becsi
Reported 2012-04-10 08:18:05 PDT
Building WebKit with the recently released gcc 4.7.0 is not possible because the compiler has a few new warning messages which make the build fail because of Werror.
Attachments
proposed fix (5.96 KB, patch)
2012-04-10 09:24 PDT, Andras Becsi
buildbot: commit-queue-
updated patch (5.36 KB, patch)
2012-04-10 09:51 PDT, Andras Becsi
no flags
updated patch with updated changelog (5.33 KB, patch)
2012-04-10 10:00 PDT, Andras Becsi
no flags
Andras Becsi
Comment 1 2012-04-10 09:24:42 PDT
Created attachment 136470 [details] proposed fix
Build Bot
Comment 2 2012-04-10 09:50:22 PDT
Comment on attachment 136470 [details] proposed fix Attachment 136470 [details] did not pass mac-ews (mac): Output: http://queues.webkit.org/results/12379515
Andras Becsi
Comment 3 2012-04-10 09:51:36 PDT
Created attachment 136473 [details] updated patch
Andras Becsi
Comment 4 2012-04-10 10:00:13 PDT
Created attachment 136474 [details] updated patch with updated changelog *sigh*
Alexey Proskuryakov
Comment 5 2012-04-10 12:51:45 PDT
Comment on attachment 136474 [details] updated patch with updated changelog View in context: https://bugs.webkit.org/attachment.cgi?id=136474&action=review > Source/WebCore/html/HTMLImageElement.cpp:76 > - if (optionalHeight > 0) > + if (optionalHeight) Heh.
Andras Becsi
Comment 6 2012-04-11 04:23:29 PDT
Comment on attachment 136474 [details] updated patch with updated changelog Clearing flags on attachment: 136474 Committed r113848: <http://trac.webkit.org/changeset/113848>
Andras Becsi
Comment 7 2012-04-11 04:23:38 PDT
All reviewed patches have been landed. Closing bug.
jingdow
Comment 8 2012-04-12 01:10:51 PDT
Still fails with error: g++: error: unrecognized command line option ‘-fuse-ld=gold’ on x86_64 architecture. It works if I manually edit 'Tools/qmake/mkspecs/features/unix/default_post.prf' removing lines 41-46.
Balazs Kelemen
Comment 9 2012-04-12 02:21:18 PDT
(In reply to comment #8) > Still fails with error: > > g++: error: unrecognized command line option ‘-fuse-ld=gold’ > > on x86_64 architecture. It works if I manually edit 'Tools/qmake/mkspecs/features/unix/default_post.prf' removing lines 41-46. Strange. Do you use the same gcc for building qt and webkit?
Andras Becsi
Comment 10 2012-04-12 02:41:02 PDT
(In reply to comment #8) > Still fails with error: > > g++: error: unrecognized command line option ‘-fuse-ld=gold’ > > on x86_64 architecture. It works if I manually edit 'Tools/qmake/mkspecs/features/unix/default_post.prf' removing lines 41-46. You have to build Qt with the same compiler you try to build WebKit, since the QT_GCC_FOO_VERSION variables are set on compile time of Qt. So if your Qt was built with gcc 4.6 (or older), then the check does not work, and the -fuse-ld=gold is appended. There should probably be a version check for the actual compiler in the WebKit codebase, but this is not trivial since we support a myriad of compilers. And additionally, this is a transition problem which should be fixed by the Qt packagers of the distribution / the provider of your Qt.
Andras Becsi
Comment 11 2012-04-12 02:45:05 PDT
(In reply to comment #10) > (In reply to comment #8) > > Still fails with error: > > > > g++: error: unrecognized command line option ‘-fuse-ld=gold’ > > > > on x86_64 architecture. It works if I manually edit 'Tools/qmake/mkspecs/features/unix/default_post.prf' removing lines 41-46. > > You have to build Qt with the same compiler you try to build WebKit, since the QT_GCC_FOO_VERSION variables are set on compile time of Qt. > > So if your Qt was built with gcc 4.6 (or older), then the check does not work, and the -fuse-ld=gold is appended. > > There should probably be a version check for the actual compiler in the WebKit codebase, but this is not trivial since we support a myriad of compilers. > And additionally, this is a transition problem which should be fixed by the Qt packagers of the distribution / the provider of your Qt. This made me wonder if we should consider removing the QMAKE_LFLAGS += -fuse-ld=gold line altogether and require developers to set ld.gold as the default linker if they want to use it. Tor Arne, what do you think?
jingdow
Comment 12 2012-04-13 06:54:34 PDT
To reply Balazs and Andras: I use Qt binary package provided by my OS (Arch Linux), which is (most probably) compiled with gcc 4.6. Thanks for clarification.
Note You need to log in before you can comment on or make changes to this bug.