[Ecls-list] Threads on MacOSX (and others)
bernard tatin
bernard.tatin at tele2.fr
Thu Jan 27 07:23:07 UTC 2005
Juan Jose Garcia Ripoll wrote:
I think my internet provider is ill, I sent a message to the list this
morning, I never see it, your message and many others arrived very late
and I am afraid I lose some ...
This morning I said
After some more investigations, I conclude that we cannot load the file
cmp.fas because :
1 - the system call which load that file expect an other format,
2 - we have problems with pathnames,
3 - when loading that file, the system wants another file it cannot find
in the path,
4 - when producing object files or cmp.fas we don't give enough
informations to the compiler and linker.
I will test in further direction :
- trying an older compiler (gcc 3.1 instead of gcc 3.3),
- learn more about dynamic linking on MacOS X and how to load
dynamic/shared libraries (I am a beginner here),
- test the lisp functions about pathnames, I am afraid there is
problems, here.
Using gcc 3.1 does not work for the moment (it cannot compile gmp and
gc, and I cannot use my local versions of gmp or gc).
> 1) go to directory build/
> 2) launch the debugger like "gdb ./ecl". At this point it will complain
> that it cannot set certain breakpoints because it has not yet loaded the
> dll, but pay no attention to that.
> 3) type "break main" and "run".
> 4) from there, type any breakpoints you need, such as "break
> si_load_binary"
> 5) type "continue". This will take you to the command line, where you
> can simply write (load "cmp.fas")
>
> If things go right, you will be able to debug not only ECL itself, but
> the module cmp.fas and see where the errors are.
>
> Regards,
>
> Juanjo
I have done that with ddd (it is more readable), and I get the following
informations :
cl_object si_load_binary(...)
{
...
block->cblock.entry = ecl_library_symbol(...);
if (block->cblock.entry == NULL) {
--> output = ecl_library_error(...);
At that point, block->cblock.entry is NULL.
I restart the session and I do :
(gdb) break ecl_library_symbol
(gdb) continue
ecl_library_symbol(...) {
#ifdef HAV_DLFCN_H
--> return dlsym(...);
#endif
}
I am sure now that HAV_DLFCN_H is well defined during the compilation.
I will recompile with more debug info (something like -g3 -O0) because
Apple's gdb is not very clean and I will look at the block contents.
A bientôt,
Bernard.
>
>
> -------------------------------------------------------
> This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
> Tool for open source databases. Create drag-&-drop reports. Save time
> by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
> Download a FREE copy at http://www.intelliview.com/go/osdn_nl
> _______________________________________________
> Ecls-list mailing list
> Ecls-list at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/ecls-list
>
More information about the ecl-devel
mailing list