Hi Ingo,
I also had to disable COLA's garbage collector as I've been busy
integrating the Pthreads library into delMDSoC (a VM that sits on top of
COLA). The GC had to be disabled as it wasn't configured with
multithreading support. (It should be possible to configure the GC with
multithreading support though, but for some reason the GC doesn't feel
like compiling with this configuration...)
Anyhow, all I've done to disable the GC is change the following line in
object/id/libid.c (should be line 31):
#define USE_GC 1
becomes
#define USE_GC 0
Then recompile/reinstall the whole COLA installation in the usual manner:
make clean
cd object
make
sudo make install
cd ../function
make
The GC should now be disabled. Since the entire system bootstraps itself
from libid.c, I'm guessing that setting USE_GC to 0 in libid.c will
propagate itself throughout the entire compilation process... (Correct
me if I'm wrong though)
Hope this helps,
Tim
Ingo Jaeckel wrote:
hello,
i want to profile an application that uses jolt (like
/function/examples/libjolt/) with a tool like valgrind. unfortunately,
when profiling starts the app segfaults during gc initialization. this
is why i want to disable the garbage collection used by jolt.
i tried the whole day to disable the garbage collection that jolt
uses, without success. there are some defines you can set to
enable/disable garbage collection (USE_GC, NO_GC, EMBEDDED). this can
be done directly in the sourcecode or in the Makefiles. i think
editing the makefiles does not make sense because they are
generated/overriden during the build process (i also tried this
approach but had no success either). however, changes in
/object/boot/configure are not overriden during the build. and this
file seems to be used to generate the makefiles. so i decided to edit
this before calling make. i added the flags/defines -DEMBEDDED -DNO_GC
to the CFLAGS variable and started make. unfortunately this does not
work: it causes the generation of an idc1 file (used for building)
that segfaults when it's executed (segfault when calling GC_malloc).
perhaps you cannot disable the garbage collection of jolt completely?
however, i need compile the files in /function/examples/libjolt/ with
garbage collection disabled in order to be able to profile. for this i
need libid.o (and other .o) files compiled with -DNO_GC -DEMBEDDED,
because (if you look into the sourcecode of libid.c) with these
defines the whole GC_* api is not used.
i do not understand the complex build process of jolt. what else could
i try? why can't i build everything when i adjust the
/object/boot/configure file? is there another (better?) way do disable
the garbage collection? or is there another way to profile my
application that uses jolt?
regards,
ingo
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc