Commit 7eb17a3a authored by Francois-Rene Rideau's avatar Francois-Rene Rideau
Browse files

bundle: add workaround to find mkcl's cmp.a

MKCL 1.1.10 (from git) installs bogus .asd files in its contrib/
directory – for instance cmp.asd is present there (and level-up),
and locate-system finds the first, bogus, definition, that
points to a cmp.a library in the wrong directory.

Bug identified by Daniel Kochmański.
parent 12cfcdd7
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -548,10 +548,16 @@ for all the linkable object files associated with the system or its dependencies
  (defmethod component-depends-on :around ((o image-op) (c system))
    (destructuring-bind ((lib-op . deps)) (call-next-method)
      (labels ((has-it-p (x) (find x deps :test 'equal :key 'coerce-name))
               (linkable-system (x) (unless (has-it-p x)
                  (if (system-source-directory x)
                    `(,(find-system x))
                    `(,(make-library-system x))))))
               (linkable-system (x)
		 (unless (has-it-p x)
		   (list
		    (if (and (system-source-directory x)
			     #+mkcl ;; avoid bug in mkcl 1.1.10
			     (let ((s (find-system x)))
			       (or (not (typep s 'prebuilt-system))
				   (file-exists-p (prebuilt-system-static-library s)))))
			(find-system x)
			(make-library-system x))))))
        `((,lib-op
           ,@(unless (no-uiop c)
               (append (linkable-system "cmp")