[Clc-crux64] RE: Fwd: i686 vs x86_64 on AMD64

Ron Young ronyoung at adelphia.net
Sat Jun 18 18:47:32 UTC 2005


At runtime how does the app know to use the 32 bit version of the library if
the library has the same name.

How and where do you install the libraries into the real system.

Thanks
Ron Young



-----Original Message-----
From: crux-bounces at fukt.bth.se [mailto:crux-bounces at fukt.bth.se]On
Behalf Of Jeremy Jones
Sent: Thursday, June 09, 2005 2:26 PM
To: crux at fukt.bth.se
Subject: Re: Fwd: i686 vs x86_64 on AMD64


Him Mans,

On Thu, 2005-06-09 at 22:03 +0200, Måns Andersson wrote:
> Hello
> I'v been using Crux for about a year at my Athlon XP-computer. But
> since I've updated to an AMD64 processor I wonder which port I should
> use. Right know I'm using the x86_64 port, but I'm having a lot of
> trouble whil trying to compile different packets I need. For example
> doesn't mplayer work out alright if I want to be able to play all
> codecs, I have to disable win32 to get it working, but with the loss
> of some codecs.

Yes, this is a problem with mplayer.  Others?

> I have found out that it is because of that I'm trying to compile it
> as an 64-bit-program instead of 32-bit as it is intended to.
> Therefore I have two different things to do. Either I will change back
> to the i686-version I've been using earlier on my AthlonXP, but I
> don't know if it will work out well, or will those problems continue
> as long as I use AMD64? The other thing I've thought about is to find
> out some way to compile those packets that don't work on 64-bit as
> 32-bit instead. But how can I do this? Is it possible?

If you have a couple hundred megs of drive space available, you can
install the i686 version into a chroot environment.  I do this:

mkdir -p /home/jeremy/crux-i686/var/lib/pkg
touch /home/jeremy/crux-i686/var/lib/pkg/db
mkdir /home/jeremy/iso
mount -o loop /home/jeremy/crux-2.1.iso /home/jeremy/iso
cd /home/jeremy/iso/crux/base
for pkg in `ls -1`; do
pkgadd -r /home/jeremy/crux-i686 $pkg
done
cd ../opt
pkgadd -r /home/jeremy/crux-i686 $pkg

Then you can chroot to /home/jeremy/crux-i686, run ports -u, compile
what you need, then install the package to your real system.

If the binaries complain about missing libs, you can always add
something like this to /etc/ld.so.conf

/home/jeremy/crux-i686/lib
/home/jeremy/crux-i686/usr/lib
/home/jeremy/crux-i686/usr/X11R6/lib

and re-run ldconfig.

HOWEVER...

If you don't feel like doing some work -- i.e. troubleshooting,
debugging, pulling out your hair -- you might be best off with the i686
crux to begin with.  I can't even promise you'll get much of a
performance boost running 64-bit vs 32-bit.  Never bothered to
benchmark, to tell the truth.

Jeremy




More information about the crux64 mailing list