~ chicken-core (chicken-5) de96cf11ddfa3f35cca4b631ef7e96258ac862ba
commit de96cf11ddfa3f35cca4b631ef7e96258ac862ba Author: felix <felix@call-with-current-continuation.org> AuthorDate: Fri Jan 13 13:54:26 2017 +0100 Commit: felix <felix@call-with-current-continuation.org> CommitDate: Fri Jan 13 13:54:26 2017 +0100 csc: transient link files for programs are deleted, fixed collect-linked-objects (thanks to Kooda) diff --git a/csc.scm b/csc.scm index 512ea43b..76fbaa8d 100644 --- a/csc.scm +++ b/csc.scm @@ -188,6 +188,7 @@ (define generated-rc-files '()) (define object-files '()) (define generated-object-files '()) +(define transient-link-files '()) (define linked-extensions '()) (define cpp-mode #f) (define objc-mode #f) @@ -856,6 +857,10 @@ EOF (else '())) translation-optimization-options)) ) ) " ") ) + (when (and static compile-only) + (set! transient-link-files + (cons (pathname-replace-extension f "link") + transient-link-files))) (set! c-files (append (list fc) c-files)) (set! generated-c-files (append (list fc) generated-c-files)))) scheme-files)) @@ -943,18 +948,21 @@ EOF target) ) (when gui (rez target))) - (unless keep-files (for-each $delete-file generated-object-files)) ) ) + (unless keep-files + (for-each $delete-file + (append generated-object-files + transient-link-files))))) (define (collect-linked-objects object-files) (let loop ((os object-files) (os2 object-files)) (if (null? os) (delete-duplicates (reverse os2) string=?) (let* ((o (car os)) - (lfile (pathname-replace-extension o "link"))) - (loop (cdr os) - (if (file-exists? lfile) - (append (with-input-from-file lfile read) os2) - os2)))))) + (lfile (pathname-replace-extension o "link")) + (newos (if (file-exists? lfile) + (with-input-from-file lfile read) + '()))) + (loop (append newos (cdr os)) (append newos os2)))))) (define (lib-path) (prefix ""Trap