From 1cc3e482389a6552cfa0c921659d2866cc2ed3f5 Mon Sep 17 00:00:00 2001
From: Francois-Rene Rideau <tunes@google.com>
Date: Wed, 16 Jan 2013 17:47:18 -0500
Subject: [PATCH] More ECL bundle fixes.

---
 bundle.lisp                | 17 ++++++++++-------
 generate-asdf.asd          |  2 +-
 test/make-hello-world.lisp |  2 ++
 test/script-support.lisp   |  4 ++--
 4 files changed, 15 insertions(+), 10 deletions(-)

diff --git a/bundle.lisp b/bundle.lisp
index 353fd6ab2..6ca940245 100644
--- a/bundle.lisp
+++ b/bundle.lisp
@@ -115,7 +115,7 @@
     ((or null string) bundle-type)
     ((eql :fasl) #-(or ecl mkcl) (compile-file-type) #+(or ecl mkcl) "fasb")
     #+ecl
-    ((member :binary :dll :lib :static-library :program :object)
+    ((member :binary :dll :lib :static-library :program :object :program)
      (compile-file-type :type bundle-type))
     ((eql :binary) "image")
     ((eql :dll) (cond ((os-unix-p) "so") ((os-windows-p) "dll")))
@@ -216,8 +216,8 @@
 (defun* bundlable-file-p (pathname)
   (let ((type (pathname-type pathname)))
     (declare (ignorable type))
-    (or #+ecl (or (equal type (compile-file-type :object))
-                  (equal type (compile-file-type :static-library)))
+    (or #+ecl (or (equal type (compile-file-type :type :object))
+                  (equal type (compile-file-type :type :static-library)))
         #+mkcl (equal type (compile-file-type :fasl-p nil))
         #+(or allegro clisp clozure cmu lispworks sbcl scl xcl) (equal type (compile-file-type)))))
 
@@ -482,10 +482,13 @@
 
 #+ecl
 (defmethod perform ((o bundle-op) (c system))
-  (let* ((object-files (remove "fas" (input-files o c)
-                               :key #'pathname-type :test #'string=))
-         (output (output-files o c)))
-    (apply #'c::builder (bundle-type o) (first output)
+  (let* ((object-files (input-files o c))
+         (output (output-files o c))
+         (bundle (first output))
+         (kind (bundle-type o))
+         (init-name (c::compute-init-name bundle :kind kind)))
+    (apply #'c::builder kind (first output)
+           :init-name init-name
            :lisp-files (append object-files (bundle-op-lisp-files o))
            (append (bundle-op-build-args o)
                    (when (typep o 'program-op)
diff --git a/generate-asdf.asd b/generate-asdf.asd
index 48d47fa22..c4b593aa8 100644
--- a/generate-asdf.asd
+++ b/generate-asdf.asd
@@ -8,7 +8,7 @@
   :class :concatenated-source-system
   ;; :include-dependencies t
   :translate-output-p nil
-  :concatenated-source-file "build/asdf.lisp"
+  :concatenated-source-file "build/asdf"
   :version (:read-file-form "version.lisp-expr")
   :serial t
   :depends-on (:asdf-driver)
diff --git a/test/make-hello-world.lisp b/test/make-hello-world.lisp
index f9e0c1d32..68956513b 100644
--- a/test/make-hello-world.lisp
+++ b/test/make-hello-world.lisp
@@ -1,6 +1,8 @@
 ;;; -*- Lisp -*-
 (load "script-support.lisp")
 (load-asdf)
+#+ecl (require :cmp)
 
 (with-test ()
+  (register-directory *asdf-directory*) ;; we need asdf-driver, and ECL can dump.
   (operate 'program-op :hello-world-example))
diff --git a/test/script-support.lisp b/test/script-support.lisp
index 9c807e99e..4e0df0a88 100644
--- a/test/script-support.lisp
+++ b/test/script-support.lisp
@@ -258,8 +258,8 @@ is bound, write a message and exit on an error.  If
                  ((or sb-c::simple-compiler-note sb-kernel:redefinition-warning)
                    #'muffle-warning)
                  #+(and ecl (not ecl-bytecmp))
-                 ((or c:compiler-note c::compiler-debug-note
-                      c:compiler-warning) ;; ECL emits more serious warnings than it should.
+                 ((or c::compiler-note c::compiler-debug-note
+                      c::compiler-warning) ;; ECL emits more serious warnings than it should.
                    #'muffle-warning)
                  #+mkcl
                  ((or compiler:compiler-note) #'muffle-warning)
-- 
GitLab