LOL: Netscape hole

Kevin Buettner kev@primenet.com
Fri, 1 Dec 2000 22:33:46 -0700


On Dec 1,  3:29pm, jkenner@mindspring.com wrote:

> By default, the Storm install doesnt support ELF binaries - only
> glibc ones!

I don't use Storm, but I really doubt that that's the case.  (Read on.)

> What the hell is up with that...  do current Debian and RedHat
> installations also suffer from this hideous disability?

I guess it all depends on how much backward compatiblity you expect
the install to provide for you by default.  If you want it to work
right out of the box, then my guess is that all current glibc
distributions are "hideously disabled".  OTOH, if you're willing
to copy over the dynamic linker from your old install along with
the necessary libraries, there should be no problem.

FWIW, I run a number of pre-glibc binaries on both my Red Hat 6.2
and Red Hat 7 boxes.

> If I can only run binaries compiled with glibc, FORGET using a
> default install!

Try the following (modifying your paths appropriately)...

  saguaro:kev$ objdump -s -j .interp /usr/lib/netscape/netscape-communicator 

  /usr/lib/netscape/netscape-communicator:     file format elf32-i386

  Contents of section .interp:
   80480f4 2f6c6962 2f6c642d 6c696e75 782e736f  /lib/ld-linux.so
   8048104 2e3200                               .2.             

Now run the same command on an old binary:

  saguaro:kev$ objdump -s -j .interp /usr/local/netscape3/netscape-3.01-caldera 

  /usr/local/netscape3/netscape-3.01-caldera:     file format elf32-i386

  Contents of section .interp:
   80000d4 2f6c6962 2f6c642d 6c696e75 782e736f  /lib/ld-linux.so
   80000e4 2e3100                               .1.             

You'll notice that both of these are ELF files, but that the
interpreter sections points to a different dynamic linker.  (Note the
difference in the version number.)  The trick here is to copy the
dynamic linker from your old system to /lib on your new system.  Once
you do this, your binaries should work again.  (Assuming, of course,
that you've also restored the necessary libraries.  Use ``ldd'' to
help track down which libraries are needed by your executables.  BTW,
if the interpreter (dynamic linker) is missing from your system, it is
likely that ldd won't even run; in fact it used to core dump. 
Diagnosing this problem is extremely difficult the first time you run
into it.)

Hope this helps,

Kevin