El compilador no reconoce la arquitectura.

El compilador no reconoce la arquitectura.

Tengo problemas para compilar una biblioteca (XSB Prolog) en Ubuntu.

Lo estoy configurando y compilando con:

sudo ./configure -prefix=/usr/local/lib/
sudo ./makexsb

Luego, necesito ejecutar el siguiente comando para generar ciertas bibliotecas dinámicas:

sudo ./makexsb dynmodule

Pero está fallando con el siguiente resultado:

make -f ../config/x86_64-unknown-linux-gnu/topMakefile dynmodule

Preparing...
make[1]: Entering directory `/home/parallels/prologengines/XSB/emu'
Making XSB Shared Library /home/parallels/prologengines/XSB/config/x86_64-unknown-linux-gnu/bin/libxsb.so
gcc: error: unrecognized command line option ‘-faltivec’
make[1]: *** [xsbdynmod] Error 1

Hasta donde tengo entendido, la -faltivecopción sólo tiene sentido cuando se construye sobre arquitecturas PowerPC. Entonces, ¿podría ser que no se esté detectando la arquitectura correcta? Si ese es el caso, ¿cómo puedo estar seguro de que la arquitectura se detecta correctamente?

Respuesta1

Mirando build/emuMakefile.inlo que se produce config/x86_64-unknown-linux-gnu/emuMakefilecuando se ejecuta configureel script, el -faltivecindicador está codificado en la línea 184, por lo que no depende de la arquitectura de destino y, por lo tanto, no es un problema de detección de arquitectura:

xsbdynmod::
        @echo "Making XSB Shared Library $(bindir)/libxsb.$(SHAREDLIB_EXTENSION)"
        @@LD@ -o libxsb.$(SHAREDLIB_EXTENSION) $(DYNMOD_LDFLAGS)  -faltivec -fPIC $(XSBMOD_LDFLAGS)  $(OBJS) ${ODBCOBJ} ${INTERPROLOGOBJ} -lm
        @cp libxsb.$(SHAREDLIB_EXTENSION) $(bindir) 2>/dev/null || echo ""

Puede intentar eliminarlo al configurar/compilar nuevamente, pero también puede encontrar un error que le sugiere volver a compilar con -fPIC para crear un objeto compartido. Desafortunadamente no puedo entender dónde falta...

De hecho, esos parecen ser errores de su sistema de compilación, tal vez deberías informarlos previamente.

información relacionada