diff options
author | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-12-17 10:54:24 -0600 |
---|---|---|
committer | Norbert Thiebaud <nthiebaud@gmail.com> | 2011-12-17 10:54:45 -0600 |
commit | e3e94f141e15f5501ed81402a70beb10b85ccd6f (patch) | |
tree | f6bc5d2ced577a2141935b2cbfff47daa2be950c | |
parent | 1b99d8800e399f45404ab62827163a873d2a1aec (diff) |
use a c-version of concat-deps.pl
This touch configure.in with a trivial space removal to force a
./bootstrap on the tinderboxes
This make ./bootstrap build a 'build-side' executable concat-deps
and modify LinkTarget.mk to use it instead of concat-deps.pl
The impact is a conservative x10 times improvement in both elapsed and
cpu time in overhead due to DEP generations.
time make -sr build in tail_build after removing
workdir/$INPATH/Dep/LinkTarget/Library/*
(all on Intel X3360, 2.83GHz, 4-core)
before:
elapsed: 116.5 cpu: 115.9
after
elapsed: 24.3 cpu: 23.9
base (no dep processing, i.e no rm of Dep/...)
elapsed: 17.5 cpu: 17.4
overhead ratio:
elapsed: 14.5x cpu: 15x
same with -j6
before:
elapsed: 47 cpu: 116
after:
elapsed: 20.8 cpu: 24
base:
elapsed: 17.5 cpu: 17.5
overhead ratio:
elapsed: 9x cpu: 15x
Note: for now the executable is generated directly in the source tree
(in solevn/bin ). That is not ideal. It and other similar polution
should be moved, to workdir most likely..
For now we just hide the mess under the .gitignore carpet
-rw-r--r-- | .gitignore | 3 | ||||
-rwxr-xr-x | bootstrap | 4 | ||||
-rw-r--r-- | configure.in | 2 | ||||
-rw-r--r-- | solenv/bin/concat-deps.c | 5 | ||||
-rw-r--r-- | solenv/gbuild/LinkTarget.mk | 2 |
5 files changed, 11 insertions, 5 deletions
diff --git a/.gitignore b/.gitignore index 3929c678988f..af084f9e6382 100644 --- a/.gitignore +++ b/.gitignore @@ -108,6 +108,9 @@ TAGS /solenv/gdb/libreoffice/*.py[co] /solenv/gdb/libreoffice/util/*.py[co] +# botstrap generated tool +/solenv/bin/concat-deps + # test output files test/user-template/user/psprint/pspfontcache diff --git a/bootstrap b/bootstrap index 1bf5068f02b7..da1192c48882 100755 --- a/bootstrap +++ b/bootstrap @@ -74,6 +74,10 @@ if test "$BUILD_DMAKE" != "NO"; then echo "dmake copied to $SOLARENV/$OUTPATH_FOR_BUILD/bin/dmake$EXEEXT" fi +# build concat-deps +echo "building concat-deps" +$CC_FOR_BUILD -O2 "$SOLARENV/bin/concat-deps.c" -o "$SOLARENV/bin/concat-deps" || exit + #make sure build.pl is executable chmod +x "$SRC_ROOT/solenv/bin/build.pl" diff --git a/configure.in b/configure.in index 433c5239364c..1772116503de 100644 --- a/configure.in +++ b/configure.in @@ -1899,7 +1899,7 @@ fi dnl =================================================================== dnl Extra check for Windows. Cygwin builds need gcc to build dmake -dnl although MSVC is used to build other build-time tools and +dnl although MSVC is used to build other build-time tools and dnl LibreOffice itself. dnl =================================================================== if test "$build_os" = "cygwin" ; then diff --git a/solenv/bin/concat-deps.c b/solenv/bin/concat-deps.c index f3ecdef5d62c..6cf919235ebf 100644 --- a/solenv/bin/concat-deps.c +++ b/solenv/bin/concat-deps.c @@ -3,8 +3,8 @@ * License: GPLv3 */ -//* define to activate stats reporting on hash usage -#define HASH_STAT +/* define to activate stats reporting on hash usage*/ +/* #define HASH_STAT */ /* =============================================== * Set-up: defines to identify the system and system related properties @@ -566,7 +566,6 @@ int cost = 0; { hash->collisions += 1; hash->cost += cost; -// fprintf(stderr, "key colision %s and %s\n", key, hash_elem->next->key); } #endif hash->array[hashed] = hash_elem; diff --git a/solenv/gbuild/LinkTarget.mk b/solenv/gbuild/LinkTarget.mk index 4a7833c6af35..eec7612b84bb 100644 --- a/solenv/gbuild/LinkTarget.mk +++ b/solenv/gbuild/LinkTarget.mk @@ -338,7 +338,7 @@ $(call gb_Helper_abbreviate_dirs,\ $(foreach object,$(8),$(call gb_GenCObject_get_dep_target,$(object))) \ $(foreach object,$(9),$(call gb_GenCxxObject_get_dep_target,$(object))) \ ) && \ - $(SOLARENV)/bin/concat-deps.pl $${RESPONSEFILE} > $(1)) && \ + $(SOLARENV)/bin/concat-deps $${RESPONSEFILE} > $(1)) && \ rm -f $${RESPONSEFILE} endef |