使用make编译Glibc-2.11.1 for Linux From Scratch时出错

时间:2011-06-18 15:12:42

标签: linux bash ubuntu glibc lfs

我正在构建LFS,我正处于需要安装Glibc-2.11.1的部分

http://www.linuxfromscratch.org/lfs/view/6.6/chapter05/glibc.html

我已成功配置它,但我无法运行make命令。每当我运行命令它运行一段时间然后停止。

我认为以下几行显示我所做的事情不正确:

mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [], [^] or [)
/[^
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1'
make[1]: Entering directory `/mnt/lfs/sources/glibc-2.11.1'
mawk -f scripts/gen-sorted.awk \
           -v subdirs='csu assert ctype locale intl catgets math setjmp signal stdlib stdio-common libio malloc string wcsmbs time dirent grp pwd posix io termios resource misc socket sysvipc gmon gnulib iconv iconvdata wctype manual shadow gshadow po argp crypt nss localedata timezone rt conform debug libidn dlfcn elf' \
           -v srcpfx='' \
           nptl/sysdeps/pthread/Subdirs sysdeps/unix/inet/Subdirs sysdeps/unix/Subdirs assert/Depend intl/Depend catgets/Depend stdlib/Depend stdio-common/Depend libio/Depend malloc/Depend string/Depend wcsmbs/Depend time/Depend posix/Depend iconvdata/Depend nss/Depend localedata/Depend rt/Depend debug/Depend > /mnt/lfs/sources/glibc-build/sysd-sorted-tmp
mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [], [^] or [)
/[^
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
rm -f /mnt/lfs/sources/glibc-build/stamp.o; > /mnt/lfs/sources/glibc-build/stamp.o
rm -f /mnt/lfs/sources/glibc-build/stamp.os; > /mnt/lfs/sources/glibc-build/stamp.os
rm -f /mnt/lfs/sources/glibc-build/stamp.oS; > /mnt/lfs/sources/glibc-build/stamp.oS
cd /mnt/lfs/sources/glibc-build && /mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.4.3/../../../../i686-lfs-linux-gnu/bin/ar cruv libc.a `cat stamp.o`
: /mnt/lfs/sources/glibc-build/libc.a
cd /mnt/lfs/sources/glibc-build && /mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.4.3/../../../../i686-lfs-linux-gnu/bin/ar cruv libc_pic.a `cat stamp.os`
: /mnt/lfs/sources/glibc-build/libc_pic.a
cd /mnt/lfs/sources/glibc-build && /mnt/lfs/tools/bin/../lib/gcc/i686-lfs-linux-gnu/4.4.3/../../../../i686-lfs-linux-gnu/bin/ar cruv libc_nonshared.a `cat stamp.oS`
: /mnt/lfs/sources/glibc-build/libc_nonshared.a
make[1]: *** No rule to make target `/mnt/lfs/sources/glibc-build/Versions.all', needed by `/mnt/lfs/sources/glibc-build/abi-versions.h'.  Stop.
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1'
make: *** [all] Error 2

real    0m11.390s
user    0m2.044s
sys 0m1.724s
lfs@rohanchrome:/mnt/lfs/sources/glibc-build$ make
make -r PARALLELMFLAGS="" CVSOPTS="" -C /mnt/lfs/sources/glibc-2.11.1 objdir=`pwd` all
make[1]: Entering directory `/mnt/lfs/sources/glibc-2.11.1'
mawk -f scripts/gen-sorted.awk \
           -v subdirs='csu assert ctype locale intl catgets math setjmp signal stdlib stdio-common libio malloc string wcsmbs time dirent grp pwd posix io termios resource misc socket sysvipc gmon gnulib iconv iconvdata wctype manual shadow gshadow po argp crypt nss localedata timezone rt conform debug libidn dlfcn elf' \
           -v srcpfx='' \
           nptl/sysdeps/pthread/Subdirs sysdeps/unix/inet/Subdirs sysdeps/unix/Subdirs assert/Depend intl/Depend catgets/Depend stdlib/Depend stdio-common/Depend libio/Depend malloc/Depend string/Depend wcsmbs/Depend time/Depend posix/Depend iconvdata/Depend nss/Depend localedata/Depend rt/Depend debug/Depend > /mnt/lfs/sources/glibc-build/sysd-sorted-tmp
mawk: scripts/gen-sorted.awk: line 19: regular expression compile failed (bad class -- [], [^] or [)
/[^
mawk: scripts/gen-sorted.awk: line 19: syntax error at or near ]
mawk: scripts/gen-sorted.awk: line 19: runaway regular expression /, "", subd ...
make[1]: *** No rule to make target `/mnt/lfs/sources/glibc-build/Versions.all', needed by `/mnt/lfs/sources/glibc-build/abi-versions.h'.  Stop.
make[1]: Leaving directory `/mnt/lfs/sources/glibc-2.11.1'
make: *** [all] Error 2

我不明白事情出了什么问题。我该怎么纠正他们?

1 个答案:

答案 0 :(得分:11)

您需要安装gawk

sudo apt-get install gawk

第19行的正则表达式是

/\/[^/]+$/

这是一个已知问题,mawk does not understand unescaped '/' in character classes至少达到版本1.3.3-15(在Ubuntu 11.04(Natty)上提供的版本)。 mawk会认为括号内的/终止正则表达式,并解释为\/[^,由于]不匹配,这肯定是语法错误。

glibc的修复很简单:只需在\之前添加/即可。但这也可能是一个专门的“检查”to ensure gawk is used。至少在glibc-2.14上没有改变......

(解决方案来源:http://www.linuxquestions.org/questions/linux-from-scratch-13/urgent-help-on-glibc-make-error-with-clfs-590753/