gpt4 book ai didi

arm - 为 Thumb OR Arm 编译的 ARM ELF 的脚本/工具谓词

转载 作者:行者123 更新时间:2023-12-01 10:01:11 26 4
gpt4 key购买 nike

我有 rootfsklibc 文件系统。我正在创建 make 规则,而一些开发人员的编译器较旧,但没有联网。note1 我正在尝试验证所有文件都是使用 arm 仅当检测到某个版本的编译器时。我已经多次重建了这棵树。我正在使用 readelf -A 并寻找 Tag_THUMB_ISA_use:Thumb-1,但这似乎只在 arm 代码中(但使用互通编译器)以及 thumb 代码。我可以手动运行 objdump -S 并检查汇编器以确定正在使用的指令集。

但是,如果我有一个脚本/工具谓词,那么 find 等可以用来搜索 shadow 文件系统来查找可能丢失的二进制文件。我认为其中一些信息将在 ELF header 中,并可通过 objdumpreadelf 访问,但我没有找到任何可靠的信息。

我正在寻找,

  1. 编译的“C”在没有 CONFIG_ARM_THUMB Linux 系统的情况下无法运行。
  2. make 使用“C”编译器标志的规则会阻塞非thumb 编译器。

note1: 交互允许在 thumbarm 模式之间轻松切换,编译器将自动生成代码以支持从任一模式调用。

最佳答案

由于拇指和 ARM 序列可以在目标文件中自由互换,即使在同一部分中,简单的 ELF header 检查也无法帮助您确定文件是否包含拇指指令。

稍微迂回但仍不是 100% 万无一失的方法是使用 readelf -r 并检查输出是否包含“R_ARM_THM”,表示拇指重定位。

关于arm - 为 Thumb OR Arm 编译的 ARM ELF 的脚本/工具谓词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15913964/

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