ecl: test-bundle fails when run twice

Bug #1626994 reported by pipping
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
ASDF
Fix Released
Medium
Faré

Bug Description

On the second run, I get

Create a DLL via monolithic-dll-op
Use and test that DLL
TEST ABORTED: LOAD-FOREIGN-MODULE: Could not load foreign module #P"/home/pipping/tmp/asdf/build/fasls/ecl-16.1.2-ca7f5107-linux-x64/asdf/test/test-asdf/monodll--all-systems.so" (Error: "/home/pipping/tmp/asdf/build/fasls/ecl-16.1.2-ca7f5107-linux-x64/asdf/test/test-asdf/monodll--all-systems.so: undefined symbol: always_7")

I first mentioned this here:

  https://gitlab.common-lisp.net/asdf/asdf/merge_requests/26#note_1215

after Daniel Kochmański mentioned it to me.

Revision history for this message
Faré (fahree) wrote :

The fact that it works on mkcl (does it not?) Makes me suspect a bug in ECL.

If you (or someone) is interested in debugging, I suggest starting by taking snapshots of the files at stake after the first pass, and comparing to the files after the second pass: which are wrong? Also, tracing ecl's run-program or hwhichever way it invokes compilers and linkers. And if there's nothing wrong, instrumenting ECL to not delete the C and header files it creates, to see if they are correct the second time around.

Revision history for this message
Faré (fahree) wrote :

It was a subtle bug in ASDF indeed, due to an interaction between *load-system-operation* being load-bundle-op rather than load-op on ECL, and the use of required-components. The very subtle solution is now documented in suitable comments.

Fix included in CR !43:
https://gitlab.common-lisp.net/asdf/asdf/merge_requests/43

Changed in asdf:
assignee: nobody → Faré (fahree)
importance: Undecided → Medium
milestone: none → asdf3.2
status: New → In Progress
Faré (fahree)
Changed in asdf:
status: In Progress → Fix Committed
pipping (pipping)
Changed in asdf:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.