Skip to Content.
Sympa Menu

baslinux - [BL] BL2 - library downgrade problems (glibc-2.2.5>2.1.3) (fwd)

baslinux AT lists.ibiblio.org

Subject: Baslinux mailing list

List archive

Chronological Thread  
  • From: Sindi Keesan <keesan AT iamjlamb.com>
  • To: baslinux AT lists.ibiblio.org
  • Subject: [BL] BL2 - library downgrade problems (glibc-2.2.5>2.1.3) (fwd)
  • Date: Wed, 31 Mar 2004 15:17:03 -0500 (EST)

I am having problems restoring my system to glibc.so.2.1.3.

I installed glibc.tgz (2.1.3) from Slackware 7.1 in order to compile
for BL2, which comes with the matching runtime libraries (.so) also found
in glibcso.tgz. The glibc files are header files (.h) located in
/include and used for programs linked with shared libraries,
and .a files used for programs links statically. (Correct?)

I was able to use this combination (with egcs etc from SW71) to
compile antiword and photopc.

The precompiled Kermit that was posted for SW71 would not work
unless glibc-so was upgraded. Kermit specially compiled a version
that worked with glibc 2.1.3 instead.

Opera 6.03 works with glibc 2.1.3 but Opera 7.23 does not.
So I upgraded glibcso to 2.2.5 and Opera 7.23 worked.

But this gave me a system with non-matching .so and .h and .a
libraries which cannot be used to compile shared, only static,
programs. Lynx took 2 months to compile because I also had to
compile static versions of its three dependencies first.

I did not upgrade glibc to 2.2.5 because then the shared programs
would not work for other users of BL2.

Matrix Mole and I have been discussing this, and Matrix suggested that I
keep both versions of glibc so files on my computer and make scripts to
switch the symlinks between them, depending on whether I am compiling
(need 2.1.3) or running Opera (2.2.5). The ln program will not overwrite
links normally, so you would need to delete the old link before making a
new one, which since the basic libraries are involved here, would stop
everything from running. He tested out the idea of using ln -s -f, to
'force' overwriting of existing symlinks, and it seems to work on his test
links.

So it should be possible to switch between libraries that way.

In the meantime I tried to downgrade back from glibcso 2.2.5 to 2.1.3. I
tried removepkg but it would not remove the 2.2.5 files because there were
symlinks to them. I deleted them: rm /lib/*2.2.5* and then nothing
worked because the links pointed to the wrong places, so I ran ldconfig
(which is statically compiled so does not need glibc symlinks to work),
which made symlinks back to 2.1.3 and now linux works again. I also
removed 2.2.5 files in /usr/lib.

Before I did this, when I tried to compile two programs on this
computer (which compiled perfectly on a non-hybrid system
with glibc and glibcso both 2.2.5) I got error messages about
atexit and glibc_2.2. I no longer got those error message now.

But the first program told me it could not find glibc_2.2:
version 'GLIBC_2.2' not found (required by /lib/libdb.so.3)
libdb.so.3 points to libdb2.so.3 which is the same date as
libdb1.so.2.1..3 and is probably from glibcso.tgz (or BL2-BASE).
Why would libdb2.so.3 (probably from SW71) call for glibc_2.2?
Installing glibcso.tgz from SW71 did not help.

The second program would not compile either:
/usr/i386-slackware-linux/bin/as:
error in loading shared libraries: libc.so.6: invalid ELF header

All of the programs in that directory (all from binutils.tgz,
which I also reinstalled) give that error when I try to either
run them or do ldd on them.

Matrix says he does not get that error on his unmangled system.
He suggested running the install-to-hd program again to fix
things but said I would lose any later libraries that I installed.
I don't want to risk this. I might just reinstall glibc-so.2.2.5
and upgrade glibc to 2.2.5 if I can't get the downgrade to work.

What else do I need to do in order to finish downgrading so
things all work again without looking for the later library?

On my next computers I will use the compiler programs from SW71
but upgrade both glibcso and glibc from SW81 so that I can compile
shared programs and use precompiled programs that require 2.2.5.

If anyone else wants to use these programs they can upgrade glibcso.
The newer glibcso and glibc are only about 10% larger (an additional
2M or so). Those from SW91 are about twice the size.

The moral of this is that you should not try to use the old glibc
for compiling on a computer where you have upgraded glibcso.

-------------------------
Slightly related - I downloaded and booted into slimlinux, 1.7M,
based on the new small library that Steven is interested in.
It found a frame buffer device on my computer and displayed
a colored penguin, and used 128 columns in console mode, which
made it hard to read. Newer kernel. Supports USB and SCSI. Fast.
Mutt mail, retawq browser. I could not find a way to go online.

Steven's program is outstandingly well designed so it will work for
beginners. I never realized how nearly perfect it is until looking at a
few others which are either much larger or impossible for a beginner to
figure out.





Archive powered by MHonArc 2.6.24.

Top of Page