2016-03-07 58 views
3

当我尝试编译第6.9章 - 从Scratch 7.8开始编译glibc包时出现此错误。Glibc-2.22 make(infitite loop)error [LFS 7.8 - 6.9]

/usr/bin/install -c -m 644 ../include/limits.h /usr/include/limits.h 
gawk -f ../scripts/gen-as-const.awk ../sysdeps/x86_64/locale-defines.sym \ 
| gcc -S -o /sources/glibc-2.22/build/locale-defines.hT3 -std=gnu99 -fgnu89-inline -O2 -Wall -Werror -Wno-error=undef -Wundef -Wwrite-strings -fmerge-all-constants -frounding-math -g -Wstrict-prototypes  -ftls-model=initial-exec  -I../include -I/sources/glibc-2.22/build/string -I/sources/glibc-2.22/build -I../sysdeps/unix/sysv/linux/x86_64/64 -I../sysdeps/unix/sysv/linux/x86_64 -I../sysdeps/unix/sysv/linux/x86 -I../sysdeps/unix/sysv/linux/wordsize-64 -I../sysdeps/x86_64/nptl -I../sysdeps/unix/sysv/linux/include -I../sysdeps/unix/sysv/linux -I../sysdeps/nptl -I../sysdeps/pthread -I../sysdeps/gnu -I../sysdeps/unix/inet -I../sysdeps/unix/sysv -I../sysdeps/unix/x86_64 -I../sysdeps/unix -I../sysdeps/posix -I../sysdeps/x86_64/64 -I../sysdeps/x86_64/fpu/multiarch -I../sysdeps/x86_64/fpu -I../sysdeps/x86/fpu/include -I../sysdeps/x86/fpu -I../sysdeps/x86_64/multiarch -I../sysdeps/x86_64 -I../sysdeps/x86 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64/wordsize-64 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/wordsize-64 -I../sysdeps/ieee754 -I../sysdeps/generic -I.. -I../libio -I. -D_LIBC_REENTRANT -include /sources/glibc-2.22/build/libc-modules.h -DMODULE_NAME=libc -include ../include/libc-symbols.h  -x c - \ 
    -MD -MP -MF /sources/glibc-2.22/build/locale-defines.h.dT -MT '/sources/glibc-2.22/build/locale-defines.h.d /sources/glibc-2.22/build/locale-defines.h' 
sed -n 's/^.*@@@[email protected]@@\([^@]*\)@@@[email protected]@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@[email protected]@@.*$/#define \1 \2/p' \ 
    /sources/glibc-2.22/build/locale-defines.hT3 > /sources/glibc-2.22/build/locale-defines.hT 
rm -f /sources/glibc-2.22/build/locale-defines.hT3 
sed -e '[email protected] /sources/glibc-2\.22/build/@ $(common-objpfx)@g' -e '[email protected]^/sources/glibc-2\.22/build/@$(common-objpfx)@g' -e '[email protected] *\.\.\/\([^ \]*\)@ $(..)\[email protected]' -e '[email protected]^\.\.\/\([^  \]*\)@$(..)\[email protected]' \ 
    /sources/glibc-2.22/build/locale-defines.h.dT > /sources/glibc-2.22/build/locale-defines.h.dT2 
rm -f /sources/glibc-2.22/build/locale-defines.h.dT 
mv -f /sources/glibc-2.22/build/locale-defines.h.dT2 /sources/glibc-2.22/build/locale-defines.h.d 
mv -f /sources/glibc-2.22/build/locale-defines.hT /sources/glibc-2.22/build/locale-defines.h 

是否有人约一个想法如何解决这个问题: 当make运行时,它在一个无限循环,其重复后续的进入? 有人告诉我,构建系统时钟设置不正确时,这是一个常见错误。然而,这种情况并非如此。

回答

0

我不知道循环的原因,但你可以通过运行诊断多一点:

make -d |& tee log 
less log 

这将是很详细,但埋在那里应该是这样说行xxx is newer than locale-defines.h; must remake locale-defines.h。你可以用它来追踪循环。

也有程序,它可以提供更多的用户友好的调试输出。已经有很多发行版都包含在内。

关于破损时钟设置的注意事项:如果您的时钟在某个时间点被破坏,现在只需修复它并不意味着所有make在该点之后都能正常工作。您通常需要完全删除源/目录并从头开始重新开始构建过程。

0

感谢您的回答。问题是glibc已经安装好了,如果你再次尝试编译它,它会以任何未知的原因进入无限循环。 我将在-D选项中进行调试。再次感谢。