Instalando um cross-toolchain para construir binários do ARM no Debian

5

Eu tentei instalar um toolchain cruzado para poder criar o kernel do Linux amd64 (teste Debian "jessie") para o meu sistema ARM. Eu tenho esta entrada em sources.list :

deb http://www.emdebian.org/debian sid main

Quando tentei instalar o gcc-4.7-arm-linux-gnueabi , recebi um erro:

cc-4.7-arm-linux-gnueabi : Depends: libgomp1-armel-cross (>=4.7.2-5) but it is not going to be installed

libgomp1-armel-cross por sua vez depende do gcc-4.8-base-armel-cross que não está disponível em nenhum lugar.

Em algum momento, eu consegui instalar essas ferramentas cross-build do mesmo repositório, e até mesmo construí um kernel que agora roda nesses sistemas ARM algumas semanas atrás. Há algo quebrado nesse repositório? Tentei algumas outras versões do GCC e ainda recebo o mesmo problema.

Uma solução não ideal é a construção cruzada em uma VM Ubuntu 12.04. A distro tem o compilador cruzado ARM disponível em seus repositórios oficiais.

    
por Tshepang 05.12.2013 / 01:45

4 respostas

2

O Debian agora inclui os cross-toolchains oficialmente, embora eles não façam parte da próxima versão estável (8.0). Pacotes virtuais são fornecidos .

    
por 10.12.2014 / 11:32
4

Recomenda-se que repositórios Emdebian sejam usados em stable na maioria das vezes, pois pode haver utilitários não construídos nos repositórios, pacotes que foram retirados etc. Se você deseja garantir que todas as suas bibliotecas tenham as dependências corretas Eu sugeriria stable ou testing , pois eles são menos propensos a ter algum problema de dependência ou ter algo que seja borkeado.

    
por 05.12.2013 / 02:03
1

Estável não ajuda. A inconsistência de 4.7 - 4.8 ainda está lá. A inconsistência já existia para mim desde (em torno de) versão 4.4 de gcc .

    
por 25.06.2014 / 08:32
0

Eu sugeriria fazer as coisas no "modo Linux", o que significa para mim, quanto menos configuração automática possível. Gostaria de baixar o conjunto de ferramentas necessário do site do distribuidor e definir um arquivo .CC no diretório de trabalho do seu projeto. Seu arquivo CC deve ser parecido com isto:

export PATH=< PATH-TO-TOOLCHAIN-BIN-FOLDER>:${PATH}
export CROSS_COMPILE=< TOOLCHAIN PREFIX' i.e "arm-none-gnueabi-" (the last "-" is important)
export ARCH=< ARCHITECTURE>

Depois de fazer isso, antes de executar qualquer compilação, emita "source .CC" e depois compile como faz normalmente, por exemplo, "gcc / g ++ / ld ... ...". A compilação irá usar automaticamente o toolchain (você vai ver na saída da compilação, que o toolchain está sendo usado)

    
por 10.12.2014 / 14:13