[Gc] tcc & boehm_gc
Mon, 10 Feb 2003 03:00:24 +1100
I've been testing tcc, the Tiny C Compiler
<http://fabrice.bellard.free.fr/tcc/>, for use with the Mercury compiler
<http://www.cs.mu.oz.au/mercury/>, which compiles to C. Unfortunately,
however, tcc is not yet suitable for use with Mercury, because the Boehm
conservative collector <http://www.hpl.hp.com/personal/Hans_Boehm/gc/>,
which we use for Mercury, does not work when compiled with tcc.
There are several problems. One is that tcc does not define __ELF__.
This of course can be worked around by compiling with `-D__ELF__'.
Another is related to the collector's use of `_DYNAMIC'. With
gcc/binutils, `_DYNAMIC' is a linker-defined symbol that does not seem
to be defined when linking with tcc. But even if I use gcc to do the
final link, so that `_DYNAMIC' gets defined, the `gctest' program fails,
with the error message "List reversal produced incorrect list -
collector is broken".
I don't know whether the problem is a non-portability in the Boehm
collector or a bug in tcc. But either way, this one is a show-stopper
for using tcc for Mercury.
Fergus Henderson <firstname.lastname@example.org> | "I have always known that the pursuit
The University of Melbourne | of excellence is a lethal habit"
WWW: <http://www.cs.mu.oz.au/~fjh> | -- the last words of T. S. Garp.