2009-09-03 10 views
1

Tout en essayant de compiler un noyau linux 64 bits en utilisant gcc, je vois la erreur suivant:compilation 64 noyau linux bits avec gcc

kernel/bounds.c: 1: Erreur: modèle de code 'noyau' non pris en charge dans le 32 bit mode
kernel/bounds.c: 1: désolé, inappliquées: mode 64 bits pas compilé

C'est ce que rapports de gcc :
l'utilisation intégrée spécifications.
Cible: i586-redhat-linux
Configuré avec: ../configure --prefix =/usr = http://bugzilla.redhat.com/ bugzilla --enable-bootstrap --enable-shared --enable-discussions = posix - enable-checking = release --avec-system-zlib - enable -__ cxa_atexit - disable-libunwind-exceptions - -enable-languages ​​= c, C++, objc, obj-c + +, java, fortran, ada --able-java-awt = gtk - désactivable-dssi --able- plugin --with-java-home = /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre - enable-libgcj -multiples --enable-java-maintainer-mode --with-ecj-jar =/ usr/share /java/eclipse-ecj.jar --disable-libjava-multilib --with-pp l - avec-cloog --with-tune = --with-arc générique = i586 --build = i586-linux redhat-
modèle du fil: posix
version gcc 4.4.1 20.090.725 (Red Hat 4.4. 1-2) (GCC)

Ai-je manqué quelque chose sur mon noyau en ligne de commande? Ou est-ce le gcc présent sur le système ne supporte pas la compilation 64 bits ?

Répondre

5

Votre compilateur est de 32 bits.

+0

Où puis-je trouver 64 bits gcc? Ou comment compiler gcc pour supporter la compilation 64 bits? – vivekian2

+0

Après la construction d'un compilateur avec le support des bits x86_64, la construction du noyau a échoué néanmoins. J'ai essayé d'installer fedora core rpm pour kernel-devel-x86_64. Cela a échoué aussi. Cela a été causé par un ancien processeur P4 qui ne prend peut-être pas en charge 64 bits. – vivekian2

+0

oh, vous devez réinstaller complètement le système si vous voulez changer l'architecture de votre OS de 32 à 64 bits. Cependant, sur la plupart des processeurs 64 bits, tout 32bit continuera à fonctionner. –

4

Sur quel système travaillez-vous?

Si votre système hôte fonctionne en mode 32 bits, vous devrez créer un compilateur croisé ciblant x86_64. Si votre système est un système 64 bits, votre fournisseur devrait vous fournir un compilateur système capable de construire des exécutables 64 bits.

Que signifie "uname -a" sur votre système?

+0

Je suis assez sûr qu'il fonctionne en mode 32 bits. uname -a Linux hôte.vivekian.com 2.6.29.4-167.fc11.i586 # 1 SMP Wed 27 mai 17:14:37 HAE 2009 i686 i686 i386 GNU/Linux Comment puis-je créer gcc pour cibler x86- 64? – vivekian2

Questions connexes