Como construir um conjunto de ferramentas crosstool-ng para um Synology DS 214 com DSM 5.1?

0

Eu estou tentando construir um gcc 4.6 que "simplesmente funciona" em um Synology DS214 com DSM 5.1 (o Synology OS que efetivamente é um horrivelmente desatualizado Linux 3.2.x), ou seja, me permite compilar aplicativos no caixa. Estou tendo o mesmo problema a seguir com um gcc compilado com

env CC=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc \
LD=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ld \
RANLIB=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ranlib \
AR=/usr/local/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-ar \
CFLAGS=" -I/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/include -mhard-float -mfpu=vfpv3-d16" \
LDFLAGS=" -L/usr/local/arm-marvell-linux-gnueabi/arm-marvell-linux-gnueabi/libc/lib" \
auto-apt run ./configure --host=arm-marvell-linux --target=arm-marvell-linux \
--prefix=$USER/syno-prefix --disable-shared --enable-obsolete
make 
make install

com o Synology toolchain no Ubuntu 14.10 amd64 e os parâmetros recomendados para armadaxp CPU e um conjunto de ferramentas crosstools-ng ( site do projeto ) com eglibc 2.18, gcc 4.6.4, linux 3.2.40 e architecture-level s armv7-a e armadaxp (o último não funciona, erro "Arco desconhecido") e ajuste da CPU para cortex-a9 e CFLAGS -mhard-float -mfpu=vfpv3-d16" porque depois de horas pesquisando a única dica sobre parâmetros de arquitetura necessários foi um guia sobre como compilar a transmissão em um dispositivo MyCloud com armv7l .

Tanto o gcc quanto o conjunto de ferramentas causam erros

/usr/local/bin/ld: unrecognised emulation mode: armelf_linux_eabi
Supported emulations: armelf_linux armelf armelfb armelfb_linux
collect2: ld returned 1 exit status

(em config.log ) ao compilar, e. binutils 2.24 e trafficserver 5.1.0 (adicionando LDFLAGS=" -marmelf_linux" antes que o configure cause cc1: error: unrecognized command line option '-marmelf_linux' ). O erro parece ser sistemático. Como alguém poderia começar a descobrir os parâmetros específicos de hardware para os parâmetros de toolchain em geral e, em especial, para o dispositivo denotado?

Algumas informações sobre o alvo em que gcc deve ser executado:

# cat /proc/cpuinfo 
Processor   : Marvell PJ4Bv7 Processor rev 2 (v7l)
processor   : 0
BogoMIPS    : 1064.96

processor   : 1
BogoMIPS    : 1064.96

Features    : swp half thumb fastmult vfp edsp vfpv3 tls 
CPU implementer : 0x56
CPU architecture: 7
CPU variant : 0x2
CPU part    : 0x584
CPU revision    : 2

Hardware    : Marvell Armada XP Development Board
Revision    : 0000
Serial      : 0000000000000000

Eu tentei começar a ler sobre ARM e unidades de ponto flutuante (principalmente na Wikipédia), mas para adivinhar quais parâmetros são necessários é preciso muito para um iniciante.

EDIT 1: Acabei de descobrir que seria bom definir a opção Toolchain type como Canadian em vez de Cross , mas ainda assim eu preciso de crosstools-ng co_de % de opção a ser definida (falha com erro machine ) o que me traz de volta ao meu problema de falta de conhecimento sobre detalhes de CPU e arquitetura - e, claro, não há como descobrir o que "máquina" realmente se refere ... / p>     

por Karl Richter 03.12.2014 / 01:14

0 respostas