LINUX.ORG.RU

Кросскомпиляция tips & tricks

 


1

3

Вопрос простой, в своё время смотрел, как люди работали с ARM STM32-Discovery и меня поражало что во всех инструкциях в интернете не использовались пакеты, предназначенные для кросскомпиляции из состава тех же дистрибутивов(binutils-arm например).

Сейчас мне необходимо кросскомпилировать под DOS и хотелось бы это сделать не костыльно и организовать все библиотеки и прочее в удобоваримой форме.

Кто как и чем организует кросскомпиляцию.

Перемещено mono из talks

★★★★★
Ответ на: комментарий от XVilka

Debian stable , буду мутить с djgpp

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

Просто как правило, кроссом занимаются полтора анонимуса, мейнтейнеров нет, и кроссовки в дистрах собраны левой пяткой под упорином.
А кросстул-нг позволяет потюнинговать как следует кросс, и сделать хорошо оптимальную штуку под твою именно борду.

AiFiLTr0 ★★★★★
()

Сорри за занудство, кросс-компиляция это под другую платформу, а под DOS это просто другой формат бинаря.

А вот то что тулчейны для кросс-компиляции в дистрибутивы не входят обычно, это правда. Но тут есть нюанс, на практике случается, что для того чтобы построить проект нужен не только определенный тулчейн, но и определенная его версия, порой не самая свежая. :-)

elijah_sd
()
Ответ на: комментарий от AiFiLTr0

Смысл затеи для меня это понять как , правильные разработчики организуют своё рабочее место и чтобы это выглядело, устанавливалось и обновлялось нормально.

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

Емнип com формат под DOS - почти что объектный файл, очень простой, без заголовка и только .text секция. Есть подозрение, что из обычного объектника собранного gcc можно слепить досовский com руками. Сам не пробовал, если ошибся поправьте.

elijah_sd
()

Во-первых, тулчейны есть, на сколько мне известно, только в дебиане и генте. В генте тулчейн можно собрать какой угодно - с glibc, uclibc и под любую архитектуру. Во-вторых, версия gcc играет огромную роль. Поэтому собственный тулчейн это хардкорно. Если тебя все устраивает в тулчейне из коробки - мы рады за тебя.

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

Не получится. Код нужен 16-битный, потом библиотеки, dpmi и т.д.

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

из обычного объектника собранного gcc можно слепить досовский com руками

Ага, если он влезет в 64 КиБ.

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

чтобы это выглядело, устанавливалось и обновлялось нормально

Как уже сказали выше, когда делаешь какой-то реальный проект, чаще всего приходится брать какую-то определенную версию тулчейна. Поэтому проблема обновления отпадает сама собой...

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

solovey ★★
()

За dos не скажу, а вообще самый простой вариант кросскомпиляции на данный момент: clang с опцией --sysroot. Второй по тривиальности способ - usermode qemu.

anonymous
()

как люди работали с ARM STM32-Discovery

в данном случае различие в реализации libc для OS и bare-metal, к примеру реализация printf - в ОС будет вызов системной ф-ции ядра которая через драйверы устройств обратится к «железу», на bare-metal для этого должны быть реализованы простейшие ф-ции типа putchar(c) для конкретного процессора. + различие в обработке исключений типа деление на ноль - в ОС этим занимается ядро ОС, в bare-metal этим должен заниматься какой-то код, например библиотечный из состава кросскомпилятора.

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