|
arm gcc, кто сам пробовал собирать? |
|
|
|
Oct 30 2013, 18:24
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
Кто нибудь сам собирал gcc?
Всегда используют кросс компилятор. Да, для разработки этого достаточно. Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.
Теперь вопрос, как его собрать?
Гуглил достаточно много, конкретных статей не нашел как это сделать. Много статей именно про кросс тулчейн.
Нашел, что при сборке тулчейна --target должен быть равен --host. А --build = той системе, где происходит сборка.
Хотел узнать у сообщества, как мне собрать такой gcc для арма? чтобы компилятор и запускался на арме и генерировал код для себя же, т.е. для арма.
Можно ли собрать такой компилятор при помощи CodeSourcery?
-- С уважением
|
|
|
|
|
Oct 30 2013, 19:02
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(federal @ Oct 30 2013, 22:24)  Кто нибудь сам собирал gcc?
Всегда используют кросс компилятор. Да, для разработки этого достаточно. Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc.
Теперь вопрос, как его собрать?
Гуглил достаточно много, конкретных статей не нашел как это сделать. Много статей именно про кросс тулчейн.
Нашел, что при сборке тулчейна --target должен быть равен --host. А --build = той системе, где происходит сборка.
Хотел узнать у сообщества, как мне собрать такой gcc для арма? чтобы компилятор и запускался на арме и генерировал код для себя же, т.е. для арма.
Можно ли собрать такой компилятор при помощи CodeSourcery?
-- С уважением На Убунту он устанавливается (возможно даже и сразу стоит) командой: sudo apt-get install gcc Только кросс-компилятор круче. На более сильном компьютере позволяет быстрее генерировать код. Еще способ: Установить LTIB. Фрискейл дают образ диска для виртуальной машины с уже установленным. Там в конфигурации можно выбрать и скомпилировать. Другой способ на этом сайте можно заказать построить все что угодно. http://www.timesys.com/
|
|
|
|
|
Oct 30 2013, 19:04
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
Tarbal, вы меня не поняли.
Я в курсе, что можно скачать ангстромовские и убунтовские пакеты для gcc. Цель моя - самостоятельно собрать его.
|
|
|
|
|
Oct 31 2013, 04:58
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 25-09-09
Из: Nizhny Novgorod, Russia
Пользователь №: 52 588

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

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
речь не про кросс-компилятор
|
|
|
|
|
Oct 31 2013, 06:22
|

Местный
  
Группа: Участник
Сообщений: 340
Регистрация: 25-10-05
Из: Пермь, Россия
Пользователь №: 10 091

|
Цитата(federal @ Oct 30 2013, 23:24)  Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc. Не понимаю, какая связь между отладкой и наличием нативного gcc... Я прекрасно отлаживаю в целевом устройстве код, собранный кросс-компилятором на персональном компьютере...
--------------------
Всего наилучшего, Alex Mogilnikov
|
|
|
|
|
Oct 31 2013, 08:55
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647

|
Цитата Но, наверное, у многих рано или поздно возникало желание заиметь на отладке родной gcc. Buildroot Вам в помощь  BR2_PACKAGE_GCC_TARGET - опция в Buildroot которую необходимо установить.
|
|
|
|
|
Oct 31 2013, 08:59
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
Цитата(alx2 @ Oct 31 2013, 10:22)  Не понимаю, какая связь между отладкой и наличием нативного gcc... отладка имелась ввиду конечное устройство. Цитата(alx2 @ Oct 31 2013, 10:22)  Я прекрасно отлаживаю в целевом устройстве код, собранный кросс-компилятором на персональном компьютере... суть не в отладке. по теме, как собрать? у кросс компилятора свой glibc на целевой плате - свой при сборке пишут, что собирать нужно вообще новый и с ним линковать нативный gcc Цитата(xor.kruger @ Oct 31 2013, 12:55)  Buildroot Вам в помощь  BR2_PACKAGE_GCC_TARGET - опция в Buildroot которую необходимо установить. с Buildroot не хотелось бы связываться, хочется самому собрать без Buildroot
|
|
|
|
|
Oct 31 2013, 09:42
|

Местный
  
Группа: Свой
Сообщений: 290
Регистрация: 17-08-08
Из: Чернигов
Пользователь №: 39 647

|
Цитата с Buildroot не хотелось бы связываться, хочется самому собрать без Buildroot Можно посоветовать Вам книжицу "Embedded Linux system design and development". В ней описан путь сборки собственного кросс-компилятора, но можно место нативного компилятора указывать применение Вашего кросс-компилятора. Хотя в книге описаны только самые основные шаги, возни будет ну оооочень много...
|
|
|
|
|
Oct 31 2013, 10:27
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
xor.kruger, спасибо за совет. Книгу читал. Как кросс gcc собрать - тут все прозрачно и понятно.
вопрос именно в том, что для нативного gcc собирать glibc надо? вообще, по логике, не нужно, ибо придется кроме gcc пересобирать всю систему.
мне так же не понятно, есть CodeSourcery, при кросскомпиляции он линкуется с либами(glibc и т.д.), которые идут вместе с CodeSourcery. на целевой платформе glibc может быть другой(у меня другая). обычные user-space приложения, собранные при помощи CodeSourcery на целевой плате запускаются и никаких ошибок.
кросскомпилирую binutils, когда --target равен --host, компилирую успешно.
Сообщение отредактировал federal - Oct 31 2013, 11:27
|
|
|
|
|
Oct 31 2013, 15:04
|
Частый гость
 
Группа: Свой
Сообщений: 163
Регистрация: 25-09-09
Из: Nizhny Novgorod, Russia
Пользователь №: 52 588

|
Цитата(federal @ Oct 31 2013, 09:07)  речь не про кросс-компилятор Тогда почему бы на целевом устройстве просто не ввести команду: "emerge gcc"? Исходники под целевое устройство скачаются сами вместе с зависимостями. Зачем ломать себе мозг?
|
|
|
|
|
Oct 31 2013, 15:26
|
Профессионал
    
Группа: Свой
Сообщений: 1 351
Регистрация: 21-05-10
Пользователь №: 57 439

|
Цитата(federal @ Oct 31 2013, 14:27)  xor.kruger, спасибо за совет. Книгу читал. Как кросс gcc собрать - тут все прозрачно и понятно.
вопрос именно в том, что для нативного gcc собирать glibc надо? libc.so в обоих случаях используется тот же самый, потому как он динамически линкуемый. Для статической линковки libc.a надо указать ключ при компиляции апликации. Цитата(federal @ Oct 31 2013, 12:59)  у кросс компилятора свой glibc на целевой плате - свой По умолчанию один и тот же. Он должен стоять на обеих платформах, но на рабочей машине чисто для линковки. Исполняться будет всегда тот, что стоит на таргет машине.
|
|
|
|
|
Oct 31 2013, 16:13
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
Цитата(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, придется пересобирать всю систему. ,
|
|
|
|
|
Oct 31 2013, 18:31
|
Участник

Группа: Участник
Сообщений: 74
Регистрация: 12-01-13
Из: Нижний Новгород
Пользователь №: 75 160

|
ядро 3.5.5 по lfs и собираю
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|