LINUX.ORG.RU

Кросскомпиляция libstdc++ под ARM


0

0

Пытаюсь кросскомпилировать libstdc++ под ARM Пользуюсь кросскомпилятором из Linux From Scratch

#> ./configure --host=arm-unknown-linux-gnu configure: WARNING: If you wanted to set the --build type, don't use --host. If a cross compiler is detected then cross compile mode will be used. checking build system type... i686-pc-linux-gnu checking host system type... arm-unknown-linux-gnu

...

arm-unknown-linux-gnu-g++ -Winvalid-pch -Wno-deprecated -x c++-header -I/home/armusr/mlib/include/arm-unknown-linux-gnu -I/home/armusr/mlib/include -I/home/armusr/mlib/libsupc++ -I/home/armusr/mlib/libgcc /home/armusr/mlib/include/stdc++.h -O2 -g -o ./bits/stdc++.h.gch/O2g.gch; In file included from /home/armusr/mlib/include/bits/gthr.h:114, from /home/armusr/mlib/include/bits/c++io.h:38, from /home/armusr/mlib/include/iosfwd:46, from /home/armusr/mlib/include/bits/stl_algobase.h:69, from /home/armusr/mlib/include/algorithm:65, from /home/armusr/mlib/include/stdc++.h:51: /home/armusr/mlib/include/bits/gthr-default.h:88: error: weakref 'int __gthrw_pthread_once(pthread_once_t*, void (*)())' must have static linkage /home/armusr/mlib/include/bits/gthr-default.h:89: error: weakref 'void* __gthrw_pthread_getspecific(pthread_key_t)' must have static linkage

...

make: *** [bits/stdc++.h] Error 1

Кто-либо уже имел удовольствие видеть такое? Или может ли кто-нибудь объяснить смысл данной ошибки?

Зарание спасибо, Александр.

anonymous

Попробуй лучше buildroot. Там всё компилируется без проблем.

dmitry-vm
()

подозреваю что вместо --host=arm-unknown-linux-gnu надо что-то типа --host=arm-linux-elf --host=arm-linux-gnu

просто дело в том что как мне кажется проблема может быть из за того что чтоб собрать libstdc++ этой штуке нужна привязка к OS и пр

скажем даже при сборке самого кросскомпилятора вручную (можно crosstool использовать) даже сама libgcc доконца не соберется тк нужна привязка ксистемным вызовам и пр особенностям для ввода/вывода и тому подобного а либстд-си++ он аеще шаред меймори исполльзует и обычно это все берется из хедеров ядра итд

скажем для --host=arm-unknown-elf при ручной сборке собрать libstdc++ - будет большой проблемой, поэтом удля микроконтроллеров АТмел это сденлать непросто

вообще советую crosstool попробовать если хочется всякой экзотики - это пакет автоматизации сборки гну тулчейна который и либы в себя включает

такм можно выбрать в конфигк какую либси поддержку каких языков и пр и всеравно не все комбинации собираются!

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

anonymous
()

Дали отличную ссылку на хеви-онлайн, человечек просто до костей мозга разложил всё. А на какой платформе сидите, что за плата, какой проц?

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

Проц, проц.. Положим, проц абстрактный. )

Немного уточню:

Тулчейн у меня уже имеется.

Задача - взять libstdc++ как отдельный кусок и кросскомпилить ее под arm.

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

А в libstdc++ - ругается на gthr-default.h

При попытке присобачить gthr-default.h к хелло-ворлду, никаких ошибок не выдается.

Такие дела. :/

С уважением, Александр.

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

Немного уточню:

Тулчейн у меня уже имеется.

Задача - взять libstdc++ как отдельный кусок и кросскомпилить ее под arm.

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

А в libstdc++ - ругается на gthr-default.h

При попытке присобачить gthr-default.h к хелло-ворлду, никаких ошибок не выдается.

Такие дела. :/

С уважением, Александр.

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