Не пересобирается мир. Это нормально? Что с этим делать?

Собственно, в один прекрасный момент (неудовлетворенный revdep-rebuild) решил сделать emerge -e world (предварительно, emerge -e system прошел успешно). В результате получил (прошу прощения за гигантский выхлоп):

ex-cxx.o: In function `main':
ex-cxx.cpp:(.text+0xd5): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)'
ex-cxx.cpp:(.text+0x1b9): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)'
ex-cxx.cpp:(.text+0x1db): undefined reference to `std::basic_ostream<char, std::char_traits<char> >& std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char, std::char_traits<char> >&, char const*, long)'
ex-cxx.cpp:(.text+0x3a9): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
ex-cxx.cpp:(.text+0x409): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
ex-cxx.cpp:(.text+0x480): undefined reference to `std::basic_string<char, std::char_traits<char>, std::allocator<char> >::_Rep::_S_empty_rep_storage'
collect2: ld returned 1 exit status
make[4]: *** [ex-cxx] Error 1
make[4]: *** Waiting for unfinished jobs....
libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -O2 -pipe -Wl,-O1 -o ex-client1 ex-client1.o  ./.libs/libexamples.a ../../lib/.libs/libgnutls.so -L/usr/lib64 ../../libextra/.libs/libgnutls-extra.so /var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so ../../gl/.libs/libgnu.a -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/libextra/.libs
libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -O2 -pipe -Wl,-O1 -o ex-client-tlsia ex-client-tlsia.o  ./.libs/libexamples.a ../../lib/.libs/libgnutls.so -L/usr/lib64 ../../libextra/.libs/libgnutls-extra.so /var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so ../../gl/.libs/libgnu.a -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/libextra/.libs
libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -O2 -pipe -Wl,-O1 -o ex-serv-anon ex-serv-anon.o  ./.libs/libexamples.a ../../lib/.libs/libgnutls.so -L/usr/lib64 ../../libextra/.libs/libgnutls-extra.so /var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so ../../gl/.libs/libgnu.a -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/libextra/.libs
libtool: link: x86_64-pc-linux-gnu-gcc -std=gnu99 -O2 -pipe -Wl,-O1 -o ex-serv-pgp ex-serv-pgp.o  ./.libs/libexamples.a ../../lib/.libs/libgnutls.so -L/usr/lib64 ../../libextra/.libs/libgnutls-extra.so /var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs/libgnutls.so /usr/lib64/libtasn1.so -lz /usr/lib64/libgcrypt.so /usr/lib64/libgpg-error.so ../../gl/.libs/libgnu.a -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/lib/.libs -Wl,-rpath -Wl,/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/libextra/.libs
make[4]: Leaving directory `/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/doc/examples'
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory `/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/doc'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5/doc'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5'
make: *** [all] Error 2
 * ERROR: net-libs/gnutls-2.8.5 failed:
 *   emake failed
 * 
 * Call stack:
 *     ebuild.sh, line   54:  Called src_compile
 *   environment, line 2876:  Called _eapi2_src_compile
 *     ebuild.sh, line  646:  Called die
 * The specific snippet of code:
 *   		emake || die "emake failed"
 * 
 * If you need support, post the output of 'emerge --info =net-libs/gnutls-2.8.5',
 * the complete build log and the output of 'emerge -pqv =net-libs/gnutls-2.8.5'.
 * The complete build log is located at '/var/tmp/portage/net-libs/gnutls-2.8.5/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/net-libs/gnutls-2.8.5/temp/environment'.
 * S: '/var/tmp/portage/net-libs/gnutls-2.8.5/work/gnutls-2.8.5'

Будучи парнем не из робкого десятка я запустил emerge --resume и получил такую гадость:

stltest.o: In function `main':
stltest.cpp:(.text+0x501): undefined reference to `std::_Rb_tree_increment(std::_Rb_tree_node_base*)'
stltest.cpp:(.text+0x5fb): undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
stltest.cpp:(.text+0x63b): undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
stltest.cpp:(.text+0x67b): undefined reference to `std::_Rb_tree_decrement(std::_Rb_tree_node_base*)'
stltest.o: In function `std::_Rb_tree<int, std::pair<int const, double>, std::_Select1st<std::pair<int const, double> >, std::less<int>, std::allocator<std::pair<int const, double> > >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base const*, std::pair<int const, double> const&)':
stltest.cpp:(.text._ZNSt8_Rb_treeIiSt4pairIKidESt10_Select1stIS2_ESt4lessIiESaIS2_EE10_M_insert_EPKSt18_Rb_tree_node_baseSB_RKS2_[std::_Rb_tree<int, std::pair<int const, double>, std::_Select1st<std::pair<int const, double> >, std::less<int>, std::allocator<std::pair<int const, double> > >::_M_insert_(std::_Rb_tree_node_base const*, std::_Rb_tree_node_base const*, std::pair<int const, double> const&)]+0x6a): undefined reference to `std::_Rb_tree_insert_and_rebalance(bool, std::_Rb_tree_node_base*, std::_Rb_tree_node_base*, std::_Rb_tree_node_base&)'
collect2: ld returned 1 exit status
make: *** [stl] Error 1
STL disabled.
STL support cannot be enabled due to functionality tests!
 Turn on verbose messaging (-v) to ./configure to see the final report.
 If you believe this message is in error you may use the continue
 switch (-continue) to ./configure to continue.
 * ERROR: x11-libs/qt-core-4.5.3-r2 failed:
 *   ./configure failed
 * 
 * Call stack:
 *     ebuild.sh, line   54:  Called src_configure
 *   environment, line 3512:  Called qt4-build_src_configure
 *   environment, line 3157:  Called die
 * The specific snippet of code:
 *       ./configure ${myconf} || die "./configure failed";
 * 
 * If you need support, post the output of 'emerge --info =x11-libs/qt-core-4.5.3-r2',
 * the complete build log and the output of 'emerge -pqv =x11-libs/qt-core-4.5.3-r2'.
 * The complete build log is located at '/var/tmp/portage/x11-libs/qt-core-4.5.3-r2/temp/build.log'.
 * The ebuild environment file is located at '/var/tmp/portage/x11-libs/qt-core-4.5.3-r2/temp/environment'.
 * S: '/var/tmp/portage/x11-libs/qt-core-4.5.3-r2/work/qt-x11-opensource-src-4.5.3'

Насколько я понимаю, проблемы связаны между собой. Как с ними бороться? Почему раньше то собиралось, а сейчас не хочет?

Заранее благодарен.

/var/tmp/portage случайно не

/var/tmp/portage случайно не в tmpfs?

[занудство]Если уже не pastebin, то хотя бы воспользуйся тегом [code] [/занудство]

blow

blow написал(а):
/var/tmp/portage случайно не в tmpfs?

Нет, вполне честный диск и очень большой.

blow написал(а):
[занудство]Если уже не pastebin, то хотя бы воспользуйся тегом [code] [/занудство]

Вполне справедливое замечание. Исправил.

на багзиллу ! emerge --info

на багзиллу !

emerge --info на пастебин .

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Да рано его на багзилу

Да рано его на багзилу отправлять. Так можно всех туда посылать и закрывать форум. На багзилу - если сообщество не может помочь либо явно виден баг, который можно повторить. А тут даже разные пакеты не собираются. У меня такое было, когда /var/tmp/portage примонтировал в /tmpfs. Целый день потратил, пока не понял, в чем дело (по секрету - не хватало inode'ов)

Отчего так критично?

LBertone написал(а):
... Будучи парнем не из робкого десятка ...

blow написал(а):
Да рано его на багзилу отправлять.

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

Gentoo - Symphony of Creations

Да рано его на багзилу

Да рано его на багзилу отправлять

http://gentoo.ru/content/u-menya-voznikla-oshibka-pri-sborke-kakogo-libo-paketa-chto-delat

Compute:
Bosch M2.8.1 -> custom Bosch M2.8.3 clone from Russia.
Speed about 260 km,Ram 2 pers.,HDD - 70 kg,210 FLOPS ;)

Не спорю, что если не

Не спорю, что если не собирается конкретный пакет - нужно на багзилу. Но у ТС сначала не собрался один пакет, а после emerge --resume не собрался абсолютно другой (из чего можно предположить, что первый собрался). Т.е. похоже на то, что проблема не со сборкой конкретного пакета, а со сборкой пакетов вообще, причем ошибка может вылезти в любом пакете (почти случайном). И разработчики потратят свое драгоценное время впустую, т.к. похоже на то, что проблема не в коде/ебилдах, а у ТС в системном окружении.

А вот и нет! Это стало для

А вот и нет! Это стало для меня большим сюрпризом, но emerge --resume меняет порядок сборки! Таким образом, первый пакет так и остался не собран (хотя, желание его собрать у emerge осталось), но после того как emerge запоролся на втором, то далее, сколько ни запускай emerge --resume, он запарывается только на втором.

То, что emerge --resume

То, что emerge --resume иногда меняет порядок сборки, это понятно. А вот то, что не собирается теперь один конкретный пакет уже интересно. Если не помогут советы ниже, то действительно стоит запостить на багзиллу, как советует slepnoga

странно всё это

- Кэш компилятора включён? попробуйте выключить
- Экспериментальные ключи оптимизации? (make.conf на пастебин)
- libtool нормально пересобирается?
- и пожалуйста поподробнее про неудовлетворённый revdep-rebuild

haku написал(а): - Кэш

haku написал(а):
- Кэш компилятора включён? попробуйте выключить

А это что? :-)

haku написал(а):
- Экспериментальные ключи оптимизации? (make.conf на пастебин)

Нет. Все почти стандартно.

# These settings were set by the catalyst build script that automatically
# built this stage.
# Please consult /usr/share/portage/config/make.conf.example for a more
# detailed example.
CFLAGS="-O2 -pipe"
CXXFLAGS="-O2 -pipe"
# WARNING: Changing your CHOST is not something that should be done lightly.
# Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing.
CHOST="x86_64-pc-linux-gnu"
# These are the USE flags that were used in addition to what is provided by the
# profile used for building.
USE="mmx sse sse2"

MAKEOPTS="-j5"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles"
SYNC="rsync://mirror.yandex.ru/gentoo-portage"

USE="${USE} cdda pulseaudio samba xinerama"
VIDEO_CARDS="${VIDEO_CARDS} nvidia"
LINGUAS="en ru"
haku написал(а):
- libtool нормально пересобирается?

Более чем. Дважды делал emerge -e system, оба раза успешно.

haku написал(а):
- и пожалуйста поподробнее про неудовлетворённый revdep-rebuild

Все просто. После обновления системы сломались часики в gnome. Сделал revdep-rebuild, не помогло. Вспомнил, что emerge просил "revdep-rebuild --library libnss3.so.12", что и оказалось решением. А разочарование заключается в том, что revdep-rebuild без пинка под зад не увидел этого. Я подумал, что если revdep-rebuild не может гарантировать целостности, в чем я был до этого уверен, то сделаю ка я "emerge -e world"... вот и оказался тут ;-).

LBertone написал(а): А это

LBertone написал(а):
А это что? :-)

dev-util/ccache и т.п.

LBertone написал(а):
Нет. Все почти стандартно.

во первых не вижу в CFLAGS и CXXFLAGS параметра -march=
во вторых

USE="mmx sse sse2"
USE="${USE} cdda pulseaudio samba xinerama"

странно смотрится и пахнет рекурсией, сделайте слитно чтоль
то же самое с
VIDEO_CARDS="${VIDEO_CARDS} nvidia"

P.S. http://ru.wikipedia.org/wiki/Pastebin

во вторых [code] USE="mmx

Цитата:
во вторых
USE="mmx sse sse2"
USE="${USE} cdda pulseaudio samba xinerama"
странно смотрится и пахнет рекурсией, сделайте слитно чтоль
то же самое с
VIDEO_CARDS="${VIDEO_CARDS} nvidia"

Скорее это конкатенация (http://ru.wikipedia.org/wiki/Конкатенация) и она - ну никак не мешает ;)

Gentoo - Symphony of Creations

Что это за новое ругательство

Что это за новое ругательство такое, паст ебин? Где его найти? Я пока умею только так:

Portage 2.1.7.16 (default/linux/amd64/10.0/desktop, gcc-4.3.4, glibc-2.10.1-r1, 2.6.31-gentoo-r6 x86_64)
=================================================================
System uname: 
Timestamp of tree: Tue, 23 Feb 2010 08:15:01 +0000
app-shells/bash:     4.0_p35
dev-lang/python:     2.6.4
dev-util/cmake:      2.6.4-r3
sys-apps/baselayout: 1.12.13
sys-apps/sandbox:    1.6-r2
sys-devel/autoconf:  2.13, 2.63-r1
sys-devel/automake:  1.9.6-r2, 1.10.2
sys-devel/binutils:  2.18-r3
sys-devel/gcc:       4.3.4
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.2.6b
virtual/os-headers:  2.6.27-r2
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch"
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1"
LINGUAS="en ru"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
SYNC="rsync://mirror.yandex.ru/gentoo-portage"
USE="X a52 aac acl acpi alsa amd64 berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cracklib crypt cups cxx dbus dri dts dvd dvdr eds emboss encode evo fam firefox flac fortran gdbm gif gnome gpm gstreamer gtk hal iconv ipv6 jpeg kde ldap libnotify mad mikmod mmx mng modules mp3 mp4 mpeg mudflap multilib ncurses nls nptl nptlonly ogg opengl openmp pam pcre pdf perl png ppds pppd pulseaudio python qt3support qt4 quicktime readline reflection samba sdl session spell spl sse sse2 ssl startup-notification svg sysfs tcpd thunar tiff truetype unicode usb vorbis x264 xinerama xml xorg xulrunner xv xvid zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci 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 mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga neomagic nv r128 radeon savage sis tdfx trident vesa via vmware voodoo nvidia" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, PORTDIR_OVERLAY

Судя по схожести обоих ошибок

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

Версия пакетов, которые не собираются не менялись в течение всей жизни системы. Могу сделать предположение, что в одном случае glibc, gcc и им подобное были из stage3, а сейчас я их пересобрал через emerge -e system. Вот только как понять, как эту STL включить.

LBertone написал(а): Судя по

LBertone написал(а):
Судя по схожести обоих ошибок я могу сделать вывод, что проблема в неком STL. Гугл говорит, что это какая-то библиотека для работы со строками.

Версия пакетов, которые не собираются не менялись в течение всей жизни системы. Могу сделать предположение, что в одном случае glibc, gcc и им подобное были из stage3, а сейчас я их пересобрал через emerge -e system. Вот только как понять, как эту STL включить.

Пересоберите GCC, если удастся, проблема должна решиться.

Gentoo - Symphony of Creations

Увы, уже много раз (и не

Увы, уже много раз (и не только его, а весь system). Как мне кажется, проблема как раз и возникла из-за того, что я его пересобрал.

LBertone написал(а): Что это

LBertone написал(а):
Что это за новое ругательство такое, паст ебин? Где его найти?

Всё сказано в FAQ форума.

Я Gentoo & Funtoo

Ну, во первых, пакет, сие

Ну, во первых, пакет, сие дающий, ранее звался libstdc++ (именно в нем лежит STL - Standard Template Library)
Она в наше время собирается вместе с GCC - это вам правильно сказали.
Факт пересборки компилятора роли не играет, посему как у вас в системе их стоит несколько версий, если вы ставились из stage3. Сделайте так.

1. gcc-config -l (выведет список доступных версий компиляторов у вас в системе. Самай свежая - это та, что вы собрали)
2. gcc-config <строчка из п. 1 с самой свежей версией>
3. env-update && source /etc/profile (Обновим окружение, в остальных консолях достаточно перелогиниться)
4. Пробуем собирать пакеты, которые ранее не собирались.

Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"

>> Ну, во первых, пакет, сие

>> Ну, во первых, пакет, сие дающий, ранее звался libstdc++ (именно в нем лежит STL - Standard Template Library)

А у меня его нет и никогда не было.

alukyanov@pc ~ $ emerge -pv libstdc++

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild  N    ] sys-libs/libstdc++-v3-3.3.6  USE="(multilib) nls" 23,459 kB
[ebuild  N    ] virtual/libstdc++-3.3  0 kB

Total: 2 packages (2 new), Size of downloads: 23,459 kB

Компилятор один. Сначала использовался тот, что был в stage3. Потом он же пересобрался.

pc ~ # gcc-config -l
 [1] x86_64-pc-linux-gnu-4.3.4 *
pc ~ # 

Обновление окружения и последующие попытки собрать сбойные пакеты к положительному результату не привели.

И все таки, выдай на гора

И все таки, выдай на гора полный лог сборки.
Перед collect2: ld returned 1 exit status должно быть сообщение о том, какую либу не нашел ld.

И проверь фаловую систему, где /var/tmp/portage на наличие ошибок, проблема может быть и в ней (а если есть свободный раздел, примонтируй эту папку туда)

qt-core:

qt-core: http://pastebin.ca/1808301
gnutls: http://pastebin.ca/1808303

Файловая система тут не причем, с ней все хорошо.

В коментах GCC

дословно:

если у вас проблемы с библиотеками
достаточно выполнить
lafilefixer --justfixit
и все будет пучком

Gentoo - Symphony of Creations

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

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