Bestimmen der Ziel-ISA-Erweiterungen von binären Datei in Linux (Bibliothek oder ausführbare Datei)

Wir haben ein Problem mit einer Java-Anwendung läuft unter einer (ziemlich alten) FC3 auf einem Advantech POS-board mit einem Via-C3-Prozessor. Die java-Applikation hat mehrere kompilierte shared-libs zugegriffen wird über JNI.

Via-C3-Prozessor soll i686 kompatibel. Vor einiger Zeit habe nach der Installation von Ubuntu 6.10 auf einem MiniItx board mit dem gleichen Prozessor, fand ich heraus, dass die Vorherige Aussage ist nicht 100% wahr. Der Ubuntu-kernel gehängt auf startup durch den Mangel an einige spezielle und optionale Anweisungen für die i686-set in der C3-Prozessor. Diese Anleitung fehlt in C3 Umsetzung i686-Satz verwendet standardmäßig den GCC-compiler bei der Verwendung i686-Optimierungen. Die Lösung war in diesem Fall, gehen Sie mit einem i386 kompilierte version der Ubuntu-distribution.

Den base-problem mit Java-Anwendung ist, dass der FC3-distribution installiert wurde, auf die HD Klonen, um aus einem Bild von der HD von einem anderen PC, dieses mal ein Intel P4. Danach werden die Verteilung benötigt einige Hacker haben es ausgeführt, wie das ersetzen einige Pakete (z.B. der kernel) mit der i386 kompilierte version.

Das problem ist, dass nach der Arbeit für eine Weile das system komplett hängt, ohne eine Spur. Ich fürchte, dass einige i686 code bleibt irgendwo im system und können ausgeführt werden, nach dem Zufallsprinzip zu jeder Zeit (zum Beispiel nach dem wiederherstellen aus dem suspend-Modus oder so ähnlich).

Meine Frage ist:

  • Gibt es irgendein tool oder eine Möglichkeit, um herauszufinden, was Ihre spezifische Architektur-Erweiterungen eine binäre Datei (ausführbare Datei oder Bibliothek) benötigt? file nicht genug Informationen geben.
Schreibe einen Kommentar