make
em si provavelmente não tem muito a ver com o problema. Os sintomas são típicos do uso de toolchain e / ou bibliotecas erradas. A saída indica que o linker em uso é o Fedora ld
, que no Fedora de 64 bits significaria um conjunto de ferramentas capaz de produzir binários x86_64.
skipping incompatible /usr/lib/libc.a
informa que o vinculador tentou vincular com /usr/lib/libc.a
, mas achou (binário) incompatível com o restante do código compilado em md5_x86_64.o
e mfsrv_x86_64.o
. Isso normalmente ocorre devido a uma incompatibilidade de arquitetura - nesse caso, parece que o sistema de compilação tenta vincular um objeto de 64 bits a uma biblioteca de 32 bits (note que o mesmo comando para 32bit binário com -m32
foi muito bem). Assim, parece que o compilador não está recebendo as opções corretas ao vincular o binário de 64 bits. Como primeiro passo na depuração, talvez você queira tentar criar manualmente, ou seja, emitir o comando com falha na árvore de construção manualmente.
O que também é surpreendente (pelo menos para mim) no seu caso é este:
mips-linux-gnu-gcc -EL -Wl,-rpath /export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/lib -L/export/home/git/minerva-5.x/cs_rootfs_1.2.15/cross_rootfs/lib -o mfcln md5.o bitmapfs.o mfcln.o mulfiles.h mulfiles_msg.h md5.h bitmapfs.h
gcc -O -Wall -m32 -c -o md5_x86_32.o md5.c
isto é: parte da compilação usando o cross toolchain e parte usando o nativo e em ambos os sabores de 64 bits e 32 bits. O que pode estar certo, mas parece um pouco estranho.