On Sat, Nov 7, 2009 at 2:14 PM, Ciprian Dorin, Craciun <ciprian.craciun@gmail.com> wrote:
On Sat, Nov 7, 2009 at 1:56 PM, Allan McRae <allan@archlinux.org> wrote:
Ciprian Dorin, Craciun wrote:
On Sat, Nov 7, 2009 at 12:04 PM, Xavier <shiningxc@gmail.com> wrote:
On Sat, Nov 7, 2009 at 8:14 AM, Ciprian Dorin, Craciun <ciprian.craciun@gmail.com> wrote:
On Sat, Nov 7, 2009 at 3:13 AM, Sven-Hendrik Haase <sh@lutzhaase.com> wrote:
Ciprian Dorin, Craciun wrote: > > Hello all! > > I have ArchLinux i686 version, but I'm trying to compile an x86_64 > kernel... And you've guessed... Not supported by the ArchLinux stock > gcc / binutils... > > I've done the "raining" dance, by trying to compile my own gcc / > binutils, but it didn't "rain" (I mean it didn't work)... Any > pointers? > > Thanks, > Ciprian. > > P.S.: Is there any good reason for which there isn't even a > separate package of gcc that is able to do this? (I've read the bug > from one year ago, but no good reason was specified...) > P.P.S.: I'm missing Debian... > > Arch users generally prefer a clean 32bit/64bit chroot to a "dirty" system and have therefore developed tools to make chroot creation really convenient. You should try it too - get the devtools and try "mkarchroot".
-- Sven-Hendrik
About the reason I've read it and somehow understood it. Also mkarchroot is quite nice (in fact the reason I'm struggling with kernel compilation is for a Vserver deployment)...
But back to the problem at hand: I cannot use a chrooted Linux, because in order to use x86_64 packages I need a x86_64 enabled kernel on my laptop (which I don't). So actually I need to cross-compile the kernel.
Now I've seen that in the default repository we have gcc for crosscompiling for arm. Why not one for x86_64?
Anyway thanks for the pointer of mkarchroot! (It would help me in deployment of virtual servers.)
Ciprian.
Why do you want to build the kernel ? Arch already provides it ! All packages are provided in both i686 and x86_64
http://allanmcrae.com/2009/06/using-an-x86_64-kernel-on-an-i686-userland/
Good question. Well the reasons could be multiple:
* first of all the real reason is that I want to compile an x86_64 kernel for one of my servers that I want to use as VServer hosting target; but my laptop has ArchLinux i386, and I don't want to either install x86_64 ArchLinux on my laptop, or on the server itself just to be able to compile the kernel;
* second cross-compiling is one of the basic operations one should be able to do in an development environment;
* third I believe that the real power of OSS / FOS (and therefore also Linux based distributions), is that it allows you the flexibility to customize things to match your liking; furthermore I've switched from Debian (which also provided everything I needed and even more), to ArchLinux (which provides almost everything I need), because I've seen ArchLinux as a more suitable target for experimenting with Linux; (I hope I'm not wrong!)
By the way: I'me preparing three custom packages: cross-x86_64-gcc-base, cross-x86_64-binutils, and cross-x86_64-glibc. Anyone interested in them? Any ideeas if someone has already done this?
FYI, I thought packages that dod that were already in the AUR.
Allan
I haven't found one... I've already searched the AUR for "gcc" and the only entries that resemble what I need are: * http://aur.archlinux.org/packages.php?ID=28545 (gcc-multilib); * http://aur.archlinux.org/packages.php?ID=31547 (cross32-gcc); But both of them are for crosscompiling an i686 from a x86_64, while I need the reverse.
Could you please give me the exact URL from those packages?
Thanks, Ciprian.
The saga is over!!! Binaries available at http://www.kernel.org/pub/tools/crosstool/ I've created a small package that installs that. See bellow. Ciprian. ~~~~ _build=gcc-3.4.5-glibc-2.3.6 pkgname="cross-x86_64-${_build}" pkgver="${_build//-/_}" pkgrel=1 pkgdesc="Cross-compiler binaries" arch=('i686') license=('GPL') url="http://www.kernel.org/pub/tools/crosstool" groups=() depends=() makedepends=() options=(!'strip' !'libtool' !'emptydirs' !'docs') source=("http://www.kernel.org/pub/tools/crosstool/files/bin/i386/x86_64-${_build}.tar.gz") md5sums=('1093a4fae1fc14f53b82633b6f92b033') build () { mkdir "${pkgdir}/opt" cp -RaTv "${srcdir}/${_build}/x86_64-unknown-linux-gnu" "${pkgdir}/opt/${pkgname}" } ~~~~