[Ecls-list] CVS HEAD: asdf:make-build examples (msvc2005)

Kamil Shakirov kamils80 at gmail.com
Thu May 8 15:58:01 UTC 2008


Hi Juan,
>>  When asdf:make-build is executed with :type :program it generates a dll
>>  library instead of an executable file. When running with :type :dll the
>>  ECL hangs for a few seconds and crashes (or exits?) without generating
>>  any object files. You may find logs for both cases below. Types: :fasl
>>  and :lib work fine.
>>     
>
> The :program case was broken. I made a typo and in asdf-ecl.lisp instead of
>
> (defclass program-op (monolithic-bundle-op)
>   ((type :initform :program)))
>
> you will find
>
> (defclass program-op (monolithic-bundle-op)
>   ((type :initform :dll)))
>   
This should work, but I got the strange linker error when evaluated the 
following expr:

(asdf:make-build :example :type :program :epilogue-code '(ext:quit 0))

<skipped>
;;; Note: Invoking external command:
;;; cl -Fe"D:/Tools/Lisp/ecl/doc/examples/asdf/example.exe" 
"C:/DOCUME~1/kamil/LOCALS~1/Temp/ECL123.obj" 
"D:/Tools/Lisp/ecl/doc/examples/asdf/example.lib"  -MD /link 
/nodefaultlib:libcmt /nodefaultlib:libcmtd /nodefaultlib:libc 
/nodefaultlib:libd ecl.lib user32.lib ws2_32.lib shell32.lib
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 
for 80x86
Copyright (C) Microsoft Corporation.  All rights reserved.

Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:D:/Tools/Lisp/ecl/doc/examples/asdf/example.exe
/nodefaultlib:libcmt
/nodefaultlib:libcmtd
/nodefaultlib:libc
/nodefaultlib:libd
ecl.lib
user32.lib
ws2_32.lib
shell32.lib
C:/DOCUME~1/kamil/LOCALS~1/Temp/ECL123.obj
D:/Tools/Lisp/ecl/doc/examples/asdf/example.lib
LINK : fatal error LNK1149: output filename matches input filename 
'D:\Tools\Lisp\ecl\doc\examples\asdf\example.lib'
NIL
> This has been fixed now. Regarding the DLL issue, yes, there was a
> circular dependency which was not solved. I have fixed that as well.
>   
The last commit:

-          (or (eq op-type 'compile-op) (typep component 'system)))
+          (or (eq op-type 'compile-op) (typep component 'system))
+          (or include-self (not (eq system component))))

breaks all asdf:make-build: no object files are generated, linker fails.

--wbr.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/ecl-devel/attachments/20080508/7e3852f2/attachment.html>


More information about the ecl-devel mailing list