Re: [Exim] Bug in compiling 3.34

Top Page
Delete this message
Reply to this message
Author: Phil Pennock
Date:  
To: George R . Kasica
CC: exim-users
Subject: Re: [Exim] Bug in compiling 3.34
On 2001-12-27 at 10:48 -0600, George R . Kasica wrote:
> >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.


On a GNU/Linux distribution, that'll be /lib/libc.so.N -- N is likely to
be either 5 or 6. On a Debian GNU/Linux box to which I have access,
libresolv is "/lib/libresolv.so.2".

AIUI, if you have both libc.so.5 (glibc5) and libresolv, then you have a
mixed setup with both libraries. The migration to glibc6 is a major
project which caused even the professional vendors much pain.

Heck, at this point I'd recommend just running "ldconfig" as root and
seeing if that helps. Unlikely.

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


Trust ... me? *muahahahaaaa* Foolhardy. ;^)

> >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...


Erk. But then ...

> >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?


(*phew*, not Exim) Okay, this helps. We now know for sure that it's
not really an Exim issue.

> 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.


Sorry for the confusion. Did the system start with glibc5 or glibc6 (I
have a sneaking suspicion that the former is known as libc5 without the
g)?

"ldd" lists the libraries against which a binary is linked. If you
still have the _working_ Exim from 3.33, then "ldd /path/to/exim" will
tell you which libraries were used before, and thus which libraries are
kinda likely to work this time, if things haven't gone completely gooey.

If there's "libresolv" then I'm stumped. You really need to ask now in
another forum.

If there's not, then the mix-up is probably because of the library
change. Rerunning "ldconfig" to rebuild the links and cache for the
dynamic library system might help.

You see, on the Debian box to which I have access (I use a BSD myself),
libresolv and libc contain the functions which you're after.
$ foo() { nm --defined-only $1 | egrep '(res_(state|init|search)|dn_expand)'; }
$ foo /usr/lib/libresolv.a
00000000 T __dn_expand
000001b0 T __res_search
$ foo /usr/lib/libc.a
res_init.o:
0000000c T __res_init
00000000 W __res_state
$

So since dns.o appears on the command-line before either -lresolv or -lc
it should be picking up these symbols.

"ldconfig"; if that doesn't help, go drink alcohol and have a good
evening, because I suspect that you have a crap day ahead of you
tomorrow, building a new system, unless a Linux guru on a Linux list
recognises these symptoms.


My apologies for the slightly hostile initial response. exim-users
nowadays sees an inordinate number of posts from people who ask the same
basic questions, which are in the Spec, the FAQ, the list archives, the
samples, The Book ... some of the regulars (and the cranks like me) can
get a little miffed at posts which lack important information and at the
same time make claims of rather startling bugs in Exim. You might wish
to read the excellent articles (more patient than I am) at:
<http://www.chiark.greenend.org.uk/~sgtatham/bugs.html>
"How to Report Bugs Effectively"
and:
<http://www.tuxedo.org/~esr/faqs/smart-questions.html>
"How To Ask Questions The Smart Way"
(both of which I now push as Required Reading).
--
Some mornings it's just not worth chewing through the leather straps.