एक समान (कम वर्णनात्मक) पोस्ट here है।बिल्डिंग एआरएम जीएनयू क्रॉस कंपाइलर
मैं उबंटू पर हालिया रिलीज का उपयोग करके अपनी खुद की टूल श्रृंखला रोल करने की कोशिश कर रहा हूं और उम्मीद कर रहा था कि वहां एक लिनक्स समुदाय पर्याप्त था कि मैं कुछ समस्याओं पर विशिष्ट सलाह प्राप्त कर सकता हूं।
हर किसी की मदद से मैं इस बारी को एक उपयोगी संदर्भ में देखना चाहता हूं।
पहले "Crosstool" से पहले जो लगभग हर किसी को संदर्भित करता है, एक छोटी (2006) पुरानी है और "Crosstool-NG" जो अब लगता है कि मशाल ले जा रहा है मेरी मशीन पर विफल रहता है। मैं एक स्क्रिप्ट से खुद को प्रक्रिया को डीबग करना चाहता हूं (जो मुझे लगता है कि मुझे प्रक्रिया को समझने की आवश्यकता है)।
नीचे जो काम कर रहा है उसके नीचे मूल कदम हैं; वर्तमान में मैं पहले पास जीसीसी संकलित करने की कोशिश कर रहा हूं।
यह कहाँ में नाकाम रहने के है ...
क्योंकि पार संकलित पुस्तकालय "crti.o" युक्त यह नाकाम रहने है याद आ रही है:
# ./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
बिल्ड कदम
पर एक 'ताजा' कॉन्फ़िगर किया गया उबंटू 9.04 इंस्टॉलेशन, यहां तक कि मैंने अभी तक किए गए कदम हैं:
#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
पेंगुइन, पेंगुइन .. हर जगह! :) –
क्षमा करें, मैंने आपके प्रश्न को गलत तरीके से पढ़ा है, मुझे लगता है कि आप जानते थे कि सही libc गंतव्य होस्ट पर मौजूद होगा .. और आप बस एक विदेशी वास्तुकला पर संकलन कर रहे थे। खैर, कम से कम, अब आपके पास एक एआरएम उपकरण श्रृंखला है :) –