компиляциия кросс компилятора gcc (нужен gcc, чтобы на обычной машине можно было собирать под powerpc-88x)

Модератор: Модераторы разделов

andrey293
Сообщения: 7

компиляциия кросс компилятора gcc

Сообщение andrey293 »

Всем привет.
Возникла необходимость собрать кросс gcc.
В инете везде написан следующий алгоритм:
1. Компилирование binutils под целевую систему
2. Компиляция gcc, с отключенными опциями (отключены потоки --disable-threads, отключены все языки помимо c и т.п.)
3. Компиляция glibc под целевую платформу
4. Компиляция gcc с необходимыми функциями

Возникает ряд вопросов:
1. Зачем выполнять шаг 2, если можно выполнить сразу шаг 4, а затем уже шаг 3?
2. при конфигурации glibc существует параметр --with-headers=... Непонятно какие headers здесь указывать и вообще надо ли их указывать?
3. аналогичный параметр есть и при конфигурации gcc. Зачем же он все таки нужен?

Если знаете, помогите плииз!
Спасибо сказали:
Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

Re: компиляциия кросс компилятора gcc

Сообщение cy6erGn0m »

Нельзя выполнить шаг четыре, потому что шаг четыре требует наличие glibc, а её нет. Стало быть её надо собрать (шаг три), но чтобы это сделать нужен хоть какой-то gcc. Потому и делают шаг 2.

2. Речь о заголовках ядра. В инструкциях по сборее gcc cross toolchain всегда описывается шаг по их извлечению
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали:
Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

Re: компиляциия кросс компилятора gcc

Сообщение cy6erGn0m »

Вот давно натыкался на статью одну на русском, очередная пошаговая инструкция.

http://mdf-i.blogspot.com/2008/01/arm-linux-toolchain.html
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали:
andrey293
Сообщения: 7

Re: компиляциия кросс компилятора gcc

Сообщение andrey293 »

Спасибо за ответы

1. Зачем для компиляции gcc нужен gllibc?
glibc - рантайм библиотека C, необходима для исполнения приложений. Для компиляции приложений она не нужна, подключается только на этапе линковки.
Я выполнил шаг 1 и шаг 4 - компилятор нормально собрался.

2. "Речь о заголовках ядра." как понял заголовки ядра целевой машины.
В моем случае это специальная сборка:
Linux version 2.4.26 (Synel@Drivers version 1.5) (gcc version 3.3.3) #Suul 8 16:53:58 JDT 2007
Надо трясти разработчиков или можно взять стандартные заголовки ядра 2.4.26?
Спасибо сказали:
agreed
Сообщения: 143
ОС: Fedora 10, Mac OS X 10.5

Re: компиляциия кросс компилятора gcc

Сообщение agreed »

Не знаю, актуально ещё или нет...
Буквально две недели назад тоже собирал кросстулкит. И тоже под PPC, правда под 750-й.
В этом в очередной раз выручил вот этот набор: http://www.kegel.com/crosstool/
Осваивается за 15 минут, тулкит собирается автоматически за час.
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: компиляциия кросс компилятора gcc

Сообщение sash-kan »

не могу не намекнуть на проект emdebian:
http://www.emdebian.org/tools/crosstools.html
есть вагон готовых toolchain-ов, есть и средства, упрощающие (как и принято в debian) сборку собственных: http://www.emdebian.org/tools/crossdev.html
«освоения» не требуется, можно просто следовать весьма коротким инструкциям.
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
ormorph
Сообщения: 3335
ОС: Gentoo

Re: компиляциия кросс компилятора gcc

Сообщение ormorph »

на счет заголовочников вот вырезка из HOWTO по LFS 4.0 на ядро ветки 2.4

Код: Выделить всё

make mrproper &&
make include/linux/version.h &&
make symlinks &&
mkdir /usr/include/asm &&
cp include/asm/* /usr/include/asm &&
cp -R include/asm-generic /usr/include &&
cp -R include/linux /usr/include &&
touch /usr/include/linux/autoconf.h


не мешало бы почитать это HOWTO. есть описание и на русском.
ну и можно использовать для сборки уже готовые пакеты исходников от LFS.
Только если делаешь под платформу, отличную от той, на которой находишься, можно немного подправить файл Makefile: принудительно прописать переменную ARCH например ARCH :=ppc
Спасибо сказали:
Аватара пользователя
cy6erGn0m
Сообщения: 119
ОС: MandrivaLinux/Solaris 10

Re: компиляциия кросс компилятора gcc

Сообщение cy6erGn0m »

andrey293 писал(а):
27.05.2009 08:38
Спасибо за ответы

1. Зачем для компиляции gcc нужен gllibc?
glibc - рантайм библиотека C, необходима для исполнения приложений. Для компиляции приложений она не нужна, подключается только на этапе линковки.
Я выполнил шаг 1 и шаг 4 - компилятор нормально собрался.


Чудес не бывает. Нельзя собрать полность готовый тулчейн. Шаг 4 нельзя выполнить без 3. Если выполнилось, значит что-то не то собрали. Попробуйте этот gcc который получился, он наврняка генерирует что-то не то.

По поводу уже готовых кросскомпиляторов. Действительно, кегель вполне рабочая штука. emdebian и openembedded тоже никто не отменял.
I want to Believe!

They must find it difficult...
Those who have taken authority as the truth,
Rather than trusth as the authority.
/G.Messey/
Спасибо сказали: