[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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)

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: