Re: Freeze Update [2001/11/19]
On Tue, 20 Nov 2001, Richard Braakman wrote:
> I've seen a very similar problem before with bash and readline, which
> was ultimately caused by libc6-dev. I think libgpm got bitten by it
> before libc6-dev was fixed. It's something that happens when you
> compile a shared library without -O, which turns out to be the case
> (accidentally) for libgpm.
> There's no real fix for it now. libgpm in sid has a bogus fstat symbol
> that will go away with the next recompile (because libc6-dev was fixed),
> and after that w3m will break in sid the same way it breaks in woody.
> Fortunately, w3m can then be recompiled and all will be fine.
> The alternative is to commit barfingly gross hackery to create an
> fstat symbol in libgpm, and keep it there until the next soname change.
> That would also make us incompatible with other distributions.
>  I don't recall exactly where it was fixed, I'm guessing in
> libc6-dev but it might be some other part of the toolchain.
This all started with an upstream change to glibc that moved fstat() and a
few other symbols out of the shared lib into libc_nonshared.a (in the
midst of a stable release cycle, I might add...changed in a subminor
version bump). IIRC, in order for the change to work at all was to use a
toolchain that properly supported weak and hidden symbols (which ours
didn't at the time and I still have my doubts about some archs
currently). When asked, Drepper (who made the change) said something to
the effect of "it works with gcc 2.96 and RH's binutils" and as far as he
was concerned, any gcc prior to 2.96 should just go away (this was at
least a month before the 3.0 release, fyi, so there were no other official
gcc releases above 2.95.x).
As a result, anything bitten by this problem needs to be recompiled
against current glibc and with a newer toolchain so that those symbols can
be properly marked and/or included in the final DSOs. I went back and
forth with testing this and dealing with some binary-only software on
alpha showing this problem. I can probably dig out my notes on how to
possibly get around the problem, if needed, but if you can recompile
the package(s) in question, it should solve your problems (if not, let me