Meus linkers estão em
/lib{32,64}/ld-2.20.so
, com links simbólicos em
/lib32/ld-linux.so.2
e
/lib64/ld-linux-x86-64.so.2
(para os devidos ld-2.20.so
s)
Quando eu tento executar um binário de 32 bits, tudo está bem. Eles compilar bem (eu estou usando um specs
arquivo gcc ligeiramente modificado ) e, aparentemente, link bem e correr bem.
Quando eu tento ldd /path/to/example/32bit/binary
, me disseram not a dynamic executable
. Meu entendimento é que isso é devido a ser incapaz de encontrar um vinculador para abrir o executável.
readelf -l example_binary | grep interpreter
dá [Requesting program interpreter: /lib32/ld-linux.so.2]
, como esperado.
Alguma idéia de por que isso está acontecendo / como posso consertar isso?
Ps - "Instalar bibliotecas de compatibilidade de 32 bits usando sudo apt get ..." não é útil, pois não tem apt / pacman / etcetera. Se eu precisar reinstalar uma biblioteca específica (32 bits), saiba que seria útil!
PPS - Os arquivos de script instalados por gcc
pelo /usr/lib{32,64}/libc.so
grupo apropriado (real) libc.so.6
e libc_nonshared.a
arquivos, com a AS_NEEDED ( /lib32/ld-linux.so.2 ) )
no final da cauda para lib32