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

Reply via email to