Re: [Exim] Bug in compiling 3.34

Página Principal
Apagar esta mensagem
Responder a esta mensagem
Autor: Phil Pennock
Data:  
Para: exim-users
Assunto: Re: [Exim] Bug in compiling 3.34
--
On 2001-12-25 at 19:51 -0600, George R . Kasica wrote:
> Just tried to compile 3.34 here under linux and am seeing the


"linux" is a kernel. Which distribution are you using?

(It's times like this when I _really_ sympathise with Richard Stallman)

RedHat? Debian GNU/Linux? SuSE? Mandrake? Something else?

The output of "uname -a" (or at least "uname -srm") is generally useful.

> following bug when I do the make....I'm using the same Makefile and
> Local directories as 3.33 which compiles just fine....


A bug is a problem with the code when built, assuming that the target
platform conforms to basic common requirements. You haven't even built
it yet, so _if_ there is a bug, then it's a Makefile one.

> Here is the output of make (some up to dates as I've run it multiple
> times):


Something strange here.

> >make[1]: Entering directory `/mnt/scsi-1/Linux/exim-3.34/build-Linux-i386'


So that's an OS type (scripts/os-type) of "Linux". And
OS/Makefile-Linux explicitly sets "LIBRESOLV = -lresolv"

> >gcc -o exim accept.o child.o daemon.o dbfn.o debug.o deliver.o direct.o directo
> >ry.o dns.o drtables.o exim.o expand.o filter.o globals.o header.o host.o log.o m

        ^^^^^

> >atch.o moan.o os.o parse.o queue.o readconf.o retry.o rewrite.o route.o search.o
> > smtp_in.o smtp_out.o spool_in.o spool_out.o store.o string.o tls.o tod.o transp
> >ort.o tree.o verify.o perl.o version.o \
> >  libident/libident.a pcre/libpcre.a directors/directors.a \
> >  routers/routers.a transports/transports.a lookups/lookups.a \
> >  auths/auths.a \
> >  -lnsl -lcrypt     \
> >  -ldb -lresolv  -rdynamic  -L/usr/local/lib /usr/local/lib/perl5/5.6.1/i686-lin

          ^^^^^^^^

> >ux/auto/DynaLoader/DynaLoader.a -L/usr/local/lib/perl5/5.6.1/i686-linux/CORE -lp
> >erl -lnsl -ldl -lm -lc -lposix -lcrypt -lutil


So you have -lresolv after dns.o on the command-line, so any resolver
functions should be found.

> >dns.o: In function `dns_init':
> >dns.o(.text+0x8): undefined reference to `__res_state'
> >dns.o(.text+0x15): undefined reference to `__res_init'
> >dns.o(.text+0x27): undefined reference to `__res_state'
> >dns.o(.text+0x5f): undefined reference to `__res_state'
> >dns.o(.text+0x76): undefined reference to `__res_state'
> >dns.o: In function `dns_next_rr':
> >dns.o(.text+0xdd): undefined reference to `__dn_expand'
> >dns.o(.text+0x140): undefined reference to `__dn_expand'
> >dns.o(.text+0x1b0): undefined reference to `__dn_expand'
> >dns.o: In function `dns_basic_lookup':
> >dns.o(.text+0x4fa): undefined reference to `__res_search'
> >dns.o: In function `dns_lookup':
> >dns.o(.text+0x86c): undefined reference to `__dn_expand'
> >host.o: In function `host_find_bydns':
> >host.o(.text+0x160c): undefined reference to `__dn_expand'
> >collect2: ld returned 1 exit status
> >make[1]: *** [exim] Error 1
> >make[1]: Leaving directory `/mnt/scsi-1/Linux/exim-3.34/build-Linux-i386'
> >make: *** [go] Error 2


And they're not. So the resolver functions aren't being linked to. So
you're using a really strange set-up, not like any other modern Linux.

At this point, we _really_ need to know more about the system you're
building on, what version of glibc you're using (or if you're using a
different libc), etc. You simply haven't provided enough information.

Which distribution? Which version of that distribution? If you're
using bash, what's the exact output of:
$ ldd `type -p host`

--
A formal manipulator in mathematics often experiences the discomforting
feeling that his pencil surpasses him in intelligence -- Howard W Eves
--
[ Content of type application/pgp-signature deleted ]
--