gpt4 book ai didi

c - 用于为索尼阅读器 prs900 编译/交叉编译 gcc 的 binutils

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:20:35 25 4
gpt4 key购买 nike

我有一个 root 的索尼阅读器 PRS900,运行 OEM linux 内核 2.6.23,我可以从上面的 SD 存储卡驱动器运行任意 bash/sh 脚本。我想编译和执行 C 程序...但遇到动态链接器问题。

我首先尝试在 SD 卡上为 arm(slackware 14's)加载 gcc,但即使使用 LD_LIBRARY_PATH,索尼也无法“找到”最新的 elf .so 库,尽管使用旧库的新程序实际上可以找到正常运行。 (我可以很好地运行 slackware-14 的“readelf”。但不能运行 ar 或 gcc...)如果我尝试升级/lib/ld-linux.so.3,我会收到“内核太旧”的错误消息。

然后我尝试了旧的 slackware 10 版本的 gcc,虽然这解决了 elf 库“查找”问题——然后我在运行程序时遇到“非法指令”错误。

所以——我需要在我的 x86 上为合适的 ARM 处理器制作一个 gcc 交叉编译器,然后用它为 sony 重新编译 gcc。但我不知道我必须使用哪个旧版本的 binutils,因为它组装并链接到 ELF 格式,该格式在索尼上工作或中断。

Sony 正在运行兼容 arm6 的 MX31 EBX5016 处理器。sony 上一些相关的 OEM 文件名是:

/lib/ld-2.5.so
/lib/ld-linux.so.3 -> ld-2.5.s
/lib/libc-2.5.so
/lib/libgcc_s.so.1

我从内核中知道,使用了 gcc-4.2.0。我更愿意使用最新版本的 gcc,它可以与我需要安装的任何旧版 binutils 包一起使用。

如何确定我需要哪个版本的 binutils,以及我有哪些 gcc 选项?谢谢!

最佳答案

您可以在他们的源代码分发服务站点找到索尼使用的工具链:

http://www.sony.net/Products/Linux/Audio/PRS-900.html

看来 sourceryg++-4.2-28armeabi.src.rpm 是编译器。

我不建议在设备本身上运行编译器;会很慢。

关于“非法指令”问题,可能是您的编译器生成了太多新指令,传递 -march=armv6 可能会解决它。

关于c - 用于为索尼阅读器 prs900 编译/交叉编译 gcc 的 binutils,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22419637/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com