LINUX.ORG.RU

Ядра не конпеляются. (cc1: error: invalid option 'regparm=3')


0

1

[gentoo] Раньше все работало. А теперь, любое ядро (те которые раньше компилились с теми же конфигами):

 # make -j2
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  CC      scripts/mod/empty.o
cc1: error: invalid option 'regparm=3'
scripts/mod/empty.c:1: error: bad value (i686) for -march
Assembler messages:
Error: Bad value (i686) for -march
make[2]: *** [scripts/mod/empty.o] Ошибка 1
make[1]: *** [scripts/mod] Ошибка 2
make: *** [scripts] Ошибка 2

С чем может быть связано?

★★★★★

> С чем может быть связано?
Что в make menuconfig -> Process Type and features -> Process family? что за ARCH?

tn1
()
Ответ на: комментарий от uzbl
 # eselect profile list |grep \\*; emerge -vp gcc
  [1]   default/linux/x86/10.0 *
[ebuild     U ] sys-devel/gcc-4.4.5 [4.4.4-r2] USE="fortran mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj -graphite -gtk (-hardened) (-libffi) (-multilib) -multislot -nocxx -nopie -nossp -objc -objc++ -objc-gc -test -vanilla (-n32%) (-n64%)" 61,647 kB

Fortran? O_o.

Tanger ★★★★★
() автор топика
Ответ на: комментарий от tn1

Архитектура 32 битная. (хотя сам он 64. ступил.)

Core2/newer Xeon

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

> Fortran? O_o.
echo «USE=»${USE} -fortran" >> /etc/make.conf

Архитектура 32 битная. (хотя сам он 64. ступил.)

ок, будет есть меньше рамы.

gcc-config -l

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

Я просто удивился зачем его туда написал. и делать echo «USE=»${USE} -fortran" >> /etc/make.conf как-то неправильно.

 [1] i486-pc-linux-gnu-4.4.4 *

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

>i486-pc-linux-gnu

i486


Ну ты понел. Почему такой CHOST?

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

> Я просто удивился зачем его туда написал.
Он там по дефолту.

i486-pc-linux-gnu

А ядро собираешь i686. grep CFLAGS /etc/make.conf

tn1
()
Ответ на: комментарий от tn1
 # grep CFLAGS Makefile 
HOSTCFLAGS   = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer
CFLAGS_MODULE   =
CFLAGS_KERNEL	=
CFLAGS_GCOV	= -fprofile-arcs -ftest-coverage
KBUILD_CFLAGS   := -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
KBUILD_CFLAGS_KERNEL :=
KBUILD_CFLAGS_MODULE  := -DMODULE
export ARCH SRCARCH CONFIG_SHELL HOSTCC HOSTCFLAGS CROSS_COMPILE AS LD CC
export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE CFLAGS_GCOV
export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE
export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL
KBUILD_CFLAGS	+= -Os
KBUILD_CFLAGS	+= -O2
KBUILD_CFLAGS += $(call cc-option,-Wframe-larger-than=${CONFIG_FRAME_WARN})
KBUILD_CFLAGS += $(call cc-option, -fno-stack-protector)
KBUILD_CFLAGS	+= -fno-omit-frame-pointer -fno-optimize-sibling-calls
KBUILD_CFLAGS	+= -fomit-frame-pointer
KBUILD_CFLAGS	+= -g
KBUILD_CFLAGS 	+= $(call cc-option, -femit-struct-debug-baseonly)
KBUILD_CFLAGS	+= -pg
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
KBUILD_CFLAGS += $(call cc-option,-Wno-pointer-sign,)
KBUILD_CFLAGS	+= $(call cc-option,-fno-strict-overflow)
KBUILD_CFLAGS   += $(call cc-option,-fconserve-stack)
	KBUILD_CFLAGS += -DCC_HAVE_ASM_GOTO
# Add user supplied CPPFLAGS, AFLAGS and CFLAGS as the last assignments
ifneq ($(KCFLAGS),)
        $(call warn-assign,CFLAGS)
        KBUILD_CFLAGS += $(KCFLAGS)
Tanger ★★★★★
() автор топика
Ответ на: комментарий от tn1

Всё проще, конпилер и binutils собраны под i486 и ни о каких архитектурах и их опциях выше этого они не знают.

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

А я не помню уже :(

Но раньше же так все работало..

Tanger ★★★★★
() автор топика
Ответ на: комментарий от Tanger

> А чем плоха старая архитектура?
Я попал под действие маркетинга.

Обновил GCC, все заработало.

Без обновления chost?

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

> chost обновил только в make.conf, перед обновлением gcc. http://www.gentoo.org/doc/en/change-chost.xml не использовал.
Странно, если у тебя раньше был i486, то в /etc/env.d/gcc/i486-pc-linux-gnu-4.4.5 были прописаны i486 пути и как следствие простым s/i486/i686 в /etc/make.conf не обойтись.

?

Это дешёвый маркетинг -> новое/популярное лучше старого/редкого.

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