Hi,
most of the tree was already ccache aware, with one exception: romcc. This hurt, as on the non-CAR boards, this is a large non-parallelizable part of the total build time.
This patch changes romcc to: - accept -c and -S (and ignores them as that's already the only mode it knows) - send -E output (preprocessor only) to stdout except if a filename is given (by testing if it's set to the current default of auto.inc)
With these, ccache3.0pre0 (the version I tried) is capable of cache romcc output.
The Makefile changes in this patch make use of that, if "ccache" is found in $PATH (necessary as we use various paths for our romcc), and runs ccache $(obj)/romcc, using the "content" compiler version verification (which hashes the compiler executable) for romcc.
Thus when romcc is changed, ccache doesn't use cached files but requests new builds.
On my test system, abuild of a romcc board (thomson/ip1000) goes down from 9 to 3 seconds when using 4 parallel build jobs.
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Am 25.03.2010 18:02, schrieb Patrick Georgi:
Hi,
most of the tree was already ccache aware, with one exception: romcc. This hurt, as on the non-CAR boards, this is a large non-parallelizable part of the total build time.
This patch changes romcc to:
- accept -c and -S (and ignores them as that's already the only mode it
knows)
- send -E output (preprocessor only) to stdout except if a filename is
given (by testing if it's set to the current default of auto.inc)
With these, ccache3.0pre0 (the version I tried) is capable of cache romcc output.
The Makefile changes in this patch make use of that, if "ccache" is found in $PATH (necessary as we use various paths for our romcc), and runs ccache $(obj)/romcc, using the "content" compiler version verification (which hashes the compiler executable) for romcc.
Thus when romcc is changed, ccache doesn't use cached files but requests new builds.
On my test system, abuild of a romcc board (thomson/ip1000) goes down from 9 to 3 seconds when using 4 parallel build jobs.
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
This time with patch
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Updated patch: ccache defaults to "no" for CC, HOSTCC and ROMCC, and can be configured by Kconfig. abuild is extended to draw in ccache as well.
Complete abuild run on our build server: without ccache: 17 minutes first time with ccache: 16 minutes second time with ccache (same revision): 9 minutes
Still Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
On 3/25/10 7:57 PM, Patrick Georgi wrote:
Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Updated patch: ccache defaults to "no" for CC, HOSTCC and ROMCC, and can be configured by Kconfig. abuild is extended to draw in ccache as well.
Complete abuild run on our build server: without ccache: 17 minutes first time with ccache: 16 minutes second time with ccache (same revision): 9 minutes
Still Signed-off-by: Patrick Georgi patrick.georgi@coresystems.de
Acked-by: Stefan Reinauer stepan@coresystems.de