Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: arm gcc
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Linux
federal
Кто нибудь сам собирал gcc?

Всегда используют кросс компилятор. Да, для разработки этого достаточно.
Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.

Теперь вопрос, как его собрать?

Гуглил достаточно много, конкретных статей не нашел как это сделать. Много статей именно про кросс тулчейн.

Нашел, что при сборке тулчейна --target должен быть равен --host. А --build = той системе, где происходит сборка.

Хотел узнать у сообщества, как мне собрать такой gcc для арма? чтобы компилятор и запускался на арме и генерировал код для себя же, т.е. для арма.

Можно ли собрать такой компилятор при помощи CodeSourcery?

--
С уважением
Tarbal
Цитата(federal @ Oct 30 2013, 22:24) *
Кто нибудь сам собирал gcc?

Всегда используют кросс компилятор. Да, для разработки этого достаточно.
Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.

Теперь вопрос, как его собрать?

Гуглил достаточно много, конкретных статей не нашел как это сделать. Много статей именно про кросс тулчейн.

Нашел, что при сборке тулчейна --target должен быть равен --host. А --build = той системе, где происходит сборка.

Хотел узнать у сообщества, как мне собрать такой gcc для арма? чтобы компилятор и запускался на арме и генерировал код для себя же, т.е. для арма.

Можно ли собрать такой компилятор при помощи CodeSourcery?

--
С уважением


На Убунту он устанавливается (возможно даже и сразу стоит) командой:
sudo apt-get install gcc

Только кросс-компилятор круче. На более сильном компьютере позволяет быстрее генерировать код.

Еще способ:
Установить LTIB. Фрискейл дают образ диска для виртуальной машины с уже установленным.
Там в конфигурации можно выбрать и скомпилировать.

Другой способ на этом сайте можно заказать построить все что угодно.
http://www.timesys.com/
federal
Tarbal,
вы меня не поняли.

Я в курсе, что можно скачать ангстромовские и убунтовские пакеты для gcc.
Цель моя - самостоятельно собрать его.
Enthusiast
Цитата(federal @ Oct 30 2013, 22:24) *
Кто нибудь сам собирал gcc?

В "Дженту" кросс-компилятор собирается из исходников вводом всего двух команд в консоли: тынц. Приятно порадовало, что при установке обновлений операционной системы кросс-компилятор пересобирается и обновляется самостоятельно. Я собирал компилятор для "АРМов", все работает отлично.
federal
речь не про кросс-компилятор
alx2
Цитата(federal @ Oct 30 2013, 23:24) *
Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.

Не понимаю, какая связь между отладкой и наличием нативного gcc...
Я прекрасно отлаживаю в целевом устройстве код, собранный кросс-компилятором на персональном компьютере...
xor.kruger
Цитата
Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.

Buildroot Вам в помощь sm.gif BR2_PACKAGE_GCC_TARGET - опция в Buildroot которую необходимо установить.
federal
Цитата(alx2 @ Oct 31 2013, 10:22) *
Не понимаю, какая связь между отладкой и наличием нативного gcc...

отладка имелась ввиду конечное устройство.

Цитата(alx2 @ Oct 31 2013, 10:22) *
Я прекрасно отлаживаю в целевом устройстве код, собранный кросс-компилятором на персональном компьютере...

суть не в отладке.

по теме, как собрать?
у кросс компилятора свой glibc
на целевой плате - свой

при сборке пишут, что собирать нужно вообще новый и с ним линковать нативный gcc



Цитата(xor.kruger @ Oct 31 2013, 12:55) *
Buildroot Вам в помощь sm.gif BR2_PACKAGE_GCC_TARGET - опция в Buildroot которую необходимо установить.

с Buildroot не хотелось бы связываться, хочется самому собрать без Buildroot
xor.kruger
Цитата
с Buildroot не хотелось бы связываться, хочется самому собрать без Buildroot

Можно посоветовать Вам книжицу "Embedded Linux system design and development". В ней описан путь сборки собственного кросс-компилятора, но можно место нативного компилятора указывать применение Вашего кросс-компилятора.
Хотя в книге описаны только самые основные шаги, возни будет ну оооочень много...
federal
xor.kruger, спасибо за совет. Книгу читал.
Как кросс gcc собрать - тут все прозрачно и понятно.

вопрос именно в том, что для нативного gcc собирать glibc надо?
вообще, по логике, не нужно, ибо придется кроме gcc пересобирать всю систему.

мне так же не понятно, есть CodeSourcery, при кросскомпиляции он линкуется с либами(glibc и т.д.), которые идут вместе с CodeSourcery.
на целевой платформе glibc может быть другой(у меня другая).
обычные user-space приложения, собранные при помощи CodeSourcery на целевой плате запускаются и никаких ошибок.

кросскомпилирую binutils, когда --target равен --host, компилирую успешно.
Enthusiast
Цитата(federal @ Oct 31 2013, 09:07) *
речь не про кросс-компилятор

Тогда почему бы на целевом устройстве просто не ввести команду: "emerge gcc"? Исходники под целевое устройство скачаются сами вместе с зависимостями. Зачем ломать себе мозг?
Tarbal
Цитата(federal @ Oct 31 2013, 14:27) *
xor.kruger, спасибо за совет. Книгу читал.
Как кросс gcc собрать - тут все прозрачно и понятно.

вопрос именно в том, что для нативного gcc собирать glibc надо?


libc.so в обоих случаях используется тот же самый, потому как он динамически линкуемый.
Для статической линковки libc.a надо указать ключ при компиляции апликации.

Цитата(federal @ Oct 31 2013, 12:59) *
у кросс компилятора свой glibc
на целевой плате - свой


По умолчанию один и тот же. Он должен стоять на обеих платформах, но на рабочей машине чисто для линковки. Исполняться будет всегда тот, что стоит на таргет машине.
federal
Цитата(Tarbal @ Oct 31 2013, 19:26) *
libc.so в обоих случаях используется тот же самый, потому как он динамически линкуемый.
Для статической линковки libc.a надо указать ключ при компиляции апликации.

так оно и есть

Цитата(Tarbal @ Oct 31 2013, 19:26) *
По умолчанию один и тот же. Он должен стоять на обеих платформах, но на рабочей машине чисто для линковки. Исполняться будет всегда тот, что стоит на таргет машине.

я тоже так считал, да и считаю...
но на деле не совсем так. объясню почему.

вы можете поставить CodeSourcery, иметь из целевой фс либы, скажем, из /usr/lib, но не иметь glibc.
и вы удачно скомпилируете приложение, явно компилятору не указывая, где ваш целевой glibc лежит. Такой фокус не проходит, скажем, с pthread. А вот с glibc проходит. И вы успешно запустите ваше приложение.

вот тут то и возник у меня этот вопрос, ибо, используя старенький glibc на целевой платформе и собирая нативный тулчейн, происходит путаница с glibc. А собирая новый glibc, придется пересобирать всю систему.
,
Tarbal
А какой у вас Линукс?

Есть книга, где описано как самому строить Линукс. Посмотрите там.
http://www.linuxfromscratch.org/#
federal
ядро 3.5.5
по lfs и собираю
federal
тему можно закрыть, все собрал наконец-таки
temiru
совсем недавно перешел с ардуино на АРмовский кортекс
Tarbal
Цитата(federal @ Nov 5 2013, 10:26) *
тему можно закрыть, все собрал наконец-таки


Так выложите процедуру. Может кому понадобиться.
Paramon
Цитата(Tarbal @ May 7 2016, 18:20) *
Так выложите процедуру. Может кому понадобиться.

Очень хочу чтобы GCC был на самом устройстве UC-7112-LX_Plus(IA240). Не редко требуется именно на самом устройстве
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.