Ah yes, there's a problem with db.h and mingw that we need to document in the INSTALL instructions. I'm not sure if there is a tasteful way around this, but sys/types.h defines ssize_t differently than db.h, so they appear to be incompatible.

Frank Schorr had this solution, but it isn't ideal:

At first, there was this error:

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


I commented these lines out in C:\cygwin\usr\include\mingw\sys\types.h:

/*
 *#ifndef _SSIZE_T_
 *#define _SSIZE_T_
 *typedef long _ssize_t;
 *
 *#ifndef       _NO_OLDNAMES
 *typedef _ssize_t ssize_t;
 *#endif
 *#endif * Not _SSIZE_T_ *
*/

apparently this this did not cooperate with

#ifdef _WIN64
typedef int64_t ssize_t;
#else
typedef int32_t ssize_t;
#endif

in db.h.

After that he had a working build. Any ideas for a better solution on your end? I have to admit to an extreme dislike of cygwin after a nasty summer in it's company some years back.

Ian

On Mar 23, 2007, at 8:47 AM, Edi Weitz wrote:

On Fri, 23 Mar 2007 07:30:38 -0400, Ian Eslick <[EMAIL PROTECTED]> wrote:

I believe you can download a pre-built BDB Windows DLL distribution
from Oracle.

Yeah, I had that installed, but I wasn't aware that I could expect an
automatic build because I originally saw lots of errors flying by.  I
tried to track that down now and the problem was that you're using
"/C" for the C: drive in Cygwin.  I had to create this mount point
manually, AFAIK this is not the default in Cygwin.  I'd propose to use
"/cygdrive/c" instead to be on the safe side - this mount point should
always exist.

The rest of the libraries should be built automatically using cygwin
during the ASDF loads of elephant and ele-bdb if you select the
:cygwin compiler option and provide paths to the BDB distribution.
We've verified both Allegro 8 and Lispworks 5 using this
configuration and the downloaded BDB.

Doesn't work for me.  The compilation attempt breaks like this:

[EMAIL PROTECTED]:~/lisp/elephant/src/db-bdb$ gcc -L'/C/Program Files/ Oracle/Berkeley DB 4.5.20/bin/' -I'/C/Program Files/Oracle/Berkeley DB 4.5.20/include/' -ldb45 -mno-cygwin -mwindows -Wall -c -std=c99 "c:\home\lisp\elephant\src\db-bdb\libberkeley-db.c" In file included from c:\home\lisp\elephant\src\db-bdb \libberkeley-db.c:165: /C/Program Files/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 c:\home\lisp\elephant\src\db-bdb\libberkeley-db.c: In function `case_cmp': c:\home\lisp\elephant\src\db-bdb\libberkeley-db.c:1236: warning: implicit declaration of function `_strnicmp'

This is on Windows XP pro SP2 with BerkeleyDB 4.5.20 and LWW 5.0.1,
Cygwin updated from the Internet half an hour ago.

BTW, I'd suggest to use another LispWorks command for the compilation
steps, so the user can actually see error messages like this one -
patch attached.

Cheers,
Edi.

<elephant.diff>
_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

_______________________________________________
elephant-devel site list
elephant-devel@common-lisp.net
http://common-lisp.net/mailman/listinfo/elephant-devel

Reply via email to