Meine Linker sind in
/lib{32,64}/ld-2.20.so
mit symbolischen Links bei
/lib32/ld-linux.so.2
und
/lib64/ld-linux-x86-64.so.2
(zum entsprechenden ld-2.20.so
s)
Wenn ich versuche, eine 32-Bit-Binärdatei auszuführen, ist alles in Ordnung. Sie kompilieren gut (ich benutze einen leicht modifizierten gcc specs
Datei) und scheinbar gut verlinken, und gut laufen.
Wenn ich es versuche ldd /path/to/example/32bit/binary
, Mir wurde gesagt not a dynamic executable
. Meines Wissens liegt dies daran, dass kein Linker zum Öffnen der ausführbaren Datei gefunden werden kann.
readelf -l example_binary | grep interpreter
gibt [Requesting program interpreter: /lib32/ld-linux.so.2]
, wie erwartet.
Irgendwelche Ideen, warum dies geschieht / wie ich es beheben kann?
Ps. - "32-Bit-Kompatibilitätsbibliotheken mit sudo apt get ... installieren" ist nicht hilfreich, da apt / pacman / etcetera nicht vorhanden ist. Wenn ich eine bestimmte (32-Bit-) Bibliothek neu installieren muss, ist es hilfreich, wenn ich weiß, dass dies hilfreich ist!
P.p.s - Die von installierten Skriptdateien gcc
beim /usr/lib{32,64}/libc.so
gruppieren Sie die entsprechenden (realen) libc.so.6
und libc_nonshared.a
Dateien, mit der AS_NEEDED ( /lib32/ld-linux.so.2 ) )
am hinteren ende für lib32