我的主机系统是 Linux debian 2.6.32-5-amd64 #1 SMP Mon Feb 25 00:26:11 UTC 2013 x86_64 GNU/Linux。 我想构建一个 LFS,但 glibc 编译现在阻止了我。 下面是错误提示,谢谢。
/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
最佳答案
我找到了解决这个问题的办法:
在 gcc 的第一遍之前由 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
关于linux - lfs glibc编译ld错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787684/