Glibc-2.18编译

Glibc-2.18编译

1.      下载gcc编译器,在www.kernel.org

 

2.      配置编译器

exportPATH=$PATH:/home/super4412/gcc-4.6.3-nolibc/arm-unknown-linux-gnueabi/bin

 

make ARCH=armCROSS_COMPILE=arm-unknown-linux-gnueabi-

 

3.      Linux头文件的取得

Make mrproper

Make headers_check

Make –v dest

Make INSTALL_HDR_PATH=dest headers_install

Cp –rv dest/include/* /tools/include

 

4.      配置glibc源代码

./glibc-2.18/configure --prefix=/home/super4412/glibc/out--host=arm-unknown-linux-gnueabi --build=i686-pc-linux-gnu CC=arm-unknown-linux-gnueabi-gcc--with-headers=/home/super4412/glibc/linux/include --disable-profile--enable-adds-on libc_cv_forced_unwind=yes libc_cv_c_cleanup=yeslibc_cv_arm_tls=yes

很奇怪为什么configure用从该文件的上一层目录里来调用,否则出错;

 

5.      编译问题,部分文件缺少系统调用号,从内核中复制定义;

 

6.      ARM版本与socket相关的系统调用缺少文件socket.S,且系统调用号的传递有问题,用R7传递系统调用号;从发行版本glibc-ports-2.15中找到该文件放入;

 

7.      getcontext.Ssetcontext.Sswapcontext.Sucontext_i.symmakecontext.c,部分ARM寄存器的定义有问题,暂时先注释掉;

猜你喜欢

转载自blog.csdn.net/lieye_leaves/article/details/78181966