Kees Vonk wrote:

> >>/home/Kees/courier-imap-3.0.8/makedat/makedatprog.c:33: undefined
> >>reference to `_gdbmobj_store'
> >
> >
> > Try adding --with-db=gdbm to your configure line.
> >
> 
> Ok I tried this, but as I suspected no luck.
> 
> However what I did notice is that makedatprog.c includes ../dbobj.h,
> this file defines (for example) dbobj_init as gdbmobj_init (which exists
> in ../gdbmobj/gdbmobj.h), however the error above complains about not
> finding _gdbmobj_init, which does not exist anywhere. Can anyone explain
> to me where the initial '_' comes from, and if that is the problem. I
> realise I am probably showing my ignorance of C programming here, but
> any kind of help would be greatly appreceated.

All of those gdbm_* functions are implemented in the files under
gdbmobj, which should produce libgdbmobj.a.  If you look at the
configure.in for makedat, you see:

case "$db" in
gdbm)
        USE_GDBM=1
        USE_DB=0
        LIBDB=""
        dblibrary=../gdbmobj/libgdbmobj.a
        ;;
db)
        USE_DB=1
        USE_GDBM=0
        LIBGDBM=""
        dblibrary=../bdbobj/libbdbobj.a
        ;;
*)
        makedatprog_target=""
esac

...then in Makefile.ac you have:

[EMAIL PROTECTED]@ @LIBGDBM@ @LIBDB@

...all of which means that:

1. the make should build the stuff in gdbmobj dir (resulting in
libgdbmobj.a) before entering makedat;
2. the link command for makedat should have libgdbmobj.a on its command
line so that it can find the functions that are showing up as missing.

The initial _ is nothing to worry about, that happens to all C
functions.

If you are going to figure this out you have to make sure that both 1
and 2 are happening.

You DO have the 'libgdbm-devel' package installed, right?

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to