LogoopenSUSE Build Service > Projects
Sign Up | Log In

View File clisp-db6.diff of Package clisp (Project devel:languages:misc)

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);