LINUX.ORG.RU

не могу собрать ядро, не находит stdarg.h


0

0

плз, help. раньше это же ядро с этими же конфигами собирал (иначе как бы оно у меня стояло? %-).

ядро: 2.6.23.9 (vanilla)
gcc: 4.1.2

никаких путей не менял, gcc не апгрейдил. make clean && make oldconfig && make prepare падает с таким:

# make prepare
scripts/kconfig/conf -s arch/i386/Kconfig
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      arch/i386/kernel/asm-offsets.s
In file included from ./include/asm/system.h:4,
                 from ./include/asm/processor.h:18,
                 from ./include/asm/atomic.h:5,
                 from ./include/linux/crypto.h:20,
                 from arch/i386/kernel/asm-offsets.c:7:
./include/linux/kernel.h:10:20: error: stdarg.h: No such file or directory
In file included from ./include/asm/system.h:4,
                 from ./include/asm/processor.h:18,
                 from ./include/asm/atomic.h:5,
                 from ./include/linux/crypto.h:20,
                 from arch/i386/kernel/asm-offsets.c:7:
./include/linux/kernel.h:124: error: expected declaration specifiers or '…' before 'va_list'
./include/linux/kernel.h:128: error: expected declaration specifiers or '…' before 'va_list'
./include/linux/kernel.h:132: error: expected declaration specifiers or '…' before 'va_list'
./include/linux/kernel.h:136: error: expected declaration specifiers or '…' before 'va_list'
./include/linux/kernel.h:140: error: expected declaration specifiers or '…' before 'va_list'
./include/linux/kernel.h:156: error: expected declaration specifiers or '…' before 'va_list'
make[1]: ** [arch/i386/kernel/asm-offsets.s] Error 1
make: ** [prepare0] Error 2

ещё раз повторюсь: раньше ядро собирал. ничего не сносил, stdarg.h есть в /usr/include, другой софт нормально компилится.

гугль делал — ничего внятного не выгуглил, ни одного вменяемого ответа.

спаситепомогите, хочу virtual box, да и другой софт с ядерными модулями не соберётся, если что.

tnx.
anonymous

DAMN! SHIT! проблема решена. viva la Gentoo (сам не гентушник, но нашёл решение именно в их багтрекере).

вот, если кому интересно:

# diff -u /usr/src/linux-2.6.23.9/Makefile.0 /usr/src/linux-2.6.23.9/Makefile
--- /usr/src/linux-2.6.23.9/Makefile.0  2007-11-26 19:51:43.000000000 +0200
+++ /usr/src/linux-2.6.23.9/Makefile    2008-05-03 20:15:46.000000000 +0300
@@ -505,7 +505,7 @@
 CFLAGS          += $(call cc-option, -fno-stack-protector)

 # arch Makefile may override CC so keep this after arch Makefile is included
-NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-file-name=include)
+NOSTDINC_FLAGS += -nostdinc -isystem $(shell $(CC) -print-search-dirs | sed -ne 's/install: \(.*\)/\1include/gp')
 CHECKFLAGS     += $(NOSTDINC_FLAGS)

 # warn about C99 declaration after statement

распронаедритеговкачель. похоже, я таки что-то нечаянно поменял после сборки ядра,
иначе я не могу пояснить, отчего оно перестало собираться.

//капча: movers

anonymous
()
Ответ на: комментарий от INFOMAN

мне не надо новое. мне не надо пересобирать ядро. мне надо собрать два модуля vbox'а. я в гробу видел все эти пляски с ядрами. к тому же новое ядро тормозней, а у меня далеко не современная техника. впрочем, проблему решил. таки какие-то конфликты с версиями gcc.

//капча: dogoned

anonymous
()
Ответ на: комментарий от anonymous

а то, что после ветки 2.6.23 началась деградация в скорости на старой технике, заметная глазом. говорят, в совсем свежих ядрах это поправили, но проверять охоты нет. у меня на pIII/600 было заметно. нафиг такое счастье не надо, пусть bleeding edge ставят гордые попугаи, невесть зачем понакупавшие многоядерных многогигагерцовок. мне лично такая монстроидальная техника не нужна.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.