I suspect it's related to some bad shadowing of initialization function in ECL, whereby the version from the old object file is called, instead of the version from the new one.
Did you change something in MKCL regarding initialization functions, e.g. using attributes to mark some functions as being in an initialization section that will cause them to be called at by the linker, when ECL for portability to old systems still makes its own function and calls it?
Quite a few things have been changed at those low levels since the fork but nothing comes clearly enough to my mind to be an obvious explanation. I will need to do real archeology to figure this one out...
Well, I notice that with ECL, I have to pass a :init-function argument, so ECL will identify the init function from the name of the target file after renaming from its temporary name with -ASDFTMP suffix. In MKCL, you did away with this argument, which suggests a different way to identify the init function...
—♯ƒ • François-René ÐVB Rideau •Reflection&Cybernethics• http://fare.tunes.org Only presidents, editors, and people with tapeworms have the right to use the editorial "we." — Mark Twain