summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNorbert Thiebaud <nthiebaud@gmail.com>2011-12-17 10:54:24 -0600
committerNorbert Thiebaud <nthiebaud@gmail.com>2011-12-17 10:54:45 -0600
commite3e94f141e15f5501ed81402a70beb10b85ccd6f (patch)
treef6bc5d2ced577a2141935b2cbfff47daa2be950c
parent1b99d8800e399f45404ab62827163a873d2a1aec (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--.gitignore3
-rwxr-xr-xbootstrap4
-rw-r--r--configure.in2
-rw-r--r--solenv/bin/concat-deps.c5
-rw-r--r--solenv/gbuild/LinkTarget.mk2
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