我们有一个与在带有 Via C3 处理器的 Advantech POS 板上的(相当旧的)FC3 下运行的 Java 应用程序相关的问题。Java 应用程序有几个通过 JNI 访问的已编译共享库。
Via C3 处理器应该与 i686 兼容。前段时间在具有相同处理器的 MiniItx 板上安装 Ubuntu 6.10 后,我发现前面的说法并非 100% 正确。由于缺少C3处理器中设置的i686的一些特定和可选指令,Ubuntu内核在启动时挂起。在使用 i686 优化时,GCC 编译器默认使用 i686 集的 C3 实现中缺少的这些指令。在这种情况下,解决方案是使用 i386 编译版本的 Ubuntu 发行版。
Java 应用程序的基本问题是 FC3 发行版是通过从另一台 PC(这次是 Intel P4)的 HD 映像克隆而安装在 HD 上的。之后,该发行版需要进行一些黑客攻击才能使其运行,例如用 i386 编译版本替换一些软件包(例如内核)。
问题是工作一段时间后系统完全挂起,没有任何痕迹。我担心某些 i686 代码会留在系统中的某个位置,并且可以随时随机执行(例如从挂起模式恢复后或类似的情况)。
我的问题是:
- 是否有任何工具或方法可以找出二进制文件(可执行文件或库)需要哪些特定架构扩展?
file
没有提供足够的信息。