LINUX.ORG.RU

cross-compile, glibc, gcc, binutils, непонятно ничего :)


0

0

Есть задача: с нуля построить систему для армов. Как я понял, для этого мне нужно: glibc, gcc, gdb. Кроме того, на таргете должен быть полноценный линукс, а не красивая поделка которую предлагает Cirrus. Какая-то часть пути пройдена: есть рабочий бинарник ядра, нужен init, bash, библиотеки. Т.к. в линухе я полный профан, работаю в основном методом тыка...

Каким образом компилить glibc? В ./configure --help есть строчки --build=target --host= Насколько я понимаю, там нужно написать соответственно таргет, т.е. арм, и хост, т.е. i686 или что-то подобное... И компилиться это, наверное, должно кросс-компилятором? Кросс-компилятор скачан с сайта цирруса, дело осталось за компиляцией библиотек и необходимых утилит типа ldconf bash и тп... Если в мэйкфайле ядра можно было указать чем сие хозяйство компилить, то похожей строчки для glibc я не нашел...

И еще хотелось бы задать такой вопрос: binutils что вообще делают? :) В мануале написано что это набор компиляторов, линкеров и тп. Так вот что ими компилировать нужно? :)

П.С. Прощу прощенья за нубские вопросы =) П.П.С. таргет на проце ARM920T

man Google -> LFS -> CLFS -> по аналогии.

e
()

Тебе очень поможет книга Cross Linux from Scratch: http://trac.cross-lfs.org/

Там нет прямых инструкций по сборке под ARM, но действуя по
аналогии все получится: я собирал для очень хитрой железки
от Marvell и вроде как работает. Собирал я по инструкции для ppc.
Если есть вопросы - задавай - задача не самая тривиальная.

jr_A
()

Не получается что-то скомпилить glibc ./glibc-2.4/configure --enable-add-ons --prefix=/usr --build=arm-linux --host=i686-pc-linux-gnu CC=/usr/local/arm/3.4/bin/arm-linux-gcc

В начале меня насторожила строчка: linuxthreads disabled because nptl add-on is also in use

Потом вот такая ошибка: configure: error: compiler support for __thread is required

Пробовал --without-__threads --disable-nptl ну и множество других вариантов... Задача - скомпилить glibc для ARM920T...

Компилятор лежит в /usr/local/arm/3.4/

forgotten
() автор топика
Ответ на: комментарий от forgotten

Может это и запоздалый ответ, однако:

не стоит птаться собрать glibc одновременно с linuxthreads и nptl - они\
друг друга не переваривают :)

Кроме того, по умолчанию в glibc нет поддержки armv5, для того что бы
она появилась тебе нужен glibc-ports, которую надо распаковать и
положить в корень сорсов glibc и собирать с опцией
--enable-addons=nptl,ports

Кроме того устанавливать ее надо в отдельный каталог, а не в /lib, /usr
относительно корня fs для arm. Потом сделаешь линки на нее из
правильных мест.

И вообще: документацию читай пожалуйста - много интересного узнаешь.

jr_A
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.