ошибка при использовании make для компиляции Glibc-2.11.1 для Linux From Scratch

Я собираю 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

Я не понимаю, где что-то пошло не так. Что я должен исправить?


person Rohan Bojja    schedule 18.06.2011    source источник
comment
кто-нибудь знает, что вызвало эту ошибку и как ее решить?? пожалуйста помогите :Д   -  person Rohan Bojja    schedule 18.06.2011
comment
Вы не можете исправить неправильное регулярное выражение в строке 19 scripts/gen-sorted.awk? Возможно, вы захотите опубликовать это как отдельный вопрос и убедиться, что он работает правильно. Вы также можете заменить свой тег glibc на «linux-from-scratch» (у него 2 подписчика) (извините) и удачи!   -  person shellter    schedule 18.06.2011
comment
lfs-support список рассылки существует именно для этой цели. Подробнее см. здесь: Списки рассылки LFS (linuxfromscratch.org/mail.html)   -  person yasouser    schedule 18.06.2011
comment
@shellter: спасибо, чувак..... да, я погуглил эту ошибку, похоже, это проблема с gen-sorted.awk, я ее исправил.... ошибка, похоже, была в строке 19 и двух других строках.... ........   -  person Rohan Bojja    schedule 19.06.2011
comment
Не могли бы вы опубликовать, что вы сделали, чтобы исправить это в качестве ответа?   -  person Paŭlo Ebermann    schedule 30.06.2011


Ответы (1)


Вам необходимо установить gawk.

sudo apt-get install gawk

Регулярное выражение в строке 19 было

/\/[^/]+$/

Известна проблема, заключающаяся в том, что mawk не понимает неэкранированные символы '/' в классах символов. по крайней мере до версии 1.3.3-15 (поставляемой в Ubuntu 11.04 (Natty)). mawk подумает, что / внутри скобок завершает регулярное выражение, и интерпретирует его как \/[^, что, безусловно, является синтаксической ошибкой из-за несовпадения ].

Исправление для glibc тривиально: просто добавьте \ перед /. Но это также может быть специальная «проверка» для обеспечения gawk используется. По крайней мере, это все еще не изменилось на glibc-2.14…

(Источник решения: http://www.linuxquestions.org/questions/linux-from-scratch-13/urgent-help-on-glibc-make-error-with-clfs-590753/ )

person kennytm    schedule 18.08.2011