hi tim,
thank you very much for your quick response. i tried your steps before
without success and did it again. but it still does not work. when
calling make in /function i get a "undefined symbol GC_init" error when
i set USE_GC to 0 in /object/id/libid.c. this is what happens:
>>>>>>>>>>>>>>>>>>>>>>>>>>> begin
$ cd ../function/
$ make
/bin/sh -ec 'for dir in objects jolt-burg jolt2; do ( cd $dir; make ); done'
make[1]: Betrete Verzeichnis '/home/ingo/svn/idst3/function/objects'
./idc -O -k -g -c _object.st -o _object.o
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
undefined symbol: GC_init
import: st80.so: No such file or directory
make[1]: *** [_object.o] Fehler 1
make[1]: Verlasse Verzeichnis '/home/ingo/svn/idst3/function/objects'
make[1]: Betrete Verzeichnis '/home/ingo/svn/idst3/function/jolt-burg'
/bin/sh -ec 'cd ../objects; make'
make[2]: Betrete Verzeichnis '/home/ingo/svn/idst3/function/objects'
./idc -O -k -g -c _object.st -o _object.o
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
undefined symbol: GC_init
import: st80.so: No such file or directory
make[2]: *** [_object.o] Fehler 1
make[2]: Verlasse Verzeichnis '/home/ingo/svn/idst3/function/objects'
make[1]: *** [../objects/objects.a] Fehler 2
make[1]: Verlasse Verzeichnis '/home/ingo/svn/idst3/function/jolt-burg'
make[1]: Betrete Verzeichnis '/home/ingo/svn/idst3/function/jolt2'
/bin/sh -ec 'cd ../objects; make'
make[2]: Betrete Verzeichnis '/home/ingo/svn/idst3/function/objects'
./idc -O -k -g -c _object.st -o _object.o
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
/home/ingo/svn/idst3/function/objects/../../object/stage2/st80.so:
undefined symbol: GC_init
import: st80.so: No such file or directory
make[2]: *** [_object.o] Fehler 1
make[2]: Verlasse Verzeichnis '/home/ingo/svn/idst3/function/objects'
make[1]: *** [../objects/objects.a] Fehler 2
make[1]: Verlasse Verzeichnis '/home/ingo/svn/idst3/function/jolt2'
make: *** [all] Fehler 2
>>>>>>>>>>>>>>>>>>>>>>>>>>> end
in which revision of idst/cola/jolt could you disable the gc with these
steps? i am using the head revision from the svn.
regards,
ingo
Tim Molderez schrieb:
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
_______________________________________________
fonc mailing list
[email protected]
http://vpri.org/mailman/listinfo/fonc