$ gcc test.c -o testc
$ arquivo testc
testc: Executável ELF de 64 bits LSB, x86-64, versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.9, sem remoção
$ ldd testc
linux-vdso.so.1 => (0x00007fff227ff000)
libc.so.6 => /lib64/libc.so.6 (0x000000391f000000)
/lib64/ld-linux-x86-64.so.2 (0x000000391ec00000)
$ gcc -m32 test.c -o testc
$ arquivo testc
testc: Executável ELF de 32 bits LSF, Intel 80386, versão 1 (SYSV), vinculado dinamicamente (usa bibliotecas compartilhadas), para GNU / Linux 2.6.9, sem remoção
$ ldd testc
linux-gate.so.1 => (0x009aa000)
libc.so.6 => /lib/libc.so.6 (0x00780000)
/lib/ld-linux.so.2 (0x0075b000)
Em resumo: use o -m32
sinalizador para compilar um binário de 32 bits.
Além disso, verifique se você tem as versões de 32 bits de todas as bibliotecas necessárias instaladas (no meu caso, tudo que eu precisava no Fedora era glibc-devel.i386)