2009-09-03 3 views
1

При компиляции 64 битную Linux Kernel с помощью GCC, я вижу следующее сообщение об ошибке:компиляции 64 бит ядра Linux с GCC

ядро ​​/ bounds.c: 1: ошибка: код модели 'ядро' не поддерживается в режиме 32 битном
ядро ​​/ bounds.c: 1: извините, невыполненными: 64-битный режим не компилируется в

Это то, что Gcc -v отчеты:
Использование встроенных спецификации.
Цель: i586-redhat-linux
Конфигурировано с помощью: ../configure --prefix =/usr --mandir =/usr/share/man - infodir =/usr/share/info --with-bugurl = http://bugzilla.redhat.com/ bugzilla --enable-bootstrap --enable-shared --enable-threads = posix - enable-check = release --with-system-zlib --enable -__ cxa_atexit - disable-libunwind-exceptions - -enable-languages ​​= c, C++, objc, obj-c + +, java, fortran, ada --enable-java-awt = gtk --disable-dssi --enable- плагин --with-java-home = /usr/lib/jvm/java-1.5.0-gcj-1.5.0.0/jre - enable-libgcj-multifile --enable-java-maintainer-mode --with-ecj-jar =/ usr/share /java/eclipse-ecj.jar --disable-libjava-multilib --with-pp л - с -cloog --with-мелодии = общая --with-арка = i586 --build = i586-redhat- Linux
модель Автор:
POSIX GCC версии 4.4.1 20090725 (Red Hat 4.4. 1-2) (GCC)

Я что-то упустил на своем ядре в командной строке? Или это gcc присутствует в системе не поддерживает 64 бит компиляция?

ответ

5

Ваш компилятор 32-разрядный.

+0

Где я могу найти 64 бит gcc? Или как скомпилировать gcc для поддержки 64-битной компиляции? – vivekian2

+0

После создания компилятора с поддержкой бит x86_64 бит, тем не менее, сборка ядра завершилась неудачей. Я попробовал установить генераторный генератор rpm для ядра-devel-x86_64. Это тоже не удалось. Это был корень, который стал более ранним процессором P4, который, возможно, не поддерживает 64 бит. – vivekian2

+0

о, вы должны полностью переустановить систему, если хотите изменить архитектуру вашей ОС frm 32 до 64 бит. Однако на большинстве 64-битных процессоров все 32-разрядные будут работать. –

4

В какой системе вы работаете?

Если ваша хост-система работает в 32-битном режиме, вам придется построить таргетинг кросс-компилятора x86_64. Если ваша система - 64-битная система, то ваш поставщик должен предоставить вам системный компилятор, способный не создавать 64-битные исполняемые файлы.

Что означает «uname -a» в вашей системе?

+0

Я уверен, что он работает в 32-битном режиме. uname -a Linux host.vivekian.com 2.6.29.4-167.fc11.i586 # 1 SMP ср май 27 17:14:37 EDT 2009 i686 i686 i386 GNU/Linux Как создать gcc для целевой x86- 64? – vivekian2