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

Ron Young ronyoung at adelphia.net
Thu Jun 16 03:16:34 UTC 2005


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 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