2012-12-12 60 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 ../