Erro fatal: desinstalado sys-devel / binutils - emerge não funciona mais

3

Eu limpei meu sistema há 3 semanas e cometi um erro fatal. Bem, eu realmente não sei porque, mas eu desinstalei sys-devel / binutils .

Depois que reconheci o erro, tentei reemergir, mas não funciona. O próximo passo foi baixar o stage3 do Gentoo e copiar sys-devel/binutils para a árvore local.
não funcionou.

Quando tento surgir algo como x11-apps/xinput , recebo o seguinte:

saída do emerge:

checking whether the C compiler works... no
configure: error: in '/var/tmp/portage/x11-apps/xinput-1.6.2/work/xinput-1.6.2_build':
configure: error: C compiler cannot create executables

config.log de emerge:

configure:3372: checking whether the C compiler works
configure:3394: x86_64-pc-linux-gnu-gcc -m32 -march=core-avx-i -mtune=core-avx-i -O2 -pipe  -Wl, -O1 -Wl, --as-needed conftest.c  >&5
x86_64-pc-linux-gnu-gcc: internal compiler error: Illegal instruction (program as)

ldd de / usr / bin / as:

linux-vdso.so.1 (0x00007ffee41b9000)
libopcodes-2.25.1.so => /usr/lib64/binutils/x86_64-pc-linux-gnu/2.25.1/libopcodes-2.25.1.so (0x00007f2045ff8000)
libbfd-2.25.1.so => /usr/lib64/binutils/x86_64-pc-linux-gnu/2.25.1/libbfd-2.25.1.so (0x00007f2045cd3000)
libz.so.1 => /lib64/libz.so.1 (0x00007f2045abd000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2045722000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007f204551e000)
/lib64/ld-linux-x86-64.so.2 (0x00007f204637f000)

usando:

  • sys-devel / binutils-2.25.1-r1
  • sys-devel / gcc-4.9.3

Alguma sugestão a fazer? Alguma dica? Alguma idéia para corrigir? Me avise!

    
por am1 15.12.2015 / 00:19

1 resposta

3

Copiar sys-devel/binutils não corrigiu seu problema porque é apenas a ebuild que define o processo de compilação e instalação para binutils . Não funciona porque você precisa desse pacote para construir qualquer coisa, como você percebeu. O que você precisa fazer é copiar os arquivos que fazem parte desse pacote. Os arquivos e diretórios são:

/etc/env.d/binutils/x86_64-pc-linux-gnu-2.25.1
/usr/lib64/binutils/x86_64-pc-linux-gnu/*
/usr/share/binutils-data/x86_64-pc-linux-gnu/*
/usr/x86_64-pc-linux-gnu/binutils-bin/*

Copie (recursivamente) esses arquivos / diretórios do tarball do estágio 3 para o seu sistema ativo. Depois disso, execute env-update e efetue logout e volte em ou source /etc/profile para carregar o ambiente atualizado. Verifique se as coisas funcionam e a primeira coisa que você deve fazer depois disso é emerge binutils para criar o pacote corretamente e registrá-lo no seu arquivo mundial.

Se, depois disso, você ainda não puder emergir, talvez seja necessário repetir o processo com outros pacotes. Como um caso pior, você pode copiar a hierarquia /usr e /bin do estágio 3 e, se fizer isso, recomendo que seja seguido por emerge --sync e emerge -e world para reconstruir tudo. Boa sorte.

    
por 15.12.2015 / 02:46