Компилятором - о грабли
Гость 16 июня, 2007 - 17:51
Гента помимо всех достоинств, замечательна еще тем, что способна работать на
> CPU: от i486
> Память: от 64 МБ
И тут как раз подвернулся 3-й пенёк с 256 метрами памяти.
Дальше дело было так:
- загрузился с minimalcd
- настроил eth0
- закачал и распаковал stage3
- начал компилять его - в ответ gcc спотыкается о неведомые грабли и выдает ошибку: "internal compiler error"
- та же трабла при попытке скомпилить stage2 и stage1
Что бы это могло быть? :-o
Вывод по команде emerge --info
Portage 2.1.2.7 (default-linux/x86/2007.0/desktop, gcc-4.1.1, glibc-2.5-r0, 2.6.19-gentoo-r5 i686) ================================================================= System uname: 2.6.19-gentoo-r5 i686 Pentium III (Coppermine) Gentoo Base System release 1.12.9 Timestamp of tree: Wed, 13 Jun 2007 01:47:01 +0000 dev-lang/python: 2.4.4-r4 dev-python/pycrypto: 2.0.1-r5 sys-apps/sandbox: 1.2.17 sys-devel/autoconf: 2.61 sys-devel/automake: 1.9.6-r2, 1.10 sys-devel/binutils: 2.16.1-r3 sys-devel/gcc-config: 1.3.16 sys-devel/libtool: 1.5.22 virtual/os-headers: 2.6.17-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium3 -pipe -Bdirect" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/env.d /etc/gconf /etc/splash /etc/terminfo" CXXFLAGS="-O2 -march=pentium3 -pipe -Bdirect" DISTDIR="/usr/portage/distfiles" FEATURES="ccache confcache distlocks metadata-transfer sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" LINGUAS="ru en" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages --filter=H_**/files/digest-*" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl acpi alsa arts berkdb bitmap-fonts cairo cdr cli cracklib crypt cups dbus dri dvd dvdr dvdread eds emboss encode esd evo fam firefox fortran gdbm gif gnome gpm gstreamer gtk hal iconv ipv6 isdnlog jpeg kde kerberos ldap libg++ mad midi mikmod mp3 mpeg mudflap ncurses nls nptl nptlonly ogg opengl openmp oss pam pcre pdf perl png pppd python qt3 qt3support qt4 quicktime readline reflection sdl session spell spl ssl svg tcpd tiff truetype truetype-fonts type1-fonts ucs2 unicode vorbis win32codecs x86 xattr xml xorg xv zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru en" USERLAND="GNU" VIDEO_CARDS="vesa intel ati frglx" Unset: CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY
»
- Для комментирования войдите или зарегистрируйтесь
у ты стейдж
у ты стейдж нетот взял, нужен x86 - а тут у тя CHOST="i686-pc-linux-gnu" конечно работать небудет
Ты не прав
Третий пень - это i686
Попробуй убрать -j2 и поставить кошерные CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer"
_________________
~? **!
я уже сам понял,
я уже сам понял, 2 потока непричём, я фрам-поинтер убивает дебаг
Мб
Вообще говоря, родной компилер из stage3 должен нормально компилить и с -O9, и с -ffast-math, но попробовать ограничиться приведенным выше набором CFLAGS имхо стоит.
_________________
~? **!
Так пробовал с
Так пробовал с stage1..x86
А какой CHOST должен быть?
что-то туплю -
что-то туплю - глянул у себя, всё так-же, только нет -Bdirect
Что-то все это
Что-то все это мне не очень нравится. Речь идет не о какой-то экзотике, а всего лишь об обычной установке с привлечением компилятора - и на тебе, на ровном месте возникли супер-проблемы, на которые пока никто из знатоков не дал однозначного ответа. А чего же дальше можно ожидать??
Не говорит ли это о низком качестве генты как таковой?
не говорит.
не говорит. если бы олдин из знатоков сел бы твой компьютер, он бы быстро все сделал.
попробуй измени сфлаги на пентиум 3, как выше написанно, пересобери gcc и glibc, потом уже ставь emerge system. у меня были такие грабли не раз, исправляются правильными cflags, chost и пересборкой компилятора.
_________________
Linux ns 2.6.18-suspend2-r1 #2 SMP Sat Feb 3 13:56:55 KRAT 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 5.0 :(
Re: не говорит.
в принципе, можно организовать. Есть желающие? :))
Странно
Во-первых, обо что конкретно спотыкается gcc?
Попробуй следующее:
CFLAGS="-march=pentium3 -O2 -pipe"
/usr/portage/profiles/scripts/bootstrap.sh
emerge -e world
_________________
~? **!
Меня смущает
Меня смущает последовательность действий
А всякие там настройки ядра, перезагрузки и прочее просто не упомянуты? Или как?
Настройки ядра
Настройки ядра и перезагрузки будут потом. В хендбуке написано.
_________________
Dell Latitude C640, Conrad-Gentoo, reiser4
Что-то я никак
Что-то я никак не могу упомнить пункта "компиляние архива stage3" (-;E
мне что-то тож
мне что-то тож такое не припоминается =) после распоковки stage3 я обычно делаю emerge system, или emerge -e system.
_________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Прямо из-под
Прямо из-под chroot'a? Я тоже, но только когда система уже сама фунциклирует — собрано ядро и всё такое
прям из chroot
прям из chroot ставлю. никаких проблем, никогда. потом только собираю ядро, ставлю груб сислог и крон, потом перезагружаюсь.
просто учился ставить по старой доке, давно, тогда еще у Меня 2005.1 вроде был диск. а теперь вообще без доки генту ставлю.
_________________
Linux home 2.6.19-gentoo-r5 #3 SMP Thu Jun 14 21:28:55 KRAST 2007 i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GenuineIntel GNU/Linux
Теперь и HTC TyTN :) Жалко на Windows Mobile 6.0 :(
Собсно зря.
Собсно зря. Первый стаж сделан для тех кто хочет свою системку собирать с ноым компилером и глибц. После бутстрапа получается нечто минимальное, готовое собирать системку дальше. Стаж 2 называется. После сборки собсно системы (emerge -e system) стаж3. Самое время поставить сурсы ядра и все такое. Писано в хендбуке. Затем сборка всего остального по желанию (это от того , что у остального могут возникнуть потребности в сурсах ядра). То что вы пытаетесь сделать ето как бы пересборка мира ограниченного system. Смысл этого немного непонятен, но тем не менее.
Значит необходимо определиться на каком пакете отвал. А то у меня с телепатией туго. Если не на сборке glibc и gcc м можно попробовать запустить bootstrap. Страшного ничего не произойдет, пересоберет компилятор и gcc дважды (новый компилер со старой либой, новую либу новым компилером, затем новый компилер с не очень новой либой, и потом нову либу). Типа предупредительный выстрел в лоб на всякий случай. Ежели отвалится бутсрап - придется делать это руками, включая-отключая юсы по сообщениям. Частенько валится сборка системы с флагом -e (при переходе со тажа 2 на 3). У вас маловероятно поскольку стаж 3 уже был. По простому как правило лечится двойной пересборкой системы (без опции -e , затем с опцией), а по правильному без логов отвала никак.
ЗЫ
При выборе флагов посмотрите вывод cat /proc/cpuinfo. Особое внимание обратить на наличие всяких там mms и sse. Дело в том что код, к примеру с поддержкой sse2, прекрасно собирается и работает на машинках без поддержки оного. До первого вызова инструкции sse2. Затем сегфолт :). Весьма непредсказуемое поведение.
Поставил
Поставил настройки по TolicH, в итоге получил:
Смутило появление надписи "athlon_fp"
mm.. #df -h #mount
mm..
#df -h
#mount
mm.. #df -h #mount
mm..
#df -h
#mount
livecd gentoo # df
livecd gentoo # df -h
Filesystem Size Used Avail Use% Mounted on
tmpfs 125M 32M 94M 26% /
/dev/hdc 58M 58M 0 100% /mnt/cdrom
/dev/loop0 44M 44M 0 100% /mnt/livecd
udev 125M 548K 125M 1% /dev
tmpfs 125M 2.1M 123M 2% /mnt/livecd/lib/firmware
tmpfs 125M 0 125M 0% /mnt/livecd/usr/portage
/dev/hda3 11G 2.0G 8.6G 19% /mnt/gentoo
livecd gentoo # mount
tmpfs on / type tmpfs (rw)
/dev/hdc on /mnt/cdrom type iso9660 (ro)
/dev/loop0 on /mnt/livecd type squashfs (ro)
proc on /proc type proc (rw,nosuid,nodev,noexec)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec)
udev on /dev type tmpfs (rw,nosuid)
devpts on /dev/pts type devpts (rw,nosuid,noexec)
tmpfs on /mnt/livecd/lib/firmware type tmpfs (rw)
tmpfs on /mnt/livecd/usr/portage type tmpfs (rw)
usbfs on /proc/bus/usb type usbfs (rw,noexec,nosuid,devmode=0664,devgid=85)
/proc on proc type none (rw,bind)
/dev/hda3 on /mnt/gentoo type reiserfs (rw)
/proc on proc type none (rw,bind)
/sys on /mnt/gentoo/sys type none (rw,bind)
/dev on /mnt/gentoo/dev type none (rw,bind)
Please submit a full bug report
Да уж, ничего иного, кроме сабжа, делать не остаеццо имхо. Сходи до багзиллы, мб что-нибудь посоветуют.
_________________
~? **!
Если проблема
Если проблема всё ещё актуальна, то убери -pipe из цфлагов. Токо может кончиться память. Если чо - добавь свопу.
Если проблема
Если проблема всё ещё актуальна, то убери -pipe из цфлагов. Токо может кончиться память. Если чо - добавь свопу.