summaryrefslogtreecommitdiff
path: root/open_issues/boehm_gc.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'open_issues/boehm_gc.mdwn')
-rw-r--r--open_issues/boehm_gc.mdwn114
1 files changed, 102 insertions, 12 deletions
diff --git a/open_issues/boehm_gc.mdwn b/open_issues/boehm_gc.mdwn
index 31359da3..6ab39b2e 100644
--- a/open_issues/boehm_gc.mdwn
+++ b/open_issues/boehm_gc.mdwn
@@ -15,18 +15,26 @@ This one does need Hurd-specific configuration.
It is, for example, used by [[/GCC]] (which has its own fork), so any changes
committed upstream should very like also be made there.
+[[!toc levels=2]]
+
# [[General information|/boehm_gc]]
-# [[Sources|source_repositories/boehm_gc]]
+# Configuration
+<!--
-# Configuration
+git checkout reviewed
+git log --reverse --pretty=fuller --stat=$COLUMNS,$COLUMNS -w -p -C --cc ..upstream/master
+-i
+/^commit |^---$|hurd|linux|glibc
-[[tschwinge]] reviewed its GNU/Hurd port's configuration on 2010-12-08, based
-on CVS HEAD sources from 2010-12-02, converted to [[Git, correspondingly
-1c2455988a8f59a5f83b986b9156f03be395b3b6|source_repositories/boehm_gc]].
+-->
+
+Last reviewed up to the 5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08)
+sources, and for `libatomic_ops` to the
+6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15) sources.
* `configure.ac`
@@ -253,19 +261,98 @@ on CVS HEAD sources from 2010-12-02, converted to [[Git, correspondingly
Nothing.
+ * b8b65e8a5c2c4896728cd00d008168a6293f55b1 configure.ac probably not all
+ correct.
+
+ * `mmap`, b64dd3bc1e5a23e677c96b478d55648a0730ab75
+
+ * `parallel mark`, 07c2b8e455c9e70d1f173475bbf1196320812154, pass
+ `--disable-parallel-mark` or enable for us, too?
+
+ * `HANDLE_FORK`, e9b11b6655c45ad3ab3326707aa31567a767134b,
+ 806d656802a1e3c2b55cd9e4530c6420340886c9,
+ 1e882b98c2cf9479a9cd08a67439dab7f9622924
+
+ * Check `include/private/thread_local_alloc.h` re
+ `USE_COMPILER_TLS`/`USE_PTHREAD_SPECIFIC`.
+
+
+# Build
+
+Here's a log of a binutils build run; this is from the
+5f492b98dd131bdd6c67eb56c31024420c1e7dab (2012-06-08) sources, and for
+`libatomic_ops` for the 6a0afde033f105c6320f1409162e3765a1395bfd (2012-05-15)
+sources, run on kepler.SCHWINGE and coulomb.SCHWINGE.
+
+ $ export LC_ALL=C
+ $ (cd ../master/ && ln -sfn ../libatomic_ops/master libatomic_ops)
+ $ (cd ../master/ && autoreconf -vfi)
+ $ ../master/configure --prefix="$PWD".install SHELL=/bin/bash CC=gcc-4.6 CXX=g++-4.6 --enable-cplusplus --enable-gc-debug --enable-gc-assertions --enable-assertions 2>&1 | tee log_build
+ [...]
+ $ make 2>&1 | tee log_build_
+ [...]
+
+Different hosts may default to different shells and compiler versions; thus
+harmonized. Using bash instead of dash as otherwise libtool explodes.
+
+This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and
+X min on coulomb.SCHWINGE.
+
+<!--
+
+ $ (make && touch .go-install) 2>&1 | tee log_build_ && test -f .go-install && (make install && touch .go-check) 2>&1 | tee log_install && test -f .go-check && { make -k check 2>&1 | tee log_check; (cd libatomic_ops/ && make -k check) 2>&1 | tee log_check_; }
+
+-->
+
+## Analysis
+
+ $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_build
+ $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_build* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_build
+ $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_build.sed < toolchain/logs/boehm-gc/linux/log_build) <(sed -f toolchain/logs/boehm-gc/hurd/log_build.sed < toolchain/logs/boehm-gc/hurd/log_build) > toolchain/logs/boehm-gc/log_build.diff
+
+ * only GNU/Linux: `configure: WARNING: "Explicit GC_INIT() calls may be
+ required."`
+
+ * only GNU/Linux: `configure: WARNING: "Client must not use
+ -fomit-frame-pointer."`
+
+
+# Install
+
+ $ make install 2>&1 | tee log_install
+ [...]
+
+This takes up around X MiB, and needs roughly X min on kepler.SCHWINGE and X
+min on coulomb.SCHWINGE.
+
+
+## Analysis
+
+ $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_install
+ $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_install | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_install
+ $ diff -wu toolchain/logs/boehm-gc/linux/log_install toolchain/logs/boehm-gc/hurd/log_install > toolchain/logs/boehm-gc/log_install.diff
+
# Testsuite
-There are different configurations possible, but in general, the testsuite
-restults of GNU/Linux and GNU/Hurd look very similar.
+ $ make -k check
+ [...]
+ $ (cd libatomic_ops/ && make -k check)
+ [...]
-It has last been run and compared on 2010-11-10, based on CVS HEAD sources from
-2010-11-04, converted to [[Git, correspondingly
-9abb37b2e581b415bb1f482085891a289c2c0be1|source_repositories/boehm_gc]].
+This needs roughly X min on kepler.SCHWINGE and X min on coulomb.SCHWINGE.
-## `--enable-cplusplus --enable-gc-debug`
- * GNU/Hurd is missing *Call chain at allocation: [...] output*.
+## Analysis
+
+ $ ssh kepler.SCHWINGE 'cd tmp/source/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/data\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/linux/log_check
+ $ ssh coulomb.SCHWINGE 'cd tmp/boehm-gc/ && cat master.build/log_check* | sed -e "s%\(/media/erich\)\?${PWD}%[...]%g"' > toolchain/logs/boehm-gc/hurd/log_check
+ $ diff -wu <(sed -f toolchain/logs/boehm-gc/linux/log_check.sed < toolchain/logs/boehm-gc/linux/log_check) <(sed -f toolchain/logs/boehm-gc/hurd/log_check.sed < toolchain/logs/boehm-gc/hurd/log_check) > toolchain/logs/boehm-gc/log_check.diff
+
+There are different configurations possible, but in general, the testsuite
+restults of GNU/Linux and GNU/Hurd look very similar.
+
+ * GNU/Hurd is missing `Call chain at allocation: [...]` output.
`os_dep.c`:`GC_print_callers`
@@ -277,6 +364,9 @@ It has last been run and compared on 2010-11-10, based on CVS HEAD sources from
* What are other applications to test Boehm GC? Also especially in
combination with [[/libpthread]] and dynamic loading of shared libraries?
+ * There are patches (apparently not committed) that GCC itself can use
+ it, too: <http://gcc.gnu.org/wiki/Garbage_collection_tuning>.
+
* There's been some talking about it on GNU guile mailing lists, and two
Git branches (2010-12-15: last change 2009-09).