usando a biblioteca de 64 bits para aplicação de 32 bits

2

Temos aplicação de 32 bits em 64 bits e 6,4. Se eu fizer ldd no binário, ele mostra está usando a versão de 32 bits da glibc. É possível fazer isso para apontar para a versão de 64 bits da glibc? Se sim, como posso fazer isso?

Eu compilei os binários usando o sinalizador -m32.

    
por stany 03.07.2013 / 03:51

2 respostas

7

Não, não é possível. Eles usam diferentes formatos binários, usam diferentes convenções de chamada, diferentes conjuntos de instruções, diferentes métodos syscall, diferentes ... tudo.

root@el6 ~ # file /lib/libc-2.12.so 
/lib/libc-2.12.so: ELF 32-bit LSB shared object, Intel 80386, [...]

root@el6 ~ # file /lib64/libc-2.12.so 
/lib64/libc-2.12.so: ELF 64-bit LSB shared object, x86-64, [...]

O binário de 32 bits precisa de bibliotecas de 32 bits, binários de 64 bits precisam de bibliotecas de 64 bits. Se você quiser que seu aplicativo use a compilação libc de 64 bits sem o -m32 como um aplicativo de 64 bits.

    
por 03.07.2013 / 04:08
0

Não, você não pode simplesmente porque a incompatibilidade da versão de 32 bits com a versão de 64 bits. A versão de 64 bits usa o conjunto de instruções de 64 bits e os endereços também estão no formato de 64 bits, o que suporta muito mais espaço de endereço na memória física.

    
por 03.07.2013 / 14:30

Tags