A "emulação" seleciona diferentes scripts de vinculação ; você encontrará os próprios scripts em /usr/lib/ldscripts
em seu sistema. As emulações que você listou correspondem a
-
elf32_x86_64
: ELF para x64-32, também conhecido como x32 - binários x86-64 de 32 bits -
elf_i386
: ELF para i386 - binários i386 de 32 bits -
i386linux
: a.out para i386 -
i386pep
: PE + para x86-64 - binários de 64 bits no formato Windows -
i386pe
: PE para i386 - binários de 32 bits no formato Windows
Os scripts de linker definem o formato e a arquitetura de saída, os diretórios de pesquisa (onde ld
procura por bibliotecas), as seções do binário, entre outras coisas.
O formato do script de vinculação está bem documentado (veja acima), mas os scripts disponíveis não são; na maioria dos casos, o GCC especificará o caminho certo, portanto, você não precisa se preocupar com isso e, em outros casos, acaba precisando ler os próprios scripts de vinculação para descobrir o que eles fazem.