LINUX.ORG.RU

Пересборка GCC


0

0

Кто-нибудь собирал GCC для кросс-компиляции.
Нужно собирать на x86 проги под ARM.

У меня при сборке жалуется на отсутствие (и ее реально нет) crti.o
Откуда эта библиотека? Что я еще не собрал? :)
★★★★

К сожалению про кросскомпиляцию под x86 из ARM не скажу, но crti.o в моей системе это часть glibc. В свое время компилял кое-что из-под x86 для avr, тогда пришлось ставить avr-libc, avr-binutils и gcc-avr. То есть тебе скорее всего нужно найти x86-libc, или что-нибудь в этом роде :)

Rikz ★★★
()
Ответ на: комментарий от Rikz

Мне как-раз наоборот надо на x86 собирать под ARM.

должнл-быть Glibc у меня собрана криво :)
Система LFS. Пока не могу ничего нормального найти под рукой.

Спасибо :)

alexru ★★★★
() автор топика

когда-то я в этот форум писал как собирать кросскомпайлер под arm. набери поиск. в общем смысл в том, что тебе нужно взять откуда-то бинарники glibc под arm (ну например из debian'на), потом собрать кросс-binutils и потом уже gcc

Reset ★★★★★
()

собирал недавно и avr-gcc и arm-elf-gcc

Просит он crti.o, когда конфигурирует libiberty. Я собирал так: сначала binutils, с ними никаких проблем. потом gcc ./configure --enable-languages="c" && make. Тогда он не конфигурирует libiberty.

Потом собирал и устанавливал newlib, он добавлял как раз crti.o

Потом собирал gcc ./configure --enable-languages="c,c++" && make. Этим я получал еще и с++.

Но потом я плюнул и собирал таким патчем:

--- gcc-4.1-20050403-s/configure 2005-04-10 01:12:18.000000000 +0300

+++ gcc-4.1-20050403/configure 2005-03-30 15:25:24.000000000 +0300 @@ -1234,7 +1234,7 @@

noconfigdirs="$noconfigdirs ${libgcj}"

;;

arm-*-elf* | strongarm-*-elf* | xscale-*-elf* | arm*-*-eabi* )

- noconfigdirs="$noconfigdirs target-libffi target-qthreads"

+ noconfigdirs="$noconfigdirs target-libffi target-qthreads target-libiberty target-libstdc++-v3 ${libgcj}"

;;

arm*-*-symbianelf*)

noconfigdirs="$noconfigdirs ${libgcj} target-libiberty"

smartly ★★★
()
Ответ на: комментарий от smartly

diff попортился, в общем суть в строке файла configure:

noconfigdirs="$noconfigdirs target-libffi target-qthreads target-libiberty target-libstdc++-v3 ${libgcj}"

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