[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