[Ecls-list] Loading a FAS file segfault...
Goffioul Michael
goffioul at imec.be
Mon May 30 09:03:37 UTC 2005
> It seems like I'm suffering from the same problem as under
> MacOSX. I updated my
> CVS and tried to compile using the new set of Makefile's for
> Win32. Everything
> compiles and installs fine. However...
>
> > (require 'asdf)
> ;;; Loading #P"D:/Software/ECL/ASDF.fas"
> Segmentation violation.
> Broken at LAMBDA.
> >> :q
> Top level.
> > (require 'cmp)
> ;;; Loading #P"D:/Software/ECL/CMP.fas"
> Segmentation violation.
> Broken at LAMBDA.
> >> :b
> Backtrace: LAMBDA > require > eval
>
> I'll investigate a little bit.
I had a look and IMO this is due to the change on the loading of a dynamic
library. Under Win32, all symbols are not exported, hence not available to
external program. However, the new loading code makes the assumption that
it can find init_xxxx symbols in the current block, which is false. Example
from cmp.c:
current = read_VV(OBJNULL, ((ecl_init_function_t) ecl_library_symbol(Cblock, "init_CMP_CMPDEFS"))); current->cblock.next = next; next = current;
ecl_library_symbol returns NULL and read_VV crashes.
Michael.
More information about the ecl-devel
mailing list