include/linux/compiler-gcc4.h:7:3: error: #error Your version of gcc miscompiles the __weak directive

Всех приветствую.

Надо поставить ядро 2.6.29.Х. Взял из портеджей gentoo-sources 2.6.29-r5. Пытаюсь компилить и вот что вылазиет:

nike linux # make
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/kxgettext.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf -s arch/x86/Kconfig
#
# configuration written to .config
#
  CHK     include/linux/version.h
  UPD     include/linux/version.h
  CHK     include/linux/utsrelease.h
  UPD     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
In file included from include/linux/compiler-gcc.h:86,
                 from include/linux/compiler.h:40,
                 from include/linux/stddef.h:4,
                 from include/linux/posix_types.h:4,
                 from include/linux/types.h:11,
                 from include/linux/page-flags.h:8,
                 from kernel/bounds.c:9:
include/linux/compiler-gcc4.h:7:3: error: #error Your version of gcc miscompiles the __weak directive
make[1]: *** [kernel/bounds.s] Ошибка 1
make: *** [prepare0] Ошибка 2
nike linux #
nike linux # pwd
/usr/src/linux

Первое что пришло в голову: надо обновить гцц. Обновил вместе с glic. И не помогло, та же фигня. Думал может чо с патчами намудрили гентовцы в этом ядре, взял чистое ядро с kernel.org такой же версии, пытался компилить его - вылазиет тоже самое. Подскажите как мне его всё таки поставить?

с git-sources-2.6.30_rc7-r6

с git-sources-2.6.30_rc7-r6 таже проблема.

покажите gcc-config -l

покажите
gcc-config -l

Пожалуйста: nike scripts #

Пожалуйста:

nike scripts # gcc-config -l
 [1] i686-pc-linux-gnu-3.3.6
 [2] i686-pc-linux-gnu-4.1.1 *
 [3] i686-pc-linux-gnu-4.3.3
nike scripts #

gcc-config 3 && env-update и

gcc-config 3 && env-update
и попробовать собрать ядро

хотя если не ошибаюсь ограничивали только 4,0, ветку

К сожалению не

К сожалению не помогло..

nike linux # gcc-config 3
* Switching native-compiler to i686-pc-linux-gnu-4.3.3...
>>> Regenerating /etc/ld.so.cache...                                                                                                                                                        [ ok ]

* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:

*   # source /etc/profile

nike linux # env-update
>>> Regenerating /etc/ld.so.cache...
nike linux #
nike linux # make
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
In file included from include/linux/compiler-gcc.h:86,
                 from include/linux/compiler.h:40,
                 from include/linux/stddef.h:4,
                 from include/linux/posix_types.h:4,
                 from include/linux/types.h:14,
                 from include/linux/page-flags.h:8,
                 from kernel/bounds.c:9:
include/linux/compiler-gcc4.h:8:4: error: #error Your version of gcc miscompiles the __weak directive
make[1]: *** [kernel/bounds.s] Ошибка 1
make: *** [prepare0] Ошибка 2
nike linux # gcc-config -l
 [1] i686-pc-linux-gnu-3.3.6
 [2] i686-pc-linux-gnu-4.1.1
 [3] i686-pc-linux-gnu-4.3.3 *
nike linux # gcc-config 1
* Switching native-compiler to i686-pc-linux-gnu-3.3.6...
>>> Regenerating /etc/ld.so.cache...                                                                                                                                                        [ ok ]

* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:

*   # source /etc/profile

nike linux # env-update
>>> Regenerating /etc/ld.so.cache...
nike linux # make
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
In file included from include/linux/compiler-gcc.h:86,
                 from include/linux/compiler.h:40,
                 from include/linux/stddef.h:4,
                 from include/linux/posix_types.h:4,
                 from include/linux/types.h:14,
                 from include/linux/page-flags.h:8,
                 from kernel/bounds.c:9:
include/linux/compiler-gcc4.h:8:4: error: #error Your version of gcc miscompiles the __weak directive
make[1]: *** [kernel/bounds.s] Ошибка 1
make: *** [prepare0] Ошибка 2
nike linux #

А прочитать текст, что вывела

А прочитать текст, что вывела первая команда?

Спасибо! Скомпилилось

Спасибо! Скомпилилось :)

nike nike # gcc-config 3
* Switching native-compiler to i686-pc-linux-gnu-4.3.3...
>>> Regenerating /etc/ld.so.cache...                                                                                                                                                        [ ok ]

* If you intend to use the gcc from the new profile in an already
* running shell, please remember to do:

*   # source /etc/profile

nike nike # source /etc/profile
nike nike # cd /usr/src/linux
nike linux # make
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  HOSTCC  scripts/genksyms/genksyms.o
  SHIPPED scripts/genksyms/lex.c
  SHIPPED scripts/genksyms/parse.h
  SHIPPED scripts/genksyms/keywords.c
  HOSTCC  scripts/genksyms/lex.o

ну и тд.

/

alk написал(а):
gcc-config 3 && env-update
и попробовать собрать ядро

А предупреждение по области применимости?

Или только мне глючится, что в данной номинации наблюдаются проблемы с обратной совместимостью, иначе говоря рекомендация скорее всего заведомо нерабочая?

:wq
--
Live free or die

Уф. Приятно поговорить с

Уф. Приятно поговорить с образованным человеком :)
Применимость методики положительно коррелирует только озвученной выше симптоматике.
Иными словами все что написано выше используйте на свой страх и риск.
Автор совета не несет ответственности за губительные последствия этого совета для вашей системы и/или окружающей среды.

Методика основана на изучении содержимого
/usr/src/linux/include/linux/compiler-gcc4.h
и принципов работы с переменными окружения дистрибутива gentoo.

Да, вам тоже спасибо за совет

Да, вам тоже спасибо за совет :) Я уже на новом ядре.

подобная фигня, но только не советы прокатывают

proxy bin # gcc-config -l
[1] i686-pc-linux-gnu-4.1.1
[2] i686-pc-linux-gnu-4.3.2 *

proxy bin # cd /usr/src/linux

proxy linux # env-update && source /etc/profile
>>> Regenerating /etc/ld.so.cache...

proxy linux # make
CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CC kernel/bounds.s
In file included from include/linux/compiler-gcc.h:86,
from include/linux/compiler.h:40,
from include/linux/stddef.h:4,
from include/linux/posix_types.h:4,
from include/linux/types.h:11,
from include/linux/page-flags.h:8,
from kernel/bounds.c:9:
include/linux/compiler-gcc4.h:7:3: error: #error Your version of gcc miscompiles the __weak directive
make[1]: *** [kernel/bounds.s] Ошибка 1
make: *** [prepare0] Ошибка 2

что может быть?

source /etc/profile забыли )

source /etc/profile забыли )

нееее. все норм, см

нееее. все норм, см выше:
env-update && source /etc/profile

Так в чем собственно, может быть проблема?
Ай нид хелп

У меня была такая

У меня была такая проблема:
Независимо от переключения на gcc-4.3.* в PATH оставался ещё и путь к gcc-4.1.1 (причём вместе с путём к gcc-4.3.*, но до него). Естественно если ты запускаешь в консоли gcc, что собственно и делает emerge, первым брался всегда gcc-4.1.1.
Проверь версию gcc:
gcc --version

Так что поможеть либо корректировка PATH, либо полный снос gcc-4.1.1.

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".