linux - Forzar el enlazador GNU para generar ejecutables ELF de 32 bits
assembly x86 (1)
Hola. Actualmente estoy generando un ensamblado x86 para un compilador que estoy escribiendo y tengo algunos problemas para vincular el archivo en mi VM de 64 bits (el código de ensamblaje es de 32 bits).
Pude ensamblar bien el archivo objeto con este comando:
as --32 mult.S -o mult.o
pero parece que no puedo encontrar ninguna opción para ld
que haga que genere un archivo ELF de 32 bits:
ld <some-option?> mult.o -o mult
Cualquier ayuda sería genial.
ld <some-option?> mult.o -o mult
ld -m elf_i386 mult.o -o mult
Puede obtener una lista de las arquitecturas disponibles con:
ld -V
Salida de muestra:
GNU ld (GNU Binutils for Ubuntu) 2.24
Supported emulations:
elf_x86_64
elf32_x86_64
elf_i386
i386linux
elf_l1om
elf_k1om
i386pep
i386pe
Sin embargo, eso no debería ser necesario: ld mira el primer objeto, y debería seleccionar automáticamente la emulación según el formato de ese objeto.