[elephant-devel] Testing

Frank Schorr franks-muc at web.de
Mon Feb 19 23:20:16 UTC 2007


I haven't really understood what happens when a dll is built with cygwin.
dlltool generates the .def file and the exports.o used in the 
next gcc step. See
http://www.gnu.org/software/binutils/manual/html_chapter/binutils_13.html
http://www.cygwin.com/cygwin-ug-net/dll.html


I was able to get a libmemutil.dll without errors by:

gcc -mno-cygwin -mwindows -std=c99 -c libmemutil.c
dlltool -z libmeutil.def --export-all-symbols -e exports.o -l libmemutil.lib libmemutil.o
gcc -shared -mno-cygwin -mwindows libmemutil.o exports.o -o libmemutil.dll


A while ago, when I made the dlls for elephant 0.6.0, my first try was MSVC, guided by
http://bc.tech.coop/blog/041007.html
However, the available free MSVC appeared to have no preset dll-project any more.
I had to try compiler switches ... and found cygwin easier.
This should mean that not every lisp-on-windows-user has 
MSVC installed (and is able to use it. cygwin is easy to install).

Best regards,
Frank

> -----Ursprüngliche Nachricht-----
> Von: Elephant bugs and development <elephant-devel at common-lisp.net>
> Gesendet: 19.02.07 21:26:09
> An: Elephant bugs and development <elephant-devel at common-lisp.net>
> Betreff: Re: [elephant-devel] Testing


> Thanks for trying that.  Do you know if there's a way with the cygwin  
> gcc compiler to use a .def file instead of generating a .o with the  
> exports?  I'm pretty sure MSVC has one.  We'll also need a set of  
> build commands for MSVC...
> 
> I suspect we may have broken the build of libmemutil when we included  
> sys/types to get access to u_int64 and u_int32, etc.   Without a  
> local system to play with I'm not sure I can debug this.  I guess the  
> thing to do is look at db.h and sys/types to try to figure out what  
> was intended and whether they're compatible.
> 
> I'll see about getting access to a Windows box to try to reproduce  
> and test these things on my side.
> 
> Thanks,
> Ian
> 
> On Feb 19, 2007, at 2:09 PM, Frank Schorr wrote:
> 
> >
> > gcc -shared -mno-cygwin -mwindows -std=c99 --export-all-symbols  
> > libberkeley-db.def libberkeley-db.c -o libberkeley-db.dll
> >
> > produces
> >
> > cc1: error: unrecognized command line option "-fexport-all-symbols"
> >
> > Further:
> >
> > gcc -mno-cygwin -mwindows -c -Wall -std=c99 -L/c/Programme/Oracle/ 
> > Berkeley\ DB\ 4.5.20/lib/ -I/c/Programme/Oracle/Berkeley\ DB\  
> > 4.5.20/include/ libberkeley-db.c
> >
> > produces
> >
> > In file included from libberkeley-db.c:165:
> > /c/Programme/Oracle/Berkeley DB 4.5.20/include/db.h:99: error:  
> > conflicting types
> >  for 'ssize_t'
> > /usr/lib/gcc/i686-pc-mingw32/3.4.4/../../../../i686-pc-mingw32/ 
> > include/sys/types
> > .h:104: error: previous declaration of 'ssize_t' was here
> > libberkeley-db.c: In function `case_cmp':
> > libberkeley-db.c:1233: warning: implicit declaration of function  
> > `_strnicmp'
> >
> > Hope this can help
> > Please let me know what to do next.
> > Frank
> >
__________________________________________________________________________
Erweitern Sie FreeMail zu einem noch leistungsstärkeren E-Mail-Postfach!		
Mehr Infos unter http://freemail.web.de/home/landingpad/?mc=021131




More information about the elephant-devel mailing list