Existem dois problemas óbvios em configure.log :
gcc: error: missing argument to '-march='
gcc: error: unrecognized command line option '-V'
-march deve selecionar uma arquitetura específica, por exemplo -march=i686 ou -march=x86-64
gcc -V é uma maneira de selecionar uma versão específica do gcc quando você tem mais de um, que é um chamariz aqui: configure iterating através de um conjunto de opções ( --version -v -V etc.) para se certificar de que pode logar versão do compilador C, seja gcc ou outra coisa.
Verifique suas variáveis de ambiente CFLAGS e CC ,
echo CFLAGS=$CFLAGS
echo CC=$CC
a saída de
gcc -dumpmachine
gcc -v
Uma possibilidade é um arquivo specs suspeito sobrepondo os padrões do compilador, então execute (se puder)
gcc -dumpspecs
e inclua o parágrafo *cc1_cpu: .
Se você não pode correr isso, então eu concordo com Michael Hampton, algo está muito mal quebrado.
Ok, gcc -v diz " Usando especificações internas. ", isso significa que você não tem um arquivo specs quebrado, pode ter um compilador corrompido ou algo parecido com seu ambiente.
Você pode conseguir consertar isso definindo CFLAGS para incluir -march :
export CFLAGS="-march=x86-64 -mtune=x86-64"
(Se isso funcionar, tente -march=native -mtune=native )
É possível que -march=native detecção com local_cpu_detect() (gcc interno) não esteja funcionando corretamente, embora eu realmente não consiga ver como isso acontece ( gcc/config/i386/driver-i386.c ). Isso chama cpuid e outras instruções possivelmente restritas (qualquer chance de sua VM ter alguns recursos de segurança adicionais em vigor?) Não estou familiarizado com as alterações que o "Ubuntua / Linaro" gcc possa ter feito.
(o Linaro fornece ferramentas de desenvolvimento cruzado, mas o seu gcc não é um compilador cruzado, ele é construído com --target=x86_64-linux-gnu )
Normalmente, se você passar -march=native , poderá ver o que ele detecta:
gcc -v -march=native -o x hello.c 2>&1 | less
...
COLLECT_GCC_OPTIONS='-v' '-march=native' '-o' 'x'
/usr/local/libexec/gcc/i686-pc-linux-gnu/4.7.3/cc1 -quiet -v hello.c -march=core2 [...]
O script de configuração do ruby-2.1.1 faz usar -march , mas apenas para detectar um built-in atômico ( __sync_val_compare_and_swap ), nunca chega tão longe assim.