Re: [Exim] Bug in compiling 3.34

Page principale
Supprimer ce message
Répondre à ce message
Auteur: George R Kasica
Date:  
À: Phil Pennock
CC: exim-users
Sujet: Re: [Exim] Bug in compiling 3.34
On Thu, 27 Dec 2001 13:48:23 +0100, you wrote:

>On 2001-12-27 at 06:02 -0600, George R . Kasica wrote:
>> I'm very aware linux is actually an OS/and or kernel, and for the info
>
>Sorry; I can only go on the evidence available.

No problem.

>> your asking: it WAS Caldera a long time ago but over the last 3 years
>> with enhancements and upgrades is more generic than Caldera now.
>
>Do these enhancements/upgrades include a different resolver library?

Not that I'm aware of...I've not touched glibc. If you can tell me
where its located I can let you know.

>> Sorry again for not being as PRECISE as yourself, a Makefile Bug
>> possibly.
>I don't see this. Because ...
>
>> >So you have -lresolv after dns.o on the command-line, so any resolver
>> >functions should be found.
>
>Yet they weren't. So your libresolv apparently isn't exporting the
>relevant symbols.

OK...not being a C programmer I'll trust you on this.

>You mentioned several rebuilds; have you tried unpacking a fresh source
>hierarchy, putting Local/Makefile (and the eximon.conf file, if desired)
>in place, and then trying again? Clean go.

OK...here we go...
[root@eagle /Linux]# rm -r exim-3.34
[root@eagle /Linux]# tar xzvf /home/georgek/Linux/New/exim-3.34.tar.gz
[root@eagle /Linux]# chown -R root:root exim-3.34
[root@eagle /Linux]# cd exim-3.34
[root@eagle exim-3.34]# cp ../exim-3.33/Makefile .
[root@eagle exim-3.34]# mkdir Local
[root@eagle exim-3.34]# cp ../exim-3.33/Local/Makefile Local
[root@eagle exim-3.34]# cp ../exim-3.33/Local/eximon.conf Local
[root@eagle exim-3.34]# make

[stuff deleted]

same results it looks like:

gcc -c -O    -I. verify.c
cc -fno-strict-aliasing -I/usr/local/include -D_LARGEFILE_SOURCE
-D_FILE_OFFSET_
BITS=64  -I/usr/local/lib/perl5/5.6.1/i686-linux/CORE  -O  -c perl.c
awk '{ print ($1+1) }' cnumber.h > cnumber.temp
/bin/rm -f cnumber.h; mv cnumber.temp cnumber.h
gcc -c -O    version.c
/bin/rm -f exim
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
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.
>> I don't think its THAT strange, other code has compiled just fine in
>> the past including 3.33.
>
>Well, something strange is going on. libc is automatically linked,
>unless gcc is told not to. -lresolv was there, despite apparently not
>being needed (that, or your host(1) command doesn't work). So the
>"missing" symbols should all be there. No-one else has reported
>problems with a Linux distribution, so it seems to be specific to your
>environment. Which is a highly hacked-about system.
>
>If a system has had three years of custom modifications made to it, the
>sysadmin should be able to handle the demands of a custom environment
>and, when asking for help, know to describe what's different and
>recognise that if a widely-used package works for everyone else, it
>might very well not be a 'bug' in the package.


I'm more than able to handle describing the system if you ask me what
you need to know, I'm not a C-Programmer so the intricacies of
compiling C source code are pretty much in the realm of using config
and make for me. I don't know C so if it fails I need to ask for help,
which is what I'm doing in a very civil way here.

>
>> [root@eagle /lib]# ldd `type -p host`
>>         libc.so.6 => /usr/local/lib/libc.so.6 (0x40015000)
>>         /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)

>
>Do you happen to recall if the previous build recognised your system as
>Linux-libc5 instead of Linux? What did your system start out as? What
>is your current exim binary linked against?

No, I don't, but in trying to recompile the 3.33 (yes I saved the old
build) I get the same error at the same point, so its obviously
something broken....question being how do I fix it as I have no clue
what is broken?

The system start as in terms of what? linked against? I don't follow
the question as I said, I'm not a C-programmer here.

George
George, MR. Tibbs, Nazerene & The Beast Kasica(8/1/88-3/19/01)
Jackson, WI USA
georgek@???
http://www.netwrx1.com/georgek
ICQ #12862186

      Zz
       zZ
    |\ z    _,,,---,,_
    /,`.-'`'    _   ;-;;,_
   |,4-  ) )-,_..;\ (  `'_'
  '---''(_/--'  `-'\_)