2013-04-03 79 views
2

我的主机系统是Linux debian 2.6.32-5-amd64#1 SMP Mon Feb 25 00:26:11 UTC 2013 x86_64 GNU/Linux。 我想要构建一个LFS,并且glibc编译现在停止。 以下是错误提示,谢谢。lfs glibc编译ld错误

 
/mnt/lfs/sources/glibc-build/resolv/libresolv_pic.a(gethnamaddr.os): In function `getanswer': 
/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:180: undefined reference to `__stack_chk_guard' 
/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:483: undefined reference to `__stack_chk_guard' 
/mnt/lfs/sources/glibc-build/resolv/libresolv_pic.a(gethnamaddr.os): In function `res_gethostbyaddr': 
/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:644: undefined reference to `__stack_chk_guard' 
/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:783: undefined reference to `__stack_chk_guard' 
/mnt/lfs/sources/glibc-build/resolv/libresolv_pic.a(gethnamaddr.os): In function `__GI_res_gethostbyname2': 
/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:510: undefined reference to `__stack_chk_guard' 
/mnt/lfs/sources/glibc-build/resolv/libresolv_pic.a(gethnamaddr.os):/mnt/lfs/sources/glibc-2.17/resolv/gethnamaddr.c:636: more undefined references to `__stack_chk_guard' follow 
collect2: error: ld returned 1 exit status 
make[2]: *** [/mnt/lfs/sources/glibc-build/resolv/libresolv.so] Error 1 
make[2]: Leaving directory `/mnt/lfs/sources/glibc-2.17/resolv' 
make[1]: *** [resolv/others] Error 2 
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.17' 
make: *** [all] Error 2 

回答

0

您的gcc启用了堆栈保护。

为了突破这个错误:

CFLAGS = “ - FNO堆栈保护器-02” 的./configure --prefix =/somepath

我的系统我跑:

的mkdir建立

CD建立

CFLAGS = “ - FNO堆叠保护器-O2” ../configure前缀=的/ usr/test_glibc

2

我找到了一个解决方案来解决这个问题:

这个海湾合作委员会的第一次通过之前的GCC源sed的修正:

sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure 

和:

sed -i 's/if \((code.*))\)/if (\1 \&\& \!DEBUG_INSN_P (insn))/' gcc/sched-deps.c 

但这些已经在LFS手册中提到。我不知道为什么我没有看到他们时 我开始与LFS:D

+0

谢谢!在即将开始使用binutils之前发现您的帖子。 – crodjer