delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2005/04/14/00:58:02

Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
Sender: cygwin-owner AT cygwin DOT com
Mail-Followup-To: cygwin AT cygwin DOT com
Delivered-To: mailing list cygwin AT cygwin DOT com
Message-ID: <425DF8C5.4B0179C8@dessent.net>
Date: Wed, 13 Apr 2005 21:59:49 -0700
From: Brian Dessent <brian AT dessent DOT net>
Organization: My own little world...
MIME-Version: 1.0
To: cygwin AT cygwin DOT com
Subject: Re: Installing Courier-Imap
References: <425CABBC DOT 1040504 AT yahoo DOT co DOT uk> <425CB466 DOT 26E80E7F AT dessent DOT net> <425DF35D DOT 5040800 AT yahoo DOT co DOT uk>
X-IsSubscribed: yes
Reply-To: cygwin AT cygwin DOT com

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:

makedatprog_LDADD=@dblibrary@ @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/

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019