Собственно, в один прекрасный момент (неудовлетворенный 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'
Насколько я понимаю, проблемы связаны между собой. Как с ними бороться? Почему раньше то собиралось, а сейчас не хочет?
Заранее благодарен.
Судя по схожести обоих ошибок я могу сделать вывод, что проблема в неком STL. Гугл говорит, что это какая-то библиотека для работы со строками.Версия пакетов, которые не собираются не менялись в течение всей жизни системы. Могу сделать предположение, что в одном случае glibc, gcc и им подобное были из stage3, а сейчас я их пересобрал через emerge -e system. Вот только как понять, как эту STL включить.
Пересоберите GCC, если удастся, проблема должна решиться.
Gentoo - Symphony of Creations
Что это за новое ругательство такое, паст ебин? Где его найти?
Всё сказано в 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. Пробуем собирать пакеты, которые ранее не собирались.
Пользуясь моментом, хочу передать привет друзьям, которые также пользуются "Моментом"
И все таки, выдай на гора полный лог сборки.
Перед collect2: ld returned 1 exit status должно быть сообщение о том, какую либу не нашел ld.
И проверь фаловую систему, где /var/tmp/portage на наличие ошибок, проблема может быть и в ней (а если есть свободный раздел, примонтируй эту папку туда)
дословно:
если у вас проблемы с библиотеками
достаточно выполнить
lafilefixer --justfixit
и все будет пучком
Gentoo - Symphony of Creations
/var/tmp/portage случайно не
/var/tmp/portageслучайно не вtmpfs?[занудство]Если уже не pastebin, то хотя бы воспользуйся тегом [code] [/занудство]
blow
Нет, вполне честный диск и очень большой.
Вполне справедливое замечание. Исправил.
на багзиллу ! 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'ов)
Отчего так критично?
А вы попытайтесь, вы же даже не пробовали помочь человеку ...
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 написал(а): - Кэш
А это что? :-)
Нет. Все почти стандартно.
Более чем. Дважды делал emerge -e system, оба раза успешно.
Все просто. После обновления системы сломались часики в gnome. Сделал revdep-rebuild, не помогло. Вспомнил, что emerge просил "revdep-rebuild --library libnss3.so.12", что и оказалось решением. А разочарование заключается в том, что revdep-rebuild без пинка под зад не увидел этого. Я подумал, что если revdep-rebuild не может гарантировать целостности, в чем я был до этого уверен, то сделаю ка я "emerge -e world"... вот и оказался тут ;-).
LBertone написал(а): А это
dev-util/ccache и т.п.
во первых не вижу в 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
Скорее это конкатенация (http://ru.wikipedia.org/wiki/Конкатенация) и она - ну никак не мешает ;)
Gentoo - Symphony of Creations