Re: [Hampshire] 32-bit apps on 64-bit Linux (Debian Etch)

Top Page
Author: Hugo Mills
Date:  
To: adam.trickett, Hampshire LUG Discussion List
CC: 
Subject: Re: [Hampshire] 32-bit apps on 64-bit Linux (Debian Etch)

Reply to this message
gpg: failed to create temporary file '/var/lib/lurker/.#lk0x5843e100.hantslug.org.uk.27727': Permission denied
gpg: keyblock resource '/var/lib/lurker/pubring.gpg': Permission denied
gpg: Signature made Mon Jan 1 14:12:44 2007 GMT
gpg: using DSA key B2C27BC21C335860
gpg: Can't check signature: No public key
On Mon, Jan 01, 2007 at 01:53:02PM +0000, Adam Trickett wrote:
[snip]
> There are two approaches to dealing with 64/32-bit on the same
> Debian system:
>
> * Run 32-bit apps in a 32-bit chroot.
> * Run 32-bit apps in a 64-bit environment, but provide 32-bit compatabilitiy
> libraries.


(I assume you mean 64-bit apps in a 64-bit environment here)

> The chroot works well but it's a bit of a pain and I currently only need it
> for RealPlayer.
>
> The compatabilitiy libraries (ia32-libs and ia32-libs-gtk etc etc) work well
> for the Opera browser and the Adobe Flash player. The problem at the moment
> is that I can't get RealPlayer to run with just the compatability libraries -
> it works but there are Pango problems and all my font gylphs are squares,
> which makes it a bit of a pain to use.


> I don't know how an app knows which kind of library to use, how does
> a 32-bit version of RealPlayer know to only use 32-bit libraries,
> not 64-bit ones? How come Opera works perfectly and RealPlayer
> doesn't? If I understood how things worked I would stand a better
> chance of fixing them.


I don't know the exact details, but I'm assuming that there's some
form of architecture field in the ELF header of all the executable
binaries (including libraries). I do know that the dynamic loader, ld,
has been modified to examine this header, and look for libraries in
different directories depending on what architecture it's trying to
link with.

> Any hints on getting 32-bit RealPlayer to work?


The only thing I can suggest is running ldd on the executable,
working out what libs it really wants, and supplying them. I can't
remember exactly where the 32-bit libs should go, but that shouldn't
be hard to work out (dpkg -L on the compatibility package will tell
you). You'll probably have to unpack the 32-bit packages by hand with
dpkg-deb -x, and then copy the .so files you want into the right
place.

Hugo.

-- 
=== Hugo Mills: hugo@... carfax.org.uk | darksatanic.net | lug.org.uk ===
  PGP key: 1C335860 from wwwkeys.eu.pgp.net or http://www.carfax.org.uk
  --- Do not meddle in the affairs of wizards, for they are subtle, ---  
                           and quick to anger.