New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
code de detection du nouveau gdbm (1.8.3). #8196
Comments
Comment author: administrator
Je râle copieusement sur ces changements gratuits. (Ce n'est pas la
Peux-tu m'envoyer les fichiers config/Makefile et otherlibs/dbm/cldbm.c
|
Comment author: administrator On Tue, Jul 08, 2003 at 10:24:44AM +0200, Xavier Leroy wrote:
Bof, cela fait des annees que le support ndbm.h dans gdbm etait plutot
Ok, je les attache. Sinon, j'ai entrepris de rendre plusieurs versions de ocaml installable Je ne suis pas entierement sur que ce soit reellement la bonne voie a BTW, je pense que d'utiliser ocamlrun- au lieu du simple Amicalement, Sven Luther generated by ./configure --with-pthread -prefix /usr -mandir /usr/share/man -tkdefs -I/usr/include/tcl8.3 -tklibs -L/usr/lib -ltk8.3 -ltcl8.3PREFIX=/usr // /* $Id: cldbm.c,v 1.7 2001/12/07 13:39:51 xleroy Exp $ */ #include <string.h> /* Quite close to sys_open_flags, but we need RDWR */ static void raise_dbm (char *errmsg) Noreturn; static void raise_dbm(char *errmsg) #define DBM_val(v) *((DBM **) &Field(v, 0)) static value alloc_dbm(DBM * db) static DBM * extract_dbm(value vdb) /* Dbm.open : string -> Sys.open_flag list -> int -> t / if (db == NULL) /* Dbm.close: t -> unit / /* Dbm.fetch: t -> string -> string / value caml_dbm_insert(value vdb, value vkey, value vcontent) /* ML */ key.dptr = String_val(vkey); switch(dbm_store(extract_dbm(vdb), key, content, DBM_INSERT)) { value caml_dbm_replace(value vdb, value vkey, value vcontent) /* ML */ key.dptr = String_val(vkey); switch(dbm_store(extract_dbm(vdb), key, content, DBM_REPLACE)) { value caml_dbm_delete(value vdb, value vkey) /* ML */ if (dbm_delete(extract_dbm(vdb), key) < 0) value caml_dbm_firstkey(value vdb) /* ML */ if (key.dptr) { value caml_dbm_nextkey(value vdb) /* ML */ if (key.dptr) { |
Comment author: administrator Hopefully fixed 2003-07-08 by XL |
Original bug ID: 1742
Reporter: administrator
Status: closed
Resolution: fixed
Priority: normal
Severity: minor
Category: ~DO NOT USE (was: OCaml general)
Bug description
Salut, ...
La version de debian de gdbm utilise avec ocaml est gdbm 1.8.3.
Cette version, a part utilise l'include gdbm-ndbm.h a la place de
ndbm.h, a aussi besoin d'utiliser la librairie libgdbm_compat pour
utiliser les anciennes fonctions de compatibilite dbm et ndbm que ocaml
utilise.
J'ai fait un patch pour le package ocaml, mais il est pas tres propre,
alors peut-etre voudrez vous faire un fix correct pour la future version
ocaml 3.07.
Pour cela, voici les informations qui sont utiles :
le fichier d'include se trouve dans /usr/include/gdbm-ndbm.h et la
librairie a utilise est /usr/lib/libgdbm_compat.[l]a.
Pour cela, je pense que le mieux serait de tester l'existence de
gdbm-ndbm.h si ndbm.h n'existe pas, et si on trouve gdbm-ndbm.h, faire
le test " sh ./hasgot -lgdbm_compat dbm_open " avant de mettre dbm_link
a "-lgdbm_compat".
Cela devrait bien marche, mais il y a encore un probleme, et c'est le
fait que otherlibs/dbm/cldbm.c a un include de ndbm.h alors qu'il faut
utiliser gdbm-ndbm.h.
Si vous n'avez pas le temps pour cela, je peut essayer de faire un patch
la semaine prochaine.
Amicalement,
Sven Luther
The text was updated successfully, but these errors were encountered: