Не пересобирается мир. Это нормально? Что с этим делать?
Собственно, в один прекрасный момент (неудовлетворенный 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'
Насколько я понимаю, проблемы связаны между собой. Как с ними бороться? Почему раньше то собиралось, а сейчас не хочет?
Заранее благодарен.
- Для комментирования войдите или зарегистрируйтесь
Что это за новое ругательство
Что это за новое ругательство такое, паст ебин? Где его найти? Я пока умею только так:
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 написал(а): Судя по
Судя по схожести обоих ошибок я могу сделать вывод, что проблема в неком STL. Гугл говорит, что это какая-то библиотека для работы со строками.Версия пакетов, которые не собираются не менялись в течение всей жизни системы. Могу сделать предположение, что в одном случае glibc, gcc и им подобное были из stage3, а сейчас я их пересобрал через emerge -e system. Вот только как понять, как эту STL включить.
Пересоберите GCC, если удастся, проблема должна решиться.
Gentoo - Symphony of Creations
- Для комментирования войдите или зарегистрируйтесь
Увы, уже много раз (и не
Увы, уже много раз (и не только его, а весь system). Как мне кажется, проблема как раз и возникла из-за того, что я его пересобрал.
- Для комментирования войдите или зарегистрируйтесь
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
Файловая система тут не причем, с ней все хорошо.
- Для комментирования войдите или зарегистрируйтесь
/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=
во вторых
странно смотрится и пахнет рекурсией, сделайте слитно чтоль
то же самое с
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