2012-12-12 66 views
3

我想建立的glibc-2.13與使用Linaro的工具鏈上的一個32位的Ubuntu 10.04虛擬機ARM調試符號ARM錯誤。從我所研究的步驟,這樣做(我已經採取的措施),如下所示:Linaro的交叉編譯的Glibc爲無效SWI表達

mkdir /home/user/Desktop/glibc 
cd /home/user/Desktop/glibc 
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-2.13.tar.gz 
wget http://ftp.gnu.org/gnu/glibc/glibc-2.13.tar.bz2 
tar xvjf glibc-2.13.tar.bz2 
tar xvf glibc-ports-2.13.tar.gz 
mkdir -p glibc-2.13/ports 
cp -r glibc-ports-2.13/* glibc-2.13/ports 
mkdir tmp 
mkdir glibc-build 
cd glibc-build 
export CFLAGS="-O1 -g" 
export CPPFLAGS="-O1 -g" 
export CC=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-gcc 
export CXX=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-g++ 
../glibc-2.13/configure --host=arm-linux --prefix=/home/user/Desktop/glibc/tmp --enable-addons ports=yes 
make 

的配置步驟完成,當我移動到製作,很短的時間後生成錯誤並出現以下錯誤:

In file included from ../ports/sysdeps/unix/sysv/linux/arm/ldsodefs.h:23:0, 
       from ../csu/libc-tls.c:21, 
       from ../ports/sysdeps/arm/libc-tls.c:20: 
../sysdeps/unix/sysv/linux/ldsodefs.h:64:0: note: this is the location of the previous definition 
/tmp/ccgCNS8e.s: Assembler messages: 
/tmp/ccgCNS8e.s:174: Error: invalid swi expression 
/tmp/ccgCNS8e.s:174: Error: value of 983045 too large for field of 2 bytes at 196 
make[2]: *** [/home/user/Desktop/glibc/glibc-build/csu/libc-tls.o] Error 1 
make[2]: Leaving directory `/home/user/Desktop/glibc/glibc-2.13/csu' 
make[1]: *** [csu/subdir_lib] Error 2 
make[1]: Leaving directory `/home/user/Desktop/glibc/glibc-2.13' 
make: *** [all] Error 2 

從我讀過「TLS」是必需的,如果我嘗試建立--without-TLS,它錯誤說我需要TLS。 Google在這個問題上沒有發現任何問題。

有誰知道我可以解決這一點,並獲得過去這個錯誤?謝謝 -

編輯:我已經添加了configure命令之前,下面的出口,仍然得到了同樣的錯誤:

export CC=/home/user/gemini/toolchain/linaro/bin/arm-linux-gnueabi-gcc 
export CXX=/home/user/gemini/toolchain/linaro/bin/arm-linux-gnueabi-g++ 
export AR=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ar 
export AS=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-as 
export LD=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ld 
export RANLIB=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ranlib 

回答

4

我不知道到底是什麼,這筆交易是 - 可能指定不正確的 - 主機參數爲我的工具鏈。我最終成功地在我的Ubuntu 32位10.04 VM上使用以下命令編譯glibc 2.13:

sudo apt-get install libmpc-dev -y 
sudo apt-get install libgmp-dev -y 
sudo apt-get install libmpfr-dev -y 
sudo apt-get install autoconf -y 
sudo apt-get install gawk -y 
cd ~/Desktop 
GLIBC_VERSION="2.13" 
rm -rf glibc 
mkdir /home/user/Desktop/glibc 
cd /home/user/Desktop/glibc 
wget http://ftp.gnu.org/gnu/glibc/glibc-ports-$GLIBC_VERSION.tar.gz 
wget http://ftp.gnu.org/gnu/glibc/glibc-$GLIBC_VERSION.tar.bz2 
rm -rf glibc-build/ tmp/ glibc-$GLIBC_VERSION/ glibc-ports-$GLIBC_VERSION/ 
tar xvjf glibc-$GLIBC_VERSION.tar.bz2 
tar xvf glibc-ports-$GLIBC_VERSION.tar.gz 
mkdir -p glibc-$GLIBC_VERSION/ports 
cp -r glibc-ports-$GLIBC_VERSION/* glibc-$GLIBC_VERSION/ports 
mkdir tmp 
mkdir glibc-build 
cd glibc-build 
CFLAGS="-O1 -g" 
CPPFLAGS="-O1 -g" 
CC=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-gcc 
CXX=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-g++ 
AR=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ar 
AS=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-as 
LD=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ld 
RANLIB=/home/user/proj/toolchain/linaro/bin/arm-linux-gnueabi-ranlib 
export PATH=$PATH:/home/user/proj/toolchain/linaro/bin 
export LD_LIBRARY_PATH=/usr/lib/x86_64-linux-gnu 
../glibc-$GLIBC_VERSION/configure --with-tls --host=arm-linux-gnueabi --prefix=/home/user/Desktop/glibc/tmp --enable-addons ports=yes 
make 
cd ../