You are not logged in.
Pages: 1
I'm currently running i686 on my 64 bit processor. Lately I came across two applications (Clozure Common Lisp, Symbolics Open Genera) that require 64 bit.
What's the most hassle-free way to use them in you opinion?
Thanks,
Leslie
Last edited by dejari (2008-04-29 14:33:54)
Offline
User mode applications can not enter long mode to enable the x86_64 instruction superset and 64 bit registers. You could run a 64 bit kernel, but keep your user base install as 32 bit, the way you already have it. This would likely only work though if those applications are statically compiled, and there might be other problems involved.
Are these applications truly 64 bit, in other words are they compiled for x86_64? Or do they just use 64 bit data types? 64 bit data types are available in 32 bit only code, they just don't map one to one to registers.
Offline
I don't know about Open Genera right now, and it's not important, but here's information about Clozure CL (http://trac.clozure.com/openmcl):
[sky@wintermute (..)~/projects/lisp/ccl]% ./lx86cl64
zsh: exec format error: ./lx86cl64
[sky@wintermute (..)~/projects/lisp/ccl]% ldd lx86cl64
not a dynamic executable
[sky@wintermute (..)~/projects/lisp/ccl]% file lx86cl64
lx86cl64: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), for GNU/Linux 2.6.9, dynamically linked (uses shared libs), not stripped
I'm not sure whether ldd can be trusted in this case, though.
So I could try to run an x86-64 kernel with a 32 bit userland? Would that work?
Offline
x86-64 kernels work with 32 bit userland. As far as I know the only issues are sometimes in driver interfaces, but I'm only aware of that for some video software. You don't have to reinstall your OS, just install and boot an x86-64 kernel.
A problem you will run into though is that lx86cl64 is dynamically linked. While the rest of your 32 bit system will run, apps that depend on 64 bit shared libs will not. (as indicated by 'file').
With an x86-64 bit kernel and a 32 bit userland, you might be able to set up a 64 bit chroot install, and run lx86cl64 in there.
It would be simpler in my opinion to "upgrade" to a full 64 bit install.
Last edited by dschauer (2008-04-29 15:00:20)
Offline
I see. How do I upgrade? Are there still any disadvantages I need to be aware of when running x86-64?
Offline
Well, there no easy way to simply "upgrade" as x86-64 is considered a different architecture.
You'll have to reinstall with arch64 instead of arch32, which means backing up /etc and /home at a minimum.
In order to get your installed packages back after reinstallation, before you reinstall you could dump out a script via:
pacman -Qte | awk '{printf "pacman -S %s\n", $1}' > reinstall-packages.sh
and then reinstall your system, then run that script after it is reinstalled. If you have a lot of AUR stuff, well, if you use yaourt instead of pacman in the above script that may work.
pacman -Qte | awk '{printf "yaourt -S %s\n", $1}' > reinstall-packages.sh
Then of course restore /etc and /home.
I don't think there is any easier way to convert from arch32 to arch64.
Offline
Pages: 1