ARCH-i386
задача: собрать систему для работы на первом пне, для ускорения процесса решил собирать
на i686 Intel(R) Celeron(R) CPU 1.70GHz GenuineIntel GNU/Linux, вот что я сделал:
mkdir i586
cd i586
tar -xjvpf /mnt/cdrom/stage3-x86-2006.0.tar.bz2
chroot /i586
env-update
source /etc/profile
mount /usr/portage (дерево с NFS-сервера)
emerge metadata
make.conf
CFLAGS="-O2 -march=i586 -pipe"
CXXFLAGS="${CFLAGS}"
CC="gcc"
CXX="g++"
CHOST="i586-pc-linux-gnu"
USE="
hardened
unicode
-X
-qt
-kde
-gnome
-gtk
-ipv6
"
PORTAGE_TMPDIR=/var/tmp
PORTDIR=/usr/portage
DISTDIR=${PORTDIR}/distfiles
PKGDIR=${PORTDIR}/packages.pentium
GENTOO_MIRRORS="http://src.gentoo.pl
emerge -euD world
gcc-config -l
[1] i586-pc-linux-gnu-3.4.5 *
[2] i586-pc-linux-gnu-3.4.5-hardenednopie
[3] i586-pc-linux-gnu-3.4.5-hardenednopiessp
[4] i586-pc-linux-gnu-3.4.5-hardenednossp
[5] i586-pc-linux-gnu-3.4.5-vanilla
ставим ядро
emerge -pv gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.15-r1 -build -doc +symlink (-ultra1) 0 kB
Total size of downloads: 0 kB
cd /usr/src/linux
make menuconfig
cp .config /etc/kernels/kernel-config-x86-2.6.15-r1
genkernel all
и получаем граблю
genkernel.log
klibc/send.o: In function `send':
klibc/send.c:9: undefined reference to `__guard'
klibc/send.c:11: undefined reference to `__stack_smash_handler'
klibc/recv.o: In function `recv':
klibc/recv.c:9: undefined reference to `__guard'
klibc/recv.c:11: undefined reference to `__stack_smash_handler'
klibc/libgcc/__divdi3.o: In function `__divdi3':
klibc/libgcc/__divdi3.c:11: undefined reference to `__guard'
klibc/libgcc/__divdi3.c:29: undefined reference to `__stack_smash_handler'
klibc/libgcc/__moddi3.o: In function `__moddi3':
klibc/libgcc/__moddi3.c:11: undefined reference to `__guard'
klibc/libgcc/__moddi3.c:29: undefined reference to `__stack_smash_handler'
klibc/libgcc/__udivdi3.o: In function `__udivdi3':
klibc/libgcc/__udivdi3.c:11: undefined reference to `__guard'
klibc/libgcc/__udivdi3.c:13: undefined reference to `__stack_smash_handler'
klibc/libgcc/__umoddi3.o: In function `__umoddi3':
klibc/libgcc/__umoddi3.c:11: undefined reference to `__guard'
klibc/libgcc/__umoddi3.c:16: undefined reference to `__stack_smash_handler'
klibc/libgcc/__udivmoddi4.o: In function `__udivmoddi4':
klibc/libgcc/__udivmoddi4.c:5: undefined reference to `__guard'
klibc/libgcc/__udivmoddi4.c:32: undefined reference to `__stack_smash_handler'
make[2]: *** [klibc/libc.so] Ошибка 1
make[1]: *** [all] Ошибка 2
make: *** [klibc] Ошибка 2
* Gentoo Linux Genkernel; Version 3.3.11[0m
* Running with options: all
* ERROR: Failed to compile the "ARCH=i386" target...
* -- Grepping log... --
* -- End log... --
c чем это может быть связано?
- Для комментирования войдите или зарегистрируйтесь
Покажи вывод
Покажи вывод комманды:
# binutils-config -l
Возможно нужно будет пересобрать пакет binutils.
Система
Система полностью пересобиралась после правки make.conf
emerge -euD world
# binutils-config -l
[1] i586-pc-linux-gnu-2.16.1 *
__________________
Главное не забыть mount /dev/hands
Странно
Странно, на сколько я понял конфиг в ручную был создан, попробуй в ручную скомпилировать ядро. Т.е.
cd /usr/src/linux
make
make дает тот же
make дает тот же результат, genkernel пользуюсь только для автоматизации
момента сборки и копирования образа
меня смущает вот эти строчки они повторяются довольно часто
undefined reference to `__guard'
undefined reference to `__stack_smash_handler'
_________________
Главное не забыть mount /dev/hands
Видимо дело в
Видимо дело в конфиге ядра, поиграйся с ним. Я тоже бывало сталкивался с тем, что две опции конфликтовали друг с другом, так же посмотри - какой процессор указан в конфиге ядра.
P.S. Попробуй ещё
P.S. Попробуй ещё вот что:
# cd /usr/src/linux
# cp .config ~/
# make mrproper
# mv ~/.config ./
# make