I have something like a solution of this problem, all changes of the cffi/grovel/grovel.lisp file I put<span id="result_box" class="medium_text"><span style="" title=""> in my repository at</span></span> <a href="http://gitorious.org/~treep/cffi/treeps-cffi">http://gitorious.org/~treep/cffi/treeps-cffi</a><br>
<br><div class="gmail_quote">2010/7/1 Heka Treep <span dir="ltr"><<a href="mailto:zena.treep@gmail.com">zena.treep@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
Hi, some problem I have with this:<br>
<br>
(defsystem<br>
  ...<br>
  (cffi-grovel:wrapper-file "...")<br>
  ...<br>
<br>
generates a call:<br>
<br>
gcc -m32 -fPIC -o *.dll *.c -shared<br>
<br>
but cygwin want at least flag `-mno-cygwin'. It would be possible to<br>
define this flag in some variable, but the flag is added to the end of<br>
the list of arguments - and it just not work.<br>
<br>
I try this format:<br>
<br>
gcc cpu-flags cc-flags platform-library-flags* -o output-file input-file<br>
<br>
by reimplement `cc-compile-and-link' function:<br>
<br>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
(in-package :cffi-grovel)<br>
<br>
(defun cc-compile-and-link (input-file output-file &key library)<br>
  (apply #'invoke (or (getenv "CC") *cc*)<br>
         *cpu-word-size-flags*<br>
         `(,@*cc-flags*<br>
           ,@(when library *platform-library-flags*)<br>
           "-o"<br>
           ,(native-namestring output-file)<br>
           ,(native-namestring input-file))))<br>
<br>
(setf *cc* "C:/dev/cygwin/bin/gcc-3.exe") ;; its my<br>
(setf *cc-flags* '()) ;; remove -fPIC<br>
(setf *cpu-word-size-flags* "") ;; and this too<br>
(setf *platform-library-flags* '("-mno-cygwin" "-shared")) ;; added<br>
-mno-cygwin in begin<br>
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<br>
<br>
It is normal, or I don't understand something?<br>
</blockquote></div><br>