clisp/clisp-db6.diff
2013-06-27 09:04:45 +00:00

49 lines
1.6 KiB
Diff

From: Jan Engelhardt <jengelh@inai.de>
Date: 2013-06-14 13:55:00.148814697 +0200
Work around compile abort with libdb-6.0
BDB has removed RPC support (which was not implemented anyway;
it [set_rpc_server] always returned EOPNOTSUPP even in libdb-4.8).
---
modules/berkeley-db/bdb.c | 9 ++++++++-
1 file changed, 8 insertions(+), 1 deletion(-)
Index: clisp-2.49/modules/berkeley-db/bdb.c
===================================================================
--- clisp-2.49.orig/modules/berkeley-db/bdb.c
+++ clisp-2.49/modules/berkeley-db/bdb.c
@@ -64,6 +64,7 @@ static void vecout (unsigned char* v, in
this is a macro and not a function for NO_UNICODE */
#define asciz_to_string0(a,e) (a ? asciz_to_string(a,e) : NIL)
+#include <errno.h>
#include <db.h>
/* http://www.oracle.com/technology/products/berkeley-db/db/update/4.4.20/if.4.4.20.html
@@ -358,9 +359,14 @@ DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRY
# elif defined(DB_CLIENT) /* 4.1 and before */
SYSCALL(db_env_create,(&dbe,remote_p ? DB_CLIENT : 0));
# else
-# error how does your Berkeley DB create a remote client?
+ SYSCALL(db_env_create,(&dbe,0));
# endif
+
if (remote_p) {
+#if !defined(DB_RPCCLIENT) && !defined(DB_CLIENT)
+# warning No BDB RPC support
+ error_bdb(EOPNOTSUPP, "DBE-CREATE");
+#else
if (uint_p(STACK_0)) sv_timeout = I_to_uint(STACK_0);
if (uint_p(STACK_1)) cl_timeout = I_to_uint(STACK_1);
host_restart:
@@ -384,6 +390,7 @@ DEFUN(BDB:DBE-CREATE,&key PASSWORD ENCRY
STACK_2 = value1;
goto host_restart;
}
+#endif
}
if (!missingp(STACK_4)) /* :PASSWD */
dbe_set_encryption(dbe,&STACK_3,&STACK_4);