Поддержка Pthread для Power arch в цепочке инструментов Codesourcery в Windows

Инструментальная цепочка Codesourcery для powerpc на IA32 Windows раньше имела папку libc и поддержку pthreads среди прочего. Теперь Codesourcery от Mentor Graphics использует newlibc, поэтому каталог libc (в котором есть librt.a и libpthread.a) опущен. Чтобы собрать приложение для ядра powerpc e500v2 в Windows, мне нужно связать его с параметрами -lrt и -lpthread. Я пробовал различные варианты, используя набор инструментов от Mentor Graphics Codesourcery и добавляя библиотеки libc ( libpthread, librt) из

1> Toolchain for Applied Micro Circuits (AMCC), который поддерживает pthread для e500 mc и других ядер PowerPC, но код, созданный для e500mc, на данный момент нельзя использовать для e500v2. Поэтому добавление их libpthread.a в набор инструментов для e500v2 дает ошибку

Ссылка TLS в ../../..\libpthread.a(pthread_create.o) не соответствует ссылке не-TLS в powerpc-eabi/lib\libc.a(lib_a-reent.o)

2> Набор инструментов для e500v2 для Linux от Codesourcery, ELDK и т. д. имеет поддержку pthread для Linux, использование этих libpthread.a и librt.a также приведет к вышеупомянутой ошибке. Упоминается, что ошибки ссылки, не относящиеся к TLS, могут быть удалены в приведенной ниже ссылке, но я не смог найти никакого успеха после выполнения этих

http://www.linuxquestions.org/questions/linux-general-1/ld-errno-tbss-mismatches-non-tls-reference-588894/

Библиотека Red Hat newlib C, которая используется во всех цепочках инструментов исходного кода для Windows, не поддерживает pthread для платформы powerpc-eabi (но для Linux в цепочке инструментов ELDK есть поддержка pthread для e500V2).

Я пытаюсь построить для бесплатной оценочной платы P1010-RDB.

Что можно сделать, чтобы получить поддержку pthread для ядра powerpc e500v2 с помощью Codesourcery EABI, размещенного в Windows IA32?


person Vijay Katoch    schedule 15.08.2013    source источник
comment
Возможно, вы перепутали наборы инструментов PPC для голой машины и Linux?   -  person ams    schedule 16.08.2013
comment
да, это было так. Спасибо за помощь.   -  person Vijay Katoch    schedule 19.08.2013


Ответы (1)


Если вам нужны pthreads, то @ams, вероятно, прав, и вы перепутали «голое железо» и платформы Linux. Вероятно, вам нужна цепочка инструментов Windows Power GNU/Linux: https://sourcery.mentor.com/GNUToolchain/release1785

newlib используется только в вариантах набора инструментов для «голого железа», и, поскольку вариант EABI предназначен для приложений с «голым железом», реализация pthread не предусмотрена.

person Brad Dixon    schedule 16.08.2013
comment
приведенная выше ссылка ведет меня к Sourcery G++ Lite 2011.03-38. Я не могу найти эту конкретную версию на сайте Mentor Graphics. Для архитектуры питания доступны только версии EABI «бесплатно». Я вижу версии, отличные от 2011.03-38, в Power GNU/Linux с хостом Windows в качестве «оценочной» версии, но ни одна из них не является облегченной/бесплатной. Где я могу найти бесплатные/облегченные версии после 2011.03-38? - person Vijay Katoch; 19.08.2013
comment
К сожалению, это является самым последним выпуском для этой комбинации архитектуры и ОС. Причина, вероятно, в том, что наборы инструментов Lite в основном спонсируются третьими лицами, и это спонсорство приходит и уходит. - person ams; 20.08.2013