linux - Glibc-2.22 make(无限循环)错误 [LFS 7.8 - 6.9]

标签 linux compiler-errors gnu-make glibc linux-from-scratch

当我尝试通过第 6.9 章 - Linux from Scratch 7.8 编译 glibc 包时出现此错误。 当 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

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

最佳答案

我不知道循环的原因,但你可以通过运行来进一步诊断它:

make -d |& tee log
less log

这将非常冗长,但埋在其中的行应该是说 xxx is newer than locale-defines.h;必须重新制作 locale-defines.h。您也许可以使用它来追踪循环。

还有 remake程序可以提供更多用户友好的调试输出。许多发行版已经包含了它。

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

关于linux - Glibc-2.22 make(无限循环)错误 [LFS 7.8 - 6.9],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35834281/

相关文章:

Linux 上的 Java 写入文件被删除但我仍然可以写入

c - GNU Make - 对非程序代码的依赖

linux - 在基于 Xilinx Zynq 的平台上使用 AXI-DMA IP 的 PCM DMA 引擎

linux - 在bash shell中设置环境变量PATH

c++ - 虚函数与其覆盖的函数的返回类型不协变

java - 编译时错误JAVA编译多个类

linux - 如何获得适用于 Linux FC-14 的 g++

bash - 有没有办法暂停制作过程并稍后恢复?

linux - 没有元数据的 tar 存档

c++ - 对 'dlsym' 的 undefined reference