Jump to content

    
Sign in to follow this  
Tarbal

GCC for ARM 64-bit

Recommended Posts

Думал, что легко найду 64 битный кросс компилятор для АРМ, но не тут-то было. Кто-нибудь имел дело с подобным? Как бы строить самому не пришлось :(

Share this post


Link to post
Share on other sites
В этой теме как раз 64-бит, по просьбе KLEN может под windows сделать.
Но зачем? Почему не использовать сборки, официально созданные и поддерживаемые создателями ядра?

 

Плюс, насколько я понимаю речь идет о AArch64, про который в той теме ничего нет (тут могу ошибаться, быстро просмотрел).

 

И если нужно для МК, то опять-же официальные релизы лучше брать тут https://launchpad.net/gcc-arm-embedded

 

Share this post


Link to post
Share on other sites

 

 

У меня закончилось с такой ошибкой

 

home/rain/gcc-linaro-4.9-2014.11-x86_64_arm-eabi/bin/../lib/gcc/arm-none-eabi/4.9.3/../../../../arm-none-eabi/bin/ld: error: no memory region specified for loadable section `.note.gnu.build-id'

 

этот же самый проект с компилятором 5.3 от ланчпада - ошибок нет...

Share this post


Link to post
Share on other sites
этот же самый проект с компилятором 5.3 от ланчпада - ошибок нет...
Я по историческим причинам использую ланчпад для МК и линаро для линукса.

 

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

 

В данном случае компилятор собран с опцией --enable-linker-build-id. Я не уточнял, но опция как-то помогает с отладочной информацией.

 

Для починки компиляции нужно либо выключить это через опцию линкера " --build-id=none".

 

Или добавить такую секцию в скрипт:

.note.gnu.build-id :

{

. = ALIGN(4);

PROVIDE( _note = .);

*(.note.gnu.build-id)

. = ALIGN(4);

*(.note.gnu.build-id.*);

. = ALIGN(4);

PROVIDE( _enote = .);

} > flash

Не уверен, что ей действительно нужно находиться во флеше, но это нужно читать, что именно делает --enable-linker-build-id.

 

Share this post


Link to post
Share on other sites
Не уверен, что ей действительно нужно находиться во флеше, но это нужно читать, что именно делает --enable-linker-build-id.

 

Почитал. Опция добавляет уникальный хеш (SHA1 или MD5) к бинарникам. Может быть полезно в некоторых случаях, в остальных

LDFLAGS += -Wl,--build-id=none

 

Share this post


Link to post
Share on other sites
Что плохого в самостоятельном строительстве?

 

Во-первых и так много чего делать надо.

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

В-третьих появляется еще один элемент в котором возможны ошибки, неподходящие опции и т.д.. Я например до конца не осознаю чем bare metal и linux отличаются. Нет. То что везде написано я много раз читал, и где и как использовать знаю, а как строить тот или иной компилятор мне надо исследование проводить.

В-четвертых если делать правильно, то надо много чего почитать по теме, а времени на это нет.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this