O compilador não reconhece arquitetura

O compilador não reconhece arquitetura

Estou tendo problemas para compilar uma biblioteca (XSB Prolog) no Ubuntu.

Estou configurando e compilando com:

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

Então, preciso executar o seguinte comando para gerar determinadas bibliotecas dinâmicas:

sudo ./makexsb dynmodule

Mas está falhando com a seguinte saída:

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

Pelo que entendi, a -faltivecopção só faz sentido ao construir em arquiteturas PowerPC. Então pode ser que a arquitetura correta não esteja sendo detectada? Se for esse o caso, como posso ter certeza de que a arquitetura foi detectada corretamente?

Responder1

Olhando para build/emuMakefile.in, que produz config/x86_64-unknown-linux-gnu/emuMakefileao executar configureo script, o -faltivecsinalizador é codificado na linha 184, portanto não depende da arquitetura de destino, portanto não é um problema de detecção de arquitetura:

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 ""

Você pode tentar removê-lo da configuração/compilação novamente, mas também pode encontrar um erro sugerindo que você recompile com -fPIC para criar um objeto compartilhado. Infelizmente não consigo descobrir onde está faltando…

Na verdade, esses parecem ser bugs de seu sistema de compilação, talvez você deva reportá-los ao upstream.

informação relacionada