Попередню тему з
памілкамі видалили, тому знову, але по іншому.
Що воно було...
root@rdr:/usr/src/linux# make menuconfig
HOSTCC scripts/basic/fixdep
In file included from scripts/basic/fixdep.c:114:
/usr/include/ctype.h:48: error: syntax error before string constant
scripts/basic/fixdep.c: In function `use_config':
scripts/basic/fixdep.c:201: error: `PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:201: error: (Each undeclared identifier is reported only once
scripts/basic/fixdep.c:201: error: for each function it appears in.)
scripts/basic/fixdep.c:201: warning: unused variable `s'
scripts/basic/fixdep.c: In function `parse_config_file':
scripts/basic/fixdep.c:239: error: `_ISalnum' undeclared (first use in this function)
scripts/basic/fixdep.c: In function `parse_dep_file':
scripts/basic/fixdep.c:297: error: `PATH_MAX' undeclared (first use in this function)
scripts/basic/fixdep.c:316: error: `_ISalnum' undeclared (first use in this function)
scripts/basic/fixdep.c:297: warning: unused variable `s'
make[1]: *** [scripts/basic/fixdep] Ошибка 1
make: *** [scripts_basic] Ошибка 2
root@rdr:/usr/src/linux#
Але я знаю (уже знаю), чому воно навіть не хотіло конфігуратор запускати.
Тому, що у структурі первинних текстів ядра 2.6.10 є файли типу .filename.cmd
Команда виконана до make clean
root@rdr:/usr/src/linux# find /usr/src/ -name '.*'
/usr/src/linux-2.6.10/scripts/basic/.fixdep.cmd
/usr/src/linux-2.6.10/scripts/basic/.split-include.cmd
...
/usr/src/linux-2.6.10/scripts/kconfig/.zconf.tab.o.cmd
...
/usr/src/linux-2.6.10/scripts/lxdialog/.lxdialog.o.cmd
...
/usr/src/linux-2.6.10/scripts/mod/.file2alias.o.cmd
/usr/src/linux-2.6.10/scripts/mod/.modpost.o.cmd
/usr/src/linux-2.6.10/.config.cmd
root@rdr:/usr/src/linux#
Так от, коли я копіював всі розділи системи командою cp -a /usr/src/* ..., ці файли і не скопіювалися.
Виникає питання чому командна make clean видаляє файли з іменами .filename.cmd
(цю команду я виконав _перед_ make menuconfig - на початку показано помилки)
root@rdr:/usr/src/linux# make clean
CLEAN arch/i386/boot/compressed
CLEAN arch/i386/boot
CLEAN arch/i386/kernel
CLEAN drivers/char
CLEAN drivers/pci
CLEAN init
CLEAN lib
CLEAN usr
CLEAN .tmp_versions
CLEAN include/asm-i386/asm_offsets.h vmlinux System.map
root@rdr:/usr/src/linux#
Команда після make clean
root@rdr:/usr/src/linux# find /usr/src/ -name '.*'
/usr/src/linux-2.6.10/scripts/basic/.fixdep.d
/usr/src/linux-2.6.10/.version
/usr/src/linux-2.6.10/.config
Ні, звичайно я знаю, що при компіляції ядра створюються тимчасові файли, з іменами які починаються з крапки.
І тому make clean їх видаляє, чому видаляються _потрібні_ файли з іменами типу '.*' Хто знає?
? Можливо необхідно редагувати якісь файли?
Звичайно ж можна ще раз розпакувати первинні тексти...
-------------------------------------------------