compiler: accept foreign object files

Sometimes we want to build with objects from CFFI (like
wrappers). These doesn't have entry point and initialization
function. If we'll encounter such an object just attach it without
adding it to the initialization queue. Fixes #174.

Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
This commit is contained in:
Daniel Kochmański 2015-09-23 09:03:51 +02:00
parent bff9aced44
commit 970ccb7c36
2 changed files with 3 additions and 2 deletions

View file

@ -471,7 +471,8 @@ output = si_safe_eval(2, ecl_read_from_cstring(lisp_code), ECL_NIL);
(flags (guess-ld-flags path)))
;; We should give a warning that we cannot link this module in
(when flags (push flags ld-flags))
(push (list init-fn path) submodules))))
(when init-fn
(push (list init-fn path) submodules)))))
(setf submodules-data (apply #'concatenate '(array base-char (*))
submodules-data))
(setq c-file (open c-name :direction :output :external-format :default))

View file

@ -107,7 +107,7 @@ the function name it precedes."
((:object :c :static-library :lib :shared-library :dll)
(or (and (probe-file pathname)
(find-init-name pathname :tag (kind->tag kind)))
(error "Cannot find out entry point for binary file ~A" pathname)))
(cmpnote "Cannot find out entry point for binary file ~A" pathname)))
(otherwise (compute-init-name pathname kind))))
(defun remove-prefix (prefix name)