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
This commit is contained in:
Norbert Thiebaud
2011-12-17 10:54:24 -06:00
parent 1b99d8800e
commit e3e94f141e
5 changed files with 11 additions and 5 deletions

3
.gitignore vendored
View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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;

View File

@@ -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