Glibc-2.22 make(infitite loop)错误[LFS 7.8 - 6.9]

时间:2016-03-07 00:17:00

标签: linux compiler-errors gnu-make glibc lfs

当我尝试在第6.9节的make pass中编译glibc包时出现此错误 - 来自Scratch 7.8的Linux。 当make运行时,它进入一个无限循环,重复以下:

/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/^.*@@@name@@@\([^@]*\)@@@value@@@[^0-9Xxa-fA-F-]*\([0-9Xxa-fA-F-][0-9Xxa-fA-F-]*\).*@@@end@@@.*$/#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 's@ /sources/glibc-2\.22/build/@ $(common-objpfx)@g' -e 's@^/sources/glibc-2\.22/build/@$(common-objpfx)@g' -e 's@  *\.\.\/\([^  \]*\)@ $(..)\1@g' -e 's@^\.\.\/\([^     \]*\)@$(..)\1@g' \
    /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

有人知道如何解决这个问题吗? 有人告诉我,当构建系统时钟设置不正确时,这是一个常见的错误。但事实并非如此。

2 个答案:

答案 0 :(得分:0)

我不知道循环的原因,但你可以通过运行来更多地诊断它:

make -d |& tee log
less log

这将是非常冗长的,但埋在那里应该有类似xxx is newer than locale-defines.h; must remake locale-defines.h之类的行。你也许可以用它来追踪循环。

还有remake程序可以提供更加用户友好的调试输出。许多发行版已包括那些。

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

答案 1 :(得分:0)

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