Como instalar o compilador cruzado gcc 4.9 arm no trecho debian

1

O Debian "stretch" tem compiladores cross embutidos para as versões 5 e 6 do gcc, mas aparentemente inclui apenas a arquitetura nativa em seus pacotes gcc-4.x. Infelizmente eu preciso compilar um software que depende de cabeçalhos de kernel do Linux mais antigos que não são compilados com versões do gcc posteriores a 4.x (eles acabam tentando incluir um arquivo include/compiler-gcc<major-version>.h que não existe para números de versão posteriores), não são úteis para mim.

Eu tentei usar o repositório "embedian", mas ele só tinha ramificações de versão para "wheezy", "jessie" e "unstable", então assumir "unstable" era uma referência desatualizada para o stretch Tentei isso, mas parece que não consigo persuadi-lo a instalar nada de útil. O erro que recebo é:

The following packages have unmet dependencies:
 gcc-4.9-arm-linux-gnueabihf : Depends: cpp-4.9-arm-linux-gnueabihf (= 4.9.2-16) but it is not going to be installed
                               Depends: libgcc-4.9-dev:armhf (= 4.9.2-16)
                               Depends: libisl13 (>= 0.10) but it is not installable
                               Recommends: libc6-dev:armhf (>= 2.13-5)
E: Unable to correct problems, you have held broken packages.

Eu acredito que os dois primeiros pacotes com falhas estão disponíveis para serem instalados, então eu poderia fazer manualmente, se necessário, mas o terceiro não parece existir em nenhum lugar.

Alguma sugestão de como posso obter um compilador cruzado gcc-4.9 (ou anterior) para o arm-linux-gnueabihf neste sistema?

    
por Jules 12.08.2016 / 11:19

1 resposta

0

O emdebian parou de ser mantido em novembro de 2014. Você pode conseguir que os pacotes encontrados funcionem usando libisl13 dos instantâneos .

Caso contrário, você pode criar um compilador cruzado usando o pacote gcc-4.9 e possivelmente dpkg-cross ; consulte README.cross para detalhes. Basicamente, você precisa de cross-binutils, e os pacotes de bibliotecas apropriados (os pacotes multiarch em Jessie ou Stretch devem fazer, esperançosamente sem convertê-los usando dpkg-cross ); então

apt-get source gcc-4.9
cd gcc-4.9-4.9.4
GCC_TARGET=armhf dpkg-buildpackage -us -uc

Os pacotes gcc-4.9 estão a meio da transição para o multiarch simples, em vez de dpkg-cross , portanto, você pode encontrar alguns problemas. (A transição foi concluída nos pacotes gcc-5 e gcc-6 .)

    
por 12.08.2016 / 12:44