How does the 32bit app know which library to use , or is this done at
compile time? What do mean by install the package to your real system?
Ron Young
-----Original Message-----
From: crux-bounces(a)fukt.bth.se [mailto:crux-bounces@fukt.bth.se]On
Behalf Of Jeremy Jones
Sent: Thursday, June 09, 2005 2:26 PM
To: crux(a)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