<?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>76388</bug_id>
          
          <creation_ts>2012-01-16 09:35:46 -0800</creation_ts>
          <short_desc>[GTK] Clean build is broken when using make -j</short_desc>
          <delta_ts>2012-02-28 03:07:53 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Kentaro Hara">haraken</assigned_to>
          <cc>abarth</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>mrobinson</cc>
    
    <cc>plaes</cc>
    
    <cc>pnormand</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>536627</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-01-16 09:35:46 -0800</bug_when>
    <thetext>If make is called without -j it works. I thibk the problem was introduced in r103920.


Creating hashtable for ../Source/JavaScriptCore/runtime/StringPrototype.cpp
  CXX    Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-AcceleratedCompositingContextClutter.lo
  CXX    Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-AssertMatchingEnums.lo
  CXX    Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-ChromeClientGtk.lo
  CXX    Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-ContextMenuClientGtk.lo
In file included from ../Source/WebCore/bindings/js/ScriptController.h:26:0,
                 from ../Source/WebCore/page/Frame.h:40,
                 from ../Source/WebCore/platform/gtk/PasteboardHelper.h:28,
                 from ../Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp:29:
../Source/WebCore/bindings/js/JSDOMWindowShell.h:32:25: fatal error: JSDOMWindow.h: No such file or directory
compilation terminated.
In file included from ../Source/WebKit/gtk/webkit/webkitwebview.h:30:0,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:26,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp:21:
./DerivedSources/webkit/webkitdom.h:23:34: fatal error: webkit/WebKitDOMAttr.h: No such file or directory
compilation terminated.
In file included from ../Source/WebKit/gtk/webkit/webkitwebview.h:30:0,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:26,
                 from ../Source/WebKit/gtk/webkit/webkitwebviewprivate.h:26,
                 from ../Source/WebKit/gtk/WebCoreSupport/ContextMenuClientGtk.cpp:29:
./DerivedSources/webkit/webkitdom.h:23:34: fatal error: webkit/WebKitDOMAttr.h: No such file or directory
compilation terminated.
In file included from ../Source/WebCore/bindings/js/ScriptController.h:26:0,
                 from ../Source/WebCore/page/Frame.h:40,
                 from ../Source/WebKit/gtk/webkit/webkitwebframeprivate.h:26,
                 from ../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:59:
../Source/WebCore/bindings/js/JSDOMWindowShell.h:32:25: fatal error: JSDOMWindow.h: No such file or directory
compilation terminated.
make[1]: *** [Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-AssertMatchingEnums.lo] Error 1
make[1]: *** Waiting for unfinished jobs....
make[1]: *** [Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-AcceleratedCompositingContextClutter.lo] Error 1
make[1]: *** [Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-ContextMenuClientGtk.lo] Error 1
make[1]: *** [Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-ChromeClientGtk.lo] Error 1
make[1]: Leaving directory `/home/cgarcia/src/git/gnome/WebKit/WebKitBuild/webkit-1.7.4/_build&apos;
make: *** [distcheck] Error 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550153</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 11:48:30 -0800</bug_when>
    <thetext>It seems this is likely caused by supplemental IDL changes. haraken, do you think you can take a look at this?

http://trac.webkit.org/changeset/103920
http://trac.webkit.org/changeset/103729</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550403</commentid>
    <comment_count>2</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 16:31:50 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; It seems this is likely caused by supplemental IDL changes. haraken, do you think you can take a look at this?
&gt; 
&gt; http://trac.webkit.org/changeset/103920
&gt; http://trac.webkit.org/changeset/103729

I guess that the cause is that no dependency is written between $(webcore_built_sources) and $(webcore_sources).

    nodist_libWebCore_la_SOURCES = $(webcore_built_sources)
    libWebCore_la_SOURCES = $(webcore_sources)

We need to guarantee that $(webcore_sources) are built _after_ $(webcore_built_sources). So I guess we can fix the issue by adding the following line:

    $(webcore_sources) : $(webcore_built_sources)

I am making a patch. (But I guess that potentially this issue would have occurred before the [supplemental] change.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550414</commentid>
    <comment_count>3</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 16:41:42 -0800</bug_when>
    <thetext>(In reply to comment #2)
 
&gt; We need to guarantee that $(webcore_sources) are built _after_ $(webcore_built_sources). So I guess we can fix the issue by adding the following line:

Typically the way to ensure this is to include auto-generated source files in BUILT_SOURCES. That&apos;s a hint to the build tools that the files should be generated during the first phase of the build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550421</commentid>
    <comment_count>4</comment_count>
      <attachid>125730</attachid>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 16:48:29 -0800</bug_when>
    <thetext>Created attachment 125730
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550422</commentid>
    <comment_count>5</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 16:50:11 -0800</bug_when>
    <thetext>Actually I could not reproduce the make -j error in my local GTK environment. If you think the patch is OK, I&apos;d like to commit it. Otherwise, I am happy if you would check that the patch really fixes the make -j error in your GTK environment before committing it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550426</commentid>
    <comment_count>6</comment_count>
      <attachid>125730</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 16:53:30 -0800</bug_when>
    <thetext>Comment on attachment 125730
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=125730&amp;action=review

This fix looks sane, but do you mind making the small change below before landing?

&gt; Source/WebCore/GNUmakefile.am:812
&gt; +	$(webkitgtk_gdom_built_sources)

The GDOM sources are actually part of the WebKit build, not the WebCore one. It might make more sense to add it to BUILT_SOURCES in Source/WebCore/bindings/gobject/GNUmakefile.am.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550428</commentid>
    <comment_count>7</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 16:54:50 -0800</bug_when>
    <thetext>Hrm. Actually it seems that webcore_built_sources is already added to BUILT_SOURCES in the toplevel GNUmakefile.am.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550431</commentid>
    <comment_count>8</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 16:55:49 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Hrm. Actually it seems that webcore_built_sources is already added to BUILT_SOURCES in the toplevel GNUmakefile.am.

Then, the patch won&apos;t fix the issue...?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550472</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 17:42:04 -0800</bug_when>
    <thetext>Carlos, this looks like the same issue that made me put $(BUILT_SOURCES) as a dependency for &apos;make docs&apos; The issue, I think, is that you cannot do &apos;make distcheck&apos; from a clean build. If you&apos;ve already built (which works fine by the way), it should work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550474</commentid>
    <comment_count>10</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 17:43:08 -0800</bug_when>
    <thetext>I say this because it&apos;s failing for me before it event tries to build the tarball it creates. Here&apos;s the full build output:


martin@thurgoodmcburdle:~/WebKit/WebKitBuild/Release$ ../../Tools/gtk/run-with-jhbuild make -j12 distcheck
  GEN    DerivedSources/WebCore/InspectorBackendDispatcher.cpp
{ test ! -d &quot;webkit-1.7.5&quot; || { find &quot;webkit-1.7.5&quot; -type d ! -perm -200 -exec chmod u+w {} &apos;;&apos; &amp;&amp; rm -fr &quot;webkit-1.7.5&quot;; }; }
test -d &quot;webkit-1.7.5&quot; || mkdir &quot;webkit-1.7.5&quot;
make  \
	  top_distdir=&quot;webkit-1.7.5&quot; distdir=&quot;webkit-1.7.5&quot; \
	  dist-hook
make[1]: Entering directory `/home/martin/WebKit/WebKitBuild/Release&apos;
  GEN    DerivedSources/WebCore/supplemental_dependency.tmp
  GEN    DerivedSources/webkit/WebKitDOMObject.h
  GEN    DerivedSources/webkit/WebKitDOMCustom.h
  GEN    DerivedSources/webkit/WebKitDOMEventTarget.h
  GEN    DerivedSources/webkit/webkitdomdefines.h
  GEN    DerivedSources/webkit/webkitdom.h
  GEN    stamp-webkitmarshal.cpp
  CXX    Source/WebCore/html/libWebCore_la-ValidationMessage.lo
  CXX    Source/WebCore/html/libWebCore_la-URLInputType.lo
  CXX    Source/WebCore/html/libWebCore_la-ValidityState.lo
  CXX    Source/WebCore/html/libWebCore_la-WeekInputType.lo
../../Source/WebCore/html/ValidationMessage.cpp:34:30: fatal error: CSSPropertyNames.h: No such file or directory
compilation terminated.
In file included from ../../Source/WebCore/dom/EventTarget.h:36:0,
                 from ../../Source/WebCore/dom/Node.h:29,
                 from ../../Source/WebCore/dom/ContainerNode.h:28,
                 from ../../Source/WebCore/dom/Document.h:34,
                 from ../../Source/WebCore/dom/Element.h:29,
                 from ../../Source/WebCore/dom/StyledElement.h:28,
                 from ../../Source/WebCore/html/HTMLElement.h:26,
                 from ../../Source/WebCore/html/FormAssociatedElement.h:27,
                 from ../../Source/WebCore/html/HTMLFormControlElement.h:27,
                 from ../../Source/WebCore/html/HTMLFormControlElementWithState.h:27,
                 from ../../Source/WebCore/html/HTMLTextFormControlElement.h:28,
                 from ../../Source/WebCore/html/HTMLInputElement.h:27,
                 from ../../Source/WebCore/html/URLInputType.cpp:34:</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550498</commentid>
    <comment_count>11</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-06 18:08:39 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; If you&apos;ve already built (which works fine by the way), it should work.

Yeah, maybe that is just because the generated files are already there. But why isn&apos;t the dependency from $(webcore_sources) to $(webcore_built_sources) guaranteed even if we add $(webcore_built_sources) to BUILT_SOURCES?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550501</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 18:14:32 -0800</bug_when>
    <thetext>(In reply to comment #11)

&gt; Yeah, maybe that is just because the generated files are already there. But why isn&apos;t the dependency from $(webcore_sources) to $(webcore_built_sources) guaranteed even if we add $(webcore_built_sources) to BUILT_SOURCES?

I&apos;m still looking into this, but it may be because the $(BUILT_SOURCES) niceties only come when you are building the &apos;all&apos; target.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>550542</commentid>
    <comment_count>13</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-06 19:21:48 -0800</bug_when>
    <thetext>(In reply to comment #12)

&gt; I&apos;m still looking into this, but it may be because the $(BUILT_SOURCES) niceties only come when you are building the &apos;all&apos; target.

I confirmed locally that &apos;make -j12 distcheck&apos; worked fine after running &apos;make -j12&apos; first. Perhaps the problem Carlos is seeing is a different one, but I can&apos;t reproduce it right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>552340</commentid>
    <comment_count>14</comment_count>
    <who name="Priit Laes (IRC: plaes)">plaes</who>
    <bug_when>2012-02-08 11:44:52 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; 
&gt; &gt; I&apos;m still looking into this, but it may be because the $(BUILT_SOURCES) niceties only come when you are building the &apos;all&apos; target.
&gt; 
&gt; I confirmed locally that &apos;make -j12 distcheck&apos; worked fine after running &apos;make -j12&apos; first. Perhaps the problem Carlos is seeing is a different one, but I can&apos;t reproduce it right now.

One way to get build error is by adding --disable-dependency-tracking to configure (this used to work also before the supplemental IDL change stuff).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554811</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-12 04:38:40 -0800</bug_when>
    <thetext>It still happens to me even with a normal make -j4 (no distcheck) in a clean WebKitBuild dir.


  CXX    Source/WebKit/gtk/WebCoreSupport/libwebkitgtk_3_0_la-ChromeClientGtk.lo
In file included from ../Source/WebCore/bindings/js/ScriptController.h:26:0,
                 from ../Source/WebCore/page/Frame.h:40,
                 from ../Source/WebCore/platform/gtk/PasteboardHelper.h:28,
                 from ../Source/WebKit/gtk/WebCoreSupport/AssertMatchingEnums.cpp:29:
../Source/WebCore/bindings/js/JSDOMWindowShell.h:32:25: error fatal: JSDOMWindow.h: No existe el archivo o el directorio
compilación terminada.
In file included from ../Source/WebKit/gtk/webkit/webkitwebview.h:30:0,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:27,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextGL.cpp:20:
./DerivedSources/webkit/webkitdom.h:23:34: error fatal: webkit/WebKitDOMAttr.h: No existe el archivo o el directorio
compilación terminada.
In file included from ../Source/WebKit/gtk/webkit/webkitwebview.h:30:0,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContext.h:27,
                 from ../Source/WebKit/gtk/WebCoreSupport/AcceleratedCompositingContextClutter.cpp:21:
./DerivedSources/webkit/webkitdom.h:23:34: error fatal: webkit/WebKitDOMAttr.h: No existe el archivo o el directorio
compilación terminada.
In file included from ../Source/WebCore/bindings/js/ScriptController.h:26:0,
                 from ../Source/WebCore/page/Frame.h:40,
                 from ../Source/WebKit/gtk/webkit/webkitwebframeprivate.h:26,
                 from ../Source/WebKit/gtk/WebCoreSupport/ChromeClientGtk.cpp:60:
../Source/WebCore/bindings/js/JSDOMWindowShell.h:32:25: error fatal: JSDOMWindow.h: No existe el archivo o el directorio

So I guess it fails always running distcheck, not because distcheck makes anything different, but because it always builds on a clean build dir. 
Just running make -j4 again after the failure makes the build to continue, but that&apos;s not possible with distcheck, because every make distcheck starts from scratch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>554898</commentid>
    <comment_count>16</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-12 17:24:02 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; It still happens to me even with a normal make -j4 (no distcheck) in a clean WebKitBuild dir.
&gt; So I guess it fails always running distcheck, not because distcheck makes anything different, but because it always builds on a clean build dir. 
&gt; Just running make -j4 again after the failure makes the build to continue, but that&apos;s not possible with distcheck, because every make distcheck starts from scratch

I could not reproduce it maybe because my machine has only 2 CPUs. Anyway the cause is that it is not guaranteed that $(webcore_sources) are built _after_ $(webcore_built_sources). I am not sure how to write the dependency correctly in automake, but would you try to add the following line in WebCore/GNUMakefile.am and see what happens?

    $(webcore_sources) : $(webcore_built_sources)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555084</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-13 00:41:10 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I could not reproduce it maybe because my machine has only 2 CPUs. Anyway the cause is that it is not guaranteed that $(webcore_sources) are built _after_ $(webcore_built_sources). I am not sure how to write the dependency correctly in automake, but would you try to add the following line in WebCore/GNUMakefile.am and see what happens?
&gt; 
&gt;     $(webcore_sources) : $(webcore_built_sources)

It doesn&apos;t help :-( I&apos;m not sure the problem is that webcore_sources depends on webcore_built_sources. In the Makefile the all: rule depends on BUILT_SOURCES, so they should all be generated before anything else. The problem is that libwebkitgtk is built before libWebCore, since it depends on it at link time, but libwebkitgtk depends on webcore generated sources (at least the headers). 

When the compilation starts, BUILT_SOURCES are indeed created, since it&apos;s a dependency of all:
The first file generated is the supplemental file:

  GEN    DerivedSources/WebCore/supplemental_dependency.tmp

Then it generates the libwebkitgtk built sources, webkit2 built sources, JavaScriptCore built sources, and then it generates some of the webcore built sources:

  GEN    DerivedSources/WebCore/CSSGrammar.cpp
  GEN    DerivedSources/WebCore/CSSPropertyNames.h
  GEN    DerivedSources/WebCore/CSSValueKeywords.h
  GEN    DerivedSources/WebCore/ColorData.cpp
  GEN    DerivedSources/WebCore/EventFactory.cpp
  GEN    DerivedSources/WebCore/EventHeaders.h
  GEN    DerivedSources/WebCore/EventInterfaces.h
  GEN    DerivedSources/WebCore/EventTargetHeaders.h
  GEN    DerivedSources/WebCore/EventTargetInterfaces.h
  GEN    DerivedSources/WebCore/ExceptionCodeDescription.cpp
  GEN    DerivedSources/WebCore/ExceptionInterfaces.h
  GEN    DerivedSources/WebCore/ExceptionHeaders.h
  GEN    DerivedSources/WebCore/HTMLNames.h
  GEN    DerivedSources/WebCore/HTMLEntityTable.cpp
  GEN    DerivedSources/WebCore/InjectedScriptSource.h
  GEN    DerivedSources/WebCore/InspectorBackendDispatcher.cpp
  GEN    DerivedSources/WebCore/InspectorProtocolVersion.h
  GEN    DerivedSources/WebCore/SVGElementFactory.cpp
  GEN    DerivedSources/WebCore/MathMLElementFactory.cpp
  GEN    DerivedSources/WebCore/MathMLNames.cpp
  GEN    DerivedSources/WebCore/UserAgentStyleSheets.h
  GEN    DerivedSources/WebCore/WebKitFontFamilyNames.h
  GEN    DerivedSources/WebCore/XLinkNames.cpp
  GEN    DerivedSources/WebCore/XMLNames.cpp
  GEN    DerivedSources/WebCore/XMLNames.h
  GEN    DerivedSources/WebCore/XMLNSNames.cpp
  GEN    DerivedSources/WebCore/XMLNSNames.h
  GEN    DerivedSources/WebCore/XMLViewerCSS.h
  GEN    DerivedSources/WebCore/XMLViewerJS.h
  GEN    DerivedSources/WebCore/XPathGrammar.cpp
  GEN    DerivedSources/ANGLE/glslang.cpp
  GEN    DerivedSources/ANGLE/glslang_tab.cpp

These are the ones that have an explicit rule in the Makefile and don&apos;t depend on the supplemental temp file. The rule for webcore built sources starting with JS is not executed, I guess  it&apos;s because all dependencies already exist. I have tried several changes in the makefile and I haven&apos;t managed to make it build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555087</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-13 00:44:26 -0800</bug_when>
    <thetext>When running make again after it fails, all DerivedSources/webkit/WebKitDOM* files are generated and then all DerivedSources/WebCore/JS* and the build completes successfully.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556789</commentid>
    <comment_count>19</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-14 17:10:28 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; These are the ones that have an explicit rule in the Makefile and don&apos;t depend on the supplemental temp file. The rule for webcore built sources starting with JS is not executed, I guess  it&apos;s because all dependencies already exist.

Carlos: Sorry for the trouble. In my understanding, the supplemental change should not have changed dependencies in makefile (but actually it has changed the dependencies).

Just a random thought, but maybe is it related to .SECONDARY? What happens if we remove two &quot;.SECONDARY&quot;s from $(SUPPLEMENTAL_DEPENDENCY_FILE) and DerivedSources/WebCore/JS%.h?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>556990</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2012-02-15 00:43:21 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #17)
&gt; &gt; These are the ones that have an explicit rule in the Makefile and don&apos;t depend on the supplemental temp file. The rule for webcore built sources starting with JS is not executed, I guess  it&apos;s because all dependencies already exist.
&gt; 
&gt; Carlos: Sorry for the trouble. In my understanding, the supplemental change should not have changed dependencies in makefile (but actually it has changed the dependencies).
&gt; 
&gt; Just a random thought, but maybe is it related to .SECONDARY? What happens if we remove two &quot;.SECONDARY&quot;s from $(SUPPLEMENTAL_DEPENDENCY_FILE) and DerivedSources/WebCore/JS%.h?

I think I already tried to remove the .SECONDARY rules and it didn&apos;t help. Btw, .SECONDARY rule with no deps marks all targets in the makefile as secondary, so we don&apos;t need two .SECONDARY rules there</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561658</commentid>
    <comment_count>21</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-21 23:19:09 -0800</bug_when>
    <thetext>I just spent hours debugging this issue, but I think I&apos;ve managed to produce a fix. As far as I can tell the problem is this:

1. BUILT_SOURCES doesn&apos;t do anything except put certain targets at the front of the source list by making all depend on $(BUILT_SOURCES).
2. If those targets cannot be built, because a dependency hasn&apos;t been generated yet, GNUmake is smart enough to build them later.
3. Once this happens GNUmake will continue walking down the target list past BUILT_SOURCES into non-autogenerated sources. Ideally $(BUILT_SOURCES) should be built serially before the rest of the &apos;all&apos; target dependencies, but autotools doesn&apos;t do that. It may not even be possible without a new hook in GNUmake.

This is even more of an issue because generating the supplemental IDL information is really slow. It&apos;s often the case that GNUmake will try to build a file that depends on a generated-by-IDL file before the supplemental IDL target finishes.

The solution here, as with most problems in GNUmake is to properly specify dependencies.  Patch incoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>561663</commentid>
    <comment_count>22</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-21 23:28:07 -0800</bug_when>
    <thetext>(In reply to comment #21)
&gt; I just spent hours debugging this issue, but I think I&apos;ve managed to produce a fix. 

Ah, really great, thanks! I also just spent hours debugging this issue today but have not yet reached the solution:-(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562146</commentid>
    <comment_count>23</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2012-02-22 10:56:20 -0800</bug_when>
    <thetext>Committed r108523: &lt;http://trac.webkit.org/changeset/108523&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>562472</commentid>
    <comment_count>24</comment_count>
    <who name="Kentaro Hara">haraken</who>
    <bug_when>2012-02-22 15:44:45 -0800</bug_when>
    <thetext>Really thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566552</commentid>
    <comment_count>25</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-28 03:07:37 -0800</bug_when>
    <thetext>If I disable WebKit2 build, jsc-3 is created but the build fails later on:

  CXXLD  Programs/jsc-3
  CXXLD  libjavascriptcoregtk-3.0.la
  CXXLD  Libraries/libTestRunnerInjectedBundle.la
libtool: link: cannot find the library `libjavascriptcoregtk-3.0.la&apos; or unhandled argument `libjavascriptcoregtk-3.0.la&apos;
make[1]: *** [Programs/minidom] Error 1
make[1]: *** Waiting for unfinished jobs....
libtool: link: cannot find the library `libjavascriptcoregtk-3.0.la&apos; or unhandled argument `libjavascriptcoregtk-3.0.la&apos;
make[1]: *** [Programs/jsc-3] Error 1
make[1]: Leaving directory `/home/phil/gst/jhbuild/build/WebKit/WebKitBuild/tmp/Release&apos;
make: *** [all] Error 2

Could this whole issue be related with r108523 ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>566553</commentid>
    <comment_count>26</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2012-02-28 03:07:53 -0800</bug_when>
    <thetext>wrong bug, sorry</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>125730</attachid>
            <date>2012-02-06 16:48:29 -0800</date>
            <delta_ts>2012-02-06 17:04:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76388-20120207094827.patch</filename>
            <type>text/plain</type>
            <size>1576</size>
            <attacher name="Kentaro Hara">haraken</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA2ODcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODUwMDRlNDBlMWQ0MGY5
NTVmYTYwNmUyMTVmMTkyYTQ4NjFlZjQxMS4uOWQ2NTc2YTFjNjdhNTg2YmIyNWRhOGMxM2VmNzJm
MmE2YzYxZmJiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAyLTA2ICBLZW50
YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KKworICAgICAgICBbR1RLXSBNYWtlIGRp
c3RjaGVjayBpcyBicm9rZW4gd2hlbiB1c2luZyBtYWtlIC1qCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NjM4OAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFBhcmFsbGVsIG1ha2UgZm9yIHRoZSBHVEsgYnVp
bGQgaXMgYnJva2VuLCBiZWNhdXNlIGl0IGlzIG5vdAorICAgICAgICBndWFyYW50ZWVkIHRoYXQg
JCh3ZWJjb3JlX3NvdXJjZXMpIGFyZSBidWlsdCBhZnRlcgorICAgICAgICAkKHdlYmNvcmVfYnVp
bHRfc291cmNlcykgYW5kICQod2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcykuCisgICAgICAg
IFRvIGd1YXJhbnRlZSB0aGlzLCB0aGlzIHBhdGNoIGluY2x1ZGVzICQod2ViY29yZV9idWlsdF9z
b3VyY2VzKSBhbmQKKyAgICAgICAgJCh3ZWJraXRndGtfZ2RvbV9idWlsdF9zb3VyY2VzKSBpbnRv
IEJVSUxUX1NPVVJDRVMuCisKKyAgICAgICAgTm8gdGVzdHMuIE1hbnVhbGx5IGNvbmZpcm0gdGhh
dCB0aGUgR1RLIGJ1aWxkIHBhc3NlcyB1c2luZyBtYWtlIC1qLgorCisgICAgICAgICogR05VbWFr
ZWZpbGUuYW06CisKIDIwMTItMDItMDYgIEphbWVzIFJvYmluc29uICA8amFtZXNyQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIERyb3AgdGlsZXMgY29tcGxldGVseSBvdXRzaWRl
IG9mIGxheWVyIGJvdW5kcyB3aGVuIHJlc2l6aW5nIHRvIGEgc21hbGxlciBzaXplCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1NvdXJjZS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtCmluZGV4IGZlNWNjYjk0ZmRhNWE4Y2QyMTM1Y2Q5NzU0MGYxZjQ3ZWQxM2U3MTku
Ljc5MWM2NWU0YTA4MmMxYTYwYzZkMjUxNDFiZDk5N2U1NzBlYTFkOWIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtCkBAIC04MDcsNiArODA3LDEwIEBAIG5vZGlzdF9FWFRSQV9saWJXZWJDb3JlX2xhX1NP
VVJDRVMgPSBcCiBub2Rpc3RfbGliV2ViQ29yZV9sYV9TT1VSQ0VTID0gXAogCSQod2ViY29yZV9i
dWlsdF9zb3VyY2VzKQogCitCVUlMVF9TT1VSQ0VTICs9IFwKKwkkKHdlYmNvcmVfYnVpbHRfc291
cmNlcykgXAorCSQod2Via2l0Z3RrX2dkb21fYnVpbHRfc291cmNlcykKKwogbGliV2ViQ29yZV9s
YV9TT1VSQ0VTID0gXAogCSQod2ViY29yZV9zb3VyY2VzKQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>