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


Does this work for generating the DLL for libberkeley-db.c?

gcc -shared -mno-cygwin -mwindows -std=c99 --export-all-symbols
libberkeley-db.def libberkeley-db.c -o libberkeley-db.dll

I can include the memutils .def file so this single command is easy
to invoke from asdf instead of via a shell script or makefile.

Ian

On Jan 23, 2007, at 7:48 PM, [EMAIL PROTECTED] wrote:


I tried the new elephant on winXP.

1. Allegro8 trial:

Error: In :IMPORT list, the symbol "ARRAY-TYPE-FROM-BYTE" not found
in package #<The ELEPHANT package>
[condition type: PACKAGE-ERROR]

when loading
c:\lisp\binaries\allegro-a8.0-mswindows-x86\lisp\libraries\elephant
\src\elephant\serializer1.fasl

2. LispWorks 5 pro

in file memutil.lisp

This creates an error:

(def-foreign-type array-or-pointer-char
      #+allegro (:array :char)
      #+(or cmu sbcl scl openmcl) (* :char))

changed 2nd line to:
      #+(or allegro lispworks) (:array :char)
don't know whether it is the correct selection

Then:

Compilation aborted due to error between functions:
  Package SB-KERNEL not found.

when compiling this:
;; A non-back-compatible change was made in SBCL 8 moving to SBCL 9,
;; in that the function copy-from-system-area disappeared.
;; This code is an attempt to allow compilation under bothe SBCL 8
and SBCL 9.
;; Thanks to Juho Snellman for this idiom.
(eval-when (:compile-toplevel)
  (defun new-style-copy-p ()
    (if (find-symbol "COPY-UB8-FROM-SYSTEM-AREA" "SB-KERNEL")
        '(:and)
        '(:or)))
  )

I then commented out all forms depending on
;#+#.(elephant-memutil::new-style-copy-p) and
;#-#.(elephant-memutil::new-style-copy-p)

in file package lisp

Compilation aborted due to error between functions:
  Duplicated names in "ELEPHANT" defpackage: "ELE".

I replaced
 (:nicknames ele :ele)
with
 (:nicknames :ele)

In file metaclasses.lisp

**++++ Error in (DEFCLASS ELEPHANT:PERSISTENT):
  Defining function :DBCN-SPC-PST visible from package KEYWORD.

The accessor function stars with colon. I deleted the colon.

In file classes.lisp

Error
Defining (METHOD ENSURE-CLASS-USING-CLASS :AROUND ((EQL NIL) T))
visible from packages COMMON-LISP, CLOS.

No idea what to do.


3. I was able to use elephant 6.0 with ACL 7 trial

wherein I used cygwin to produce the dll s, and I copied the dll,
with a newer date than the source, into the
directory with binaries to prevent recompilation started with run-
shell-command from asdf, which does not seem
to work on windows.

This is the script for libmemutil.dll:

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

And this is the script for libsleepycat.dll:

gcc -mno-cygwin -mwindows -c -Wall -std=c99 -L/c/DB/Berkeley\ DB\
4.4.20/lib/ -I/c/DB/Berkeley\ DB\ 4.4.20/include/ libsleepycat.c
dlltool -z libsleepycat.def --export-all-symbols -e exports.o -l
libsleepycat.lib libsleepycat.o
gcc -shared -mno-cygwin -mwindows -L/c/DB/Berkeley\ DB\ 4.4.20/bin/
-llibdb44 libsleepycat.o exports.o -o libsleepycat.dll

(I don't know how to use variables in shell scripts)


4. I will try again

____________________________________________________________________ __
_
Viren-Scan für Ihren PC! Jetzt für jeden. Sofort, online und
kostenlos.
Gleich testen! http://www.pc-sicherheit.web.de/freescan/?mc=022222

_______________________________________________
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



_____________________________________________________________________
Der WEB.DE SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
http://smartsurfer.web.de/?mc=100071&distributionid=000000000066

_______________________________________________
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