Re: problem libc6(2.3.1-[67]) + qmail
I'm seeing exactly the same problem, 2.3.1-6. Our qmail was working
earlier today, we upgraded, now it's broken. Reverting to -5 fixes it.
Fairly certain that it's related to "errno". I have two reasons for
thinking this:
1) On startup, qmail attempts to open several optional config files.
In the qmail source, if the open fails /and the errno is ENOENT/, there's
no problem. Now, suddenly, those files are no longer optional; they
must exist. Tracing the startup shows that the call to open returns
a value that strace displays as ENOENT, but is clearly not the same
ENOENT that qmail is seeing, because "if (x == ENOENT)" is failing.
2) Recompiling qmail (on the assumption that perhaps a hardcoded value for
ENOENT is now brutally and suddenly outdated) fails at the link stage:
checkpassword.o(.text+0x63): In function `main':
: undefined reference to `errno'
checkpassword.o(.text+0x129): In function `main':
: undefined reference to `errno'
checkpassword.o(.text+0x177): In function `main':
: undefined reference to `errno'
unix.a(pathexec_run.o)(.text+0x10d): In function `pathexec_run':
: undefined reference to `errno'
unix.a(pathexec_run.o)(.text+0x14b): In function `pathexec_run':
: undefined reference to `errno'
unix.a(alloc.o)(.text+0x3d): more undefined references to `errno' follow
collect2: ld returned 1 exit status
make[1]: *** [checkpassword] Error 1
make[1]: Leaving directory `/root/q/qmail-1.03/contrib/checkpassword-0.90'
(please CC me on replies if possible)
Phil
--
I would therefore like to posit that computing's central challenge, viz. "How
not to make a mess of it," has /not/ been met.
- Edsger Dijkstra, 1930-2002
Reply to: