Gostaria de saber por que, quando executo o gcc -v
Arch Linux, ele mostra a unknown
palavra nessas saídas:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-unknown-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-unknown-linux-gnu
enquanto em outra distro, como o ubuntu, ele mostra o nome da distro, como ubuntu
:
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-ubuntu-linux-gnu/5.1.0/lto-wrapper
Target: x86_64-ubuntu-linux-gnu
linux
arch-linux
gcc
noslin005
fonte
fonte
gcc
foram instalados com oscore
pacotes quando eu estava instalando o Arch.Respostas:
Como já foi mencionado no comentário, por padrão, o trio de destino é gerado pelo script config.guess . É lógica é bastante simples. Primeiro, ele usa
uname
para obter algumas informações básicas do sistema:Essas cadeias são combinadas e comparadas com padrões codificados. O resultado também é codificado:
Para alguns sistemas, é possível obter resultados mais significativos, como a IBM, em "rs6000-ibm-aix".
Os mantenedores de distribuição simplesmente substituem essa sequência por sua própria (também codificada):
O GCC 6 provavelmente produzirá x86_64-pc-linux-gnu por padrão: config.guess atualizado no repositório upstream.
fonte
unknown
é codificado por padrão.Essa é a parte do fabricante do tripleto de configuração / alvo. O Autobook diz sobre isso:
O manual do autoconf chama assim
company
.Não sou especialista em compilação com o GCC, mas parece que as informações fornecidas por esse campo são de natureza informativa e
unknown
são apenas o valor padrão que o GCC usa, a menos que seja explicitamente substituído. O GCC no Ubuntu 12.04, por exemplox86_64-linux-gnu
, usa o Debian 7s GCCi486-linux-gnu
, portanto é totalmente possível deixar o campo em branco.fonte
x86_64-linux-gnu
variedade são alvos de atalho, representandox86_64-unknown-linux-gnu
oux86_64-pc-linux-gnu
.gcc -v
mostra o alvo para o qual foi compilado econfig.sub
fornece o trigêmeo canônico (procure-o em/usr/share/misc
sistemas derivados do Debian com oautotools-dev
instalado).