Un post simile (meno descrittivo) è here.Building ARM GNU Cross compiler
Sto provando a rollare la mia catena di strumenti utilizzando le versioni recenti di Ubuntu e speravo che ci fosse abbastanza di una comunità Linux qui che avrei potuto ottenere consigli specifici su alcuni problemi che si presentano.
Con l'aiuto di tutti mi piacerebbe vedere questa svolta in un utile riferimento alla fine.
Prima di tutto "Crosstool" a cui quasi tutti si riferiscono è un po '(2006) obsoleto e "Crosstool-NG" che sembra ora sta portando la torcia non riesce sulla mia macchina. Preferisco eseguire il debug del processo stesso piuttosto che uno script (che sembrerebbe richiedere che io capisca il processo).
Di seguito sono riportati i passaggi di base su ciò che ho lavorato finora; al momento sono bloccato cercando di compilare il primo passaggio GCC.
dove è mancato ...
E 'in mancanza perché la croce compilato libreria contenente "crti.o" manca:
# ./gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c
/bin/bash ../../../gcc-4.4.1/libgcc/../mkinstalldirs .
/usr/src/gnu-4.4.1-build/./gcc/xgcc -B ........
/usr/local/arm-linux/bin/ld: crti.o No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [libgcc_s.so] Error 1
make[2]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build/arm-linux/libgcc'
make[1]: *** [all-target-libgcc] Error 2
make[1]: Leaving directory `/usr/src/gnu/gcc-4.4.1-build'
make: *** [all] Error 2
istruzioni di generazione
On un'installazione di Ubuntu 9.04 configurata "appena", ecco i passi che ho fatto fino ad ora:
#New configuration of Ubuntu 9.04
sudo updatedb
sudo apt-get install build-essential subversion
# For kernel configuration
sudo apt-get install libncurses5-dev
# For building GCC
sudo apt-get install libgmp3-dev libmpfr-dev
#Get Linux Headers for GCC/GLIBC compilations
# I use a hacked Linux from Artilla,
pushd ~ && svn co http://.../linux m501-linux && cd !$
make ARCH=arm m501_defconfig
make ARCH=arm menuconfig
sudo mkdir /usr/local/arm-linux/include
sudo cp -dR include/asm-arm /usr/local/arm-linux/include/asm
sudo cp -dR include/linux /usr/local/arm-linux/include/linux
cd /usr/local/arm-linux/
sudo ln -s include sys-include
popd
#Get sources:
cd /usr/src/
sudo su root
mkdir gnu
ftp ftp.gnu.org
# get gnu/binutils/binutils-2.19.1.tar.bz2
# get gnu/gcc/gcc-4.4.1/gcc-4.4.1.tar.bz2
# get gnu/glibc/glibc-2.10.1.tar.bz2
# get gnu/gdb/gdb-6.8.tar.bz2
#Build Binutils
bzcat binutils-2.19.1.tar.bz2 | tar -xv
mkdir binutils-2.19.1-build && cd !$
cp ../binutils-2.19.1/gas/config/tc-arm.c ./tc-arm.c
sed -r 's/(as_bad[ \t]*\()(.+\[.+\]\))/\1\"%s\",\2/' < ./tc-arm.c > ../binutils-2.19.1/gas/config/tc-arm.c
rm ./tc-arm.c
../binutils-2.19.1/configure --target=arm-linux
make && make install && cd ..
#Build GCC
bzcat gcc-4.4.1.tar.bz2 | tar -xv
mkdir gcc-4.4.1-build && cd !$
../gcc-4.4.1/configure --target=arm-linux --disable-thread --enable-langauges=c -with-headers=/usr/local/arm-linux/include
make
Pinguini, pinguini .. ovunque! :) –
Mi spiace, ho letto male la tua domanda, ho dato per scontato che tu sapessi che la libc corretta sarebbe presente nell'host di destinazione .. e stavi solo compilando un'architettura straniera. Bene, almeno, ora hai una catena di strumenti ARM funzionante :) –