0

IA32 Windows 上用于 powerpc 的 Codesourcery 工具链曾经有 libc 文件夹并支持 pthreads 等。现在来自 Mentor graphics 的 Codesourcery 使用 newlibc,因此省略了 libc 目录(具有 librt.a 和 libpthread.a)。要在 Windows 上为 powerpc e500v2 内核构建我的应用程序,我需要将它链接到 -lrt 和 -lpthread。我通过使用 Mentor graphics Codesourcery 中的工具链并从

1> 为 e500 mc 和其他 powerpc 内核提供 pthread 支持的 Applied Micro Circuits (AMCC) 工具链,但为 e500mc 构建的代码目前不能用于 e500v2。因此,在 e500v2 的工具链中添加他们的 libpthread.a 会出错

../../..\libpthread.a(pthread_create.o) 中的 TLS 引用与 powerpc-eabi/lib\libc.a(lib_a-reent.o) 中的非 TLS 引用不匹配

2> 来自 Codesourcery、ELDK 等的 linux 的 e500v2 工具链对 linux 有 pthread 支持,使用那些 libpthread.a 和 librt.a 也会产生上述错误。提到可以在下面的链接中删除非 TLS 参考错误,但是在遵循这些之后我找不到任何成功

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

用于 Windows 的所有 codesourcery 工具链中使用的 Red Hat newlib C 库不支持 powerpc-eabi 平台的 pthread(但对于 linux,ELDK 工具链支持 e500V2 的 pthread)。

我正在尝试为飞思卡尔 P1010-RDB 评估板构建。

如何使用托管在 IA32 Windows 上的 Codesourcery EABI 来获得对 powerpc e500v2 内核的 pthread 支持?

4

1 回答 1

2

如果您想要 pthreads,那么 @ams 可能是正确的,并且您将裸机和 Linux 平台混为一谈。您可能想要 Windows 主机 Power GNU/Linux 工具链:https ://sourcery.mentor.com/GNUToolchain/release1785

newlib 仅用于裸机工具链变体,并且由于 EABI 变体旨在用于裸机应用程序,因此没有 pthread 实现。

于 2013-08-16T18:16:12.277 回答