[Ecls-list] ASDF load-op problem
Juan Jose Garcia-Ripoll
juanjose.garciaripoll at googlemail.com
Sat Sep 13 19:30:50 UTC 2008
On Wed, Sep 10, 2008 at 8:44 PM,
<kmkaplan+ecl at kim.kim-minh.com<kmkaplan%2Becl at kim.kim-minh.com>
> wrote:
> Some more investigation indicate that this is not a ASDF problem. See
> below.[...]
> Since you can't reproduce it I did some deeper investigations and the
> breakage occured at asdf-ecl.lisp 1.5. The thing I noticed is that it
> used (compile-file ... :system-p t) and this looks like the culprit.
Oh man, this one was hard to track down. The culprit is not compile-file,
but the linker system. The person who wrote it, or the guy who wrote the
specification if there was any, must have been hard on crack at the time.
What goes on is the following. I have a library with two functions, foo()
and foo1(), so that foo() calls foo1(). And then there is another library,
with a function called faa() which calls another function called foo1(). The
names are the same, but the libraries have been linked separately. Well, it
turns out that if I load library 1 first and then library 2 (using dlopen),
then the second library will end up calling the first foo1() function.
As I said, someone must have gone crazy allowing the namespaces of other
libraries to interfere with the one I am loading at the moment.
I have a partial solution which I am testing right now which uses hashed
names for _all_ object files. That seems to solve the problem on a
Linux/x86_64 (Ubuntu) on which I am trying things now. I will post an email
when things have been committed.
Again, thanks a lot for the test case. It will get added to the regression
tests if you do not mind.
Juanjo
--
Instituto de Física Fundamental
CSIC, Serrano, 113, Madrid 28040 (Spain)
http://juanjose.garciaripoll.googlepages.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080913/0fce48a1/attachment.html>
More information about the ecl-devel
mailing list