<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>79102</bug_id>
          
          <creation_ts>2012-02-21 06:53:13 -0800</creation_ts>
          <short_desc>[Qt] Incremental build problem revealed by r108345</short_desc>
          <delta_ts>2012-02-24 06:13:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P1</priority>
          <bug_severity>Critical</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Csaba Osztrogonác">ossy</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abecsi</cc>
    
    <cc>allan.jensen</cc>
    
    <cc>ossy</cc>
    
    <cc>vestbo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>560845</commentid>
    <comment_count>0</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 06:53:13 -0800</bug_when>
    <thetext>It seems HTMLDataListElement.o should depends on Source/WebCore/dom/StyledElement.h, but it doesn&apos;t.

/usr/bin/gold: /home/oszi/WebKit/WebKitBuild/Release/Source/WebCore/debug/libWebCore.a(HTMLDataListElement.o): in function vtable for WebCore::HTMLDataListElement:HTMLDataListElement.cpp(.data.rel.ro._ZTVN7WebCore19HTMLDataListElementE+0xf4): error: undefined reference to &apos;WebCore::StyledElement::insertedIntoDocument()&apos;
/usr/bin/gold: /home/oszi/WebKit/WebKitBuild/Release/Source/WebCore/debug/libWebCore.a(HTMLDataListElement.o): in function vtable for WebCore::HTMLDataListElement:HTMLDataListElement.cpp(.data.rel.ro._ZTVN7WebCore19HTMLDataListElementE+0xf8): error: undefined reference to &apos;WebCore::StyledElement::removedFromDocument()&apos;
/usr/bin/gold: /home/oszi/WebKit/WebKitBuild/Release/Source/WebCore/debug/libWebCore.a(InsertionPoint.o): in function vtable for WebCore::InsertionPoint:InsertionPoint.cpp(.data.rel.ro._ZTVN7WebCore14InsertionPointE+0xf4): error: undefined reference to &apos;WebCore::StyledElement::insertedIntoDocument()&apos;
/usr/bin/gold: /home/oszi/WebKit/WebKitBuild/Release/Source/WebCore/debug/libWebCore.a(InsertionPoint.o): in function vtable for WebCore::InsertionPoint:InsertionPoint.cpp(.data.rel.ro._ZTVN7WebCore14InsertionPointE+0xf8): error: undefined reference to &apos;WebCore::StyledElement::removedFromDocument()&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560859</commentid>
    <comment_count>1</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 07:09:40 -0800</bug_when>
    <thetext>There some serious bug in the new QtWebKit buildsystem:

- dom/StyledElement.h is in WebCore/target.pri
- /home/oszi/WebKit/Source/WebCore/dom/StyledElement.h is in /WebKitBuild/Release/Source/WebCore/HTMLDataListElement.d
- _BUT_ WebKitBuild/Release/Source/WebCore/Makefile.WebCore.Target
includes wrong dependecy files: &quot;-include obj/debug/dom/StyledElement.d&quot;

Tor Arne, could you check what happened? I think we got _all_ incremental build bugs nowadays because of this. It means that now almost all dependency is missing. :S</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560880</commentid>
    <comment_count>2</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 07:56:17 -0800</bug_when>
    <thetext>I think it is qmake bug near GNUMake option.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560892</commentid>
    <comment_count>3</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-21 08:23:00 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; - /home/oszi/WebKit/Source/WebCore/dom/StyledElement.h is in /WebKitBuild/Release/Source/WebCore/HTMLDataListElement.d

The location of this file is wrong.

&gt; - _BUT_ WebKitBuild/Release/Source/WebCore/Makefile.WebCore.Target
&gt; includes wrong dependecy files: &quot;-include obj/debug/dom/StyledElement.d&quot;

That&apos;s correct. That&apos;s including the expected dependency file for StyledElement (not HTMLDataListElement), and in the right location.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560938</commentid>
    <comment_count>4</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 09:10:51 -0800</bug_when>
    <thetext>OK. And how can we fix it? Or is it possible to disable GNUMake dependency generation on the bots until proper fix?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560941</commentid>
    <comment_count>5</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-21 09:15:42 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; OK. And how can we fix it? Or is it possible to disable GNUMake dependency generation on the bots until proper fix?

I&apos;m doing a local build to try to reproduce, let&apos;s compare my results with yours on IRC.

For the bots you can do CONFIG-=GNUmake to force qmake to deal with all dependency tracking. Requires a clean build after changing the config.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>560966</commentid>
    <comment_count>6</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-21 09:42:24 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; OK. And how can we fix it? 

It appears your .d files are not placed at the same path as the .o files, which should be the effect of passing -MD to gcc. Can you try this and verify that the .o and .d both end up in obj?

mkdir -p obj &amp;&amp; touch foo.cpp &amp;&amp; gcc -c foo.cpp -o obj/foo.o -MD &amp;&amp; ls obj</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561162</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-21 13:05:59 -0800</bug_when>
    <thetext>Very very strange ... I got different results on our similar servers. (Same distibution, same gcc, etc.)

Tomorrow I&apos;ll check what happened.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561753</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2012-02-22 01:47:51 -0800</bug_when>
    <thetext>We got it, unfortunately it is an icecc bug.

original command: gcc -c -MD x/y.c -o x/y.o
local preprocess: gcc -E -MD x/y.c
  --&gt; It generates y.d into the current directory, 
      because icecc consumed the &quot;-o x/y.o&quot;

We need a nice workaround to make incremental build work again with icecream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562257</commentid>
    <comment_count>9</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-02-22 12:33:27 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; We got it, unfortunately it is an icecc bug.
&gt; 
&gt; original command: gcc -c -MD x/y.c -o x/y.o
&gt; local preprocess: gcc -E -MD x/y.c
&gt;   --&gt; It generates y.d into the current directory, 
&gt;       because icecc consumed the &quot;-o x/y.o&quot;
&gt; 
&gt; We need a nice workaround to make incremental build work again with icecream.

Remember to also file the bug to icecream.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>564265</commentid>
    <comment_count>10</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2012-02-24 06:08:58 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #8)
&gt; &gt; We got it, unfortunately it is an icecc bug.
&gt; &gt; 
&gt; &gt; original command: gcc -c -MD x/y.c -o x/y.o
&gt; &gt; local preprocess: gcc -E -MD x/y.c
&gt; &gt;   --&gt; It generates y.d into the current directory, 
&gt; &gt;       because icecc consumed the &quot;-o x/y.o&quot;
&gt; &gt; 
&gt; &gt; We need a nice workaround to make incremental build work again with icecream.
&gt; 
&gt; Remember to also file the bug to icecream.

This issue was fixed in icecream 0.9.7, please upgrade.</thetext>
  </long_desc>
      
      

    </bug>

</bugzilla>