Bug 102248 - [CMake] Do not regenerate LLIntAssembly.h on every incremental build
Summary: [CMake] Do not regenerate LLIntAssembly.h on every incremental build
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Tools / Tests (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Thiago Marcos P. Santos
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-11-14 10:04 PST by Thiago Marcos P. Santos
Modified: 2012-11-15 10:19 PST (History)
4 users (show)

See Also:


Attachments
Patch (2.35 KB, patch)
2012-11-14 10:28 PST, Thiago Marcos P. Santos
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Thiago Marcos P. Santos 2012-11-14 10:04:36 PST
SSIA.
Comment 1 Thiago Marcos P. Santos 2012-11-14 10:28:35 PST
Created attachment 174196 [details]
Patch
Comment 2 Raphael Kubo da Costa (:rakuco) 2012-11-14 15:02:47 PST
FWIW, we've worked together on this one so LGTM.
Comment 3 Laszlo Gombos 2012-11-14 18:51:54 PST
Just an idea - would it be possible to remove LLIntOffsetsExtractor as a dependency for this generator ? - It seems that the Qt port is using that approach.

-DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
+DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}
Comment 4 Thiago Marcos P. Santos 2012-11-15 01:53:29 PST
(In reply to comment #3)
> Just an idea - would it be possible to remove LLIntOffsetsExtractor as a dependency for this generator ? - It seems that the Qt port is using that approach.
> 
> -DEPENDS LLIntOffsetsExtractor ${LLINT_ASM} ${OFFLINE_ASM}
> +DEPENDS ${LLINT_ASM} ${OFFLINE_ASM}

This is wrong. LLIntOffsetsExtractor is a real dependency.

The problem here is that sometimes the dependencies of LLIntOffsetsExtractor changes and it is rebuilt, but the exact same binary as before is generated (like when you add some code #ifdef'ed for a platform other than yours). This is fine and happens all the time with regular source code.

asm.rb, which in this case acts like a compiler, does some checksum magic and LLIntAssembly.h is not regenerated if LLIntOffsetsExtractor checksum matches the older version. asm.rb breaks the build system, because in this case a dependency (LLIntOffsetsExtractor) will be always newer than the dependent (LLIntAssembly.h). I'm fixing this by touching the LLIntAssembly.h.
Comment 5 WebKit Review Bot 2012-11-15 10:19:15 PST
Comment on attachment 174196 [details]
Patch

Clearing flags on attachment: 174196

Committed r134793: <http://trac.webkit.org/changeset/134793>
Comment 6 WebKit Review Bot 2012-11-15 10:19:20 PST
All reviewed patches have been landed.  Closing bug.