[РЕШЕНО] Не собираются kdelibs-4.3.0
Совершенно не хочет собираться kdebase-meta-4.3.0... Перепробовал уже практически всё!
Интернет по сему поводу молчит. Вылетает на сборке kdelibs:
dockmainwindow3.cpp:(.text._ZN9Q3PtrListIN6KParts6PluginEED0Ev[Q3PtrList
dockmainwindow3.cpp:(.text._ZN9Q3PtrListIN6KParts6PluginEED0Ev[Q3PtrList
CMakeFiles/kde3support.dir/kparts/dockmainwindow3.o:(.data.rel.ro._ZTV9Q3PtrListIN6KParts6PluginEE[vtable for Q3PtrList
CMakeFiles/kde3support.dir/kparts/dockmainwindow3.o:(.data.rel.ro._ZTV9Q3PtrListIN6KParts6PluginEE[vtable for Q3PtrList
CMakeFiles/kde3support.dir/kparts/dockmainwindow3.o:(.data.rel.ro._ZTV9Q3PtrListIN6KParts6PluginEE[vtable for Q3PtrList
CMakeFiles/kde3support.dir/kparts/dockmainwindow3.o:(.data.rel.ro._ZTV9Q3PtrListIN6KParts6PluginEE[vtable for Q3PtrList
collect2: выполнение ld завершилось с кодом возврата 1
make[2]: *** [lib/libkde3support.so.4.3.0] Ошибка 1
make[1]: *** [kde3support/CMakeFiles/kde3support.dir/all] Ошибка 2
make[1]: *** Ожидание завершения заданий...
[31m[1mLinking CXX shared module ../../../../lib/emoticonstheme_kde.so
[0m[ 83%] Built target emoticonstheme_kde
make: *** [all] Ошибка 2
[31;01m*[0m
[31;01m*[0m ERROR: kde-base/kdelibs-4.3.0 failed.
[31;01m*[0m Call stack:
[31;01m*[0m ebuild.sh, line 49: Called src_compile
[31;01m*[0m environment, line 3311: Called kde4-base_src_compile
[31;01m*[0m environment, line 2495: Called cmake-utils_src_compile
[31;01m*[0m environment, line 827: Called cmake-utils_src_make
[31;01m*[0m environment, line 907: Called die
[31;01m*[0m The specific snippet of code:
[31;01m*[0m emake "$@" || die "Make failed!";
[31;01m*[0m The die message:
[31;01m*[0m Make failed!
Может кто-нибудь сталкивался с подобным?
Прилагаю свой emerge --info
Portage 2.1.6.13 (default/linux/x86/2008.0, gcc-4.1.2, glibc-2.6.1-r0, 2.6.30-gentoo-r5 i686)
=================================================================
System uname:
Timestamp of tree: Fri, 28 Aug 2009 01:45:02 +0000
app-shells/bash: 3.2_p39
dev-java/java-config: 1.3.7-r1, 2.1.8-r1
dev-lang/python: 2.4.4-r13, 2.5.2-r7
dev-util/cmake: 2.6.4-r2
sys-apps/baselayout: 1.12.11.1
sys-apps/sandbox: 1.6-r2
sys-devel/autoconf: 2.13, 2.63-r1
sys-devel/automake: 1.7.9-r1, 1.9.6-r2, 1.10.2, 1.11
sys-devel/binutils: 2.18-r3
sys-devel/gcc-config: 1.4.1
sys-devel/libtool: 1.5.26
virtual/os-headers: 2.6.27-r2
ACCEPT_KEYWORDS="x86"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=prescott -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /etc/conf.d/clock"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/udev/rules.d"
CXXFLAGS="-O3 -march=prescott -pipe"
DISTDIR="/mnt/tmp/distfiles/"
FEATURES="distlocks fixpackages parallel-fetch protect-owned sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="ru_RU.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1"
LINGUAS="en ru"
MAKEOPTS="-j2"
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"
PORTDIR_OVERLAY="/usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac acl acpi alsa apic arch_perfmon automount berkdb bluetooth bts bzip2 clflush cli cmov constant_tsc cracklib crypt cx8 dbus de dri ds_cpl dts est fortran fpu fxsr gdbm gif gpm hal ht iconv ipv6 isdnlog java jpeg jpeg2k kde lahf_lm lame laptop lm_sensors logitech-mouse matroska mca mce mmx monitor mp3 mpeg msr mtrr mudflap mysql ncurses nls nptl nptlonly nx opengl openmp pae pam pat pbe pcre pdf pebs perl pge pni pppd profile pse python qt3support qt4 quicktime readline reflection samba sep session spl ss sse sse2 ssl ssse3 supermount svg sysfs tcpd tm tm2 tsc unicode usb visualization vme wifi win32codecs x86 xml xorg xscreensaver xtpr zlib" ALSA_CARDS="hda-intel" 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="synaptics evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en ru" USERLAND="GNU" VIDEO_CARDS="intel"
Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
- Для комментирования войдите или зарегистрируйтесь
> Перепробовал уже
> Перепробовал уже практически всё!
А что именно попробовали?
.
а мне интернет наоборот сказал
qt-x11-opensource-src-4.4.3/src/qt3support/tools/q3glist.h
и я сразу подумал про USE "qt3support"
(у меня - включён)
P.S. опа, признаю свою невнимательность (флаг-то тут включен)
Это подпись, которую невозможно истолковать неправильно
Я тоже полагаю, что копать
Я тоже полагаю, что копать надо в сторону qt3. Может этот флаг только недавно включен?
Попробуйте revdep-rebuild и сборку запустите с опциями "-uDN".
.
Например, при удачной сборке в файле
/var/tmp/portage/kde-base/kdelibs-4.3.0/temp/environment
видны строки:
>=x11-libs/qt-core-4.5.1:4[qt3support,ssl]
>=x11-libs/qt-qt3support-4.5.1:4[accessibility,kde]
>=x11-libs/qt-sql-4.5.1:4[qt3support]
Это подпись, которую невозможно истолковать неправильно
Что вообще стоит сделать:1.
Что вообще стоит сделать:
1. Думаю, стоит обновить компилятор до gcc:4.3
2. Обновить os-headers до версии, соответствующей установленному ядру
3. Поставить -march=native и MAKEOPTS="-j1" (если не ошибаюсь, атомы ведь одноядерные)
4. Обновить glibc и пересобрать мир
4. Показать нам eix -I qt-
5. Показать нам с какаими флагами ставите kdelibs
зачем MAKEOPTS="-j1"? у атома
зачем MAKEOPTS="-j1"? у атома есть HyperThreading, и j3-j5 ему будет в самый раз.
иногда это приводит к
иногда это приводит к потивоположному эффекту
Hyper-threading
не согласен. HT работает
не согласен. HT работает лучше, когда оба виртуальных ядра заняты "разными" задачами. у меня на p4-prescott ядро при make -j3 компилилось на 15% быстрее чем -j1. проверял опытным путем. так что касаемо сборки - прирост от HT на ней есть.
ну, если вы так уверены в
ну, если вы так уверены в быстроте с HT, то в любом случае лучше ставить -jn, где n - колиество процессоров, а не n+1, иначе нарушается симметричность и какое-то ядро всегда загружено больше. уж не знаю как с НТ, но с действительно многоядерными процами это так... проверить достаточно легко, если у вас иногда бывает сообщение, что ld завершилось с кодом возврата 1 (или -1, не помню точно), то поставьте n=количество ядер и ошибка пропадет сама собой ;-)
у Вас слишком примитивное
у Вас ИМХО слишком примитивное представление о параметре -jn. существую пакеты, которые состоят из очень большого количества *.c файлов, компилинг которых на двухядерном процессоре занимает МЕНЬШЕ времени, чем его загрузка в память. когда параметр -jn слишком низкий - это хорошо видно по неполной загрузке ядер. параметр -jn я выявлял опытным путем последством пересборки одного и того же пакета при разных флагах, при сброшенном файловом кэше. так вот я получил формулу примерно соответствующую той, которая иногда приводится на форумах по gentoo. а именно j = n*2+1. где n- количество ядер. у меня на двухядерном турионе стоит -j5.
при параметре равном -j6 на intel core 2 quad q6600 4х ядернике open-office собирался на 5% медленее, чем с параметром -j10.
а на моем AMD Turion RM-76 при сборке какого-то из пакетов (сейчас не всплмню уже) ядра были загружены на 50-70% при -j3, потому что очень много времени тратилось на io/wait судя
по top.
просто протестируйте разные параметры и увидите разницу на разных -jn.
зы: ld ни разу не падало с той ошибкой, которую Вы описали. хотя собирал с -j10 систему на кваде. хотя не спорю на форумах встречал, когда люди писали, что при j>1 у некоторых не собирались пакеты, а при -j1 собирались. но там имхо от флагов много зависит...
Например, у меня на Atom тоже
Например, у меня на Atom тоже стоит "-j1" и мне не важно, как там что-то будет собираться быстрее... Для меня важно, чтобы компьютер не тормозил, пока что-то собирается. Именно по этой причине на большинстве машин будь то ноутбук или сервер "-j1" будет оптимально :)
Так что может не стоит столь горячо всех убеждать, что "-j3" для Atom-а будет лучше, чем "-j1" ?
чтобы компьютер не тормозил,
чтобы компьютер не тормозил, есть параметр PORTAGE_NICENESS.. man make.conf.
менять параметры --j только для того, чтобы "компьютер не тормозил во время сборки" тоже самое что возить картошку на лексусе.
если выставить большое -j и
если выставить большое -j и большое PORTAGE_NICENESS, то это всё равно, что дать кому-то яблоко правой рукой, и тут же забрать его левой xD
если вы такой фанат прироста скорости в 3%, то почему-бы не купить нормальную машину, которую еще и разогнать можно было в 2 раза, а не на 3%
и давайте ка сюда реальные цифры о времени сборки OOo...
например, запостите сюда вывод?
Давайте вы научитесь читать,
Давайте вы научитесь читать, прежде чем будете что-то писать.
man emerge
,man make
иman make.conf
негодуя указывают вам на себя, какбе намекая, что вы не в теме. Я им помогу:emerge --jobs n
иmake -j n
- разные вещи, а приведенная вами комманда выдаст одинаковые результаты, как раз в виду указанных вами параметров.Про тред вообще: в системе есть не только процессор, а еще диски/память, к примеру, с которыми компилятор активно работает, поэтому в некоторых случаях распаралеливание сборки (любым способом) дает ощутимый прирост, за счет того, что пока одно компиляется, другое загружается в память и т.п.
"Don't guess perfomance, profile it!"
полностью подтверждаю
полностью подтверждаю вышесказанное. с предыдущим оратором спорить не буду. захочет - сам проверит.
кстати у меня /tmp и /var/tmp на tmpfs сделаны. только при сборке OOo делаю PORTAGE_TMPDIR="/var/tmp_" ибо 4 гига памяти всего :(
2предыдущий оратор
я считаю невежливым кричать "чтобы не тормозило купите новый комп". во-первых не каждый может себе позволить это, а во вторых зачет тогда нужна gentoo, если не для максимальной оптимизации для достиженяи максимальнйо производительности на текущей машине
зы сижу на HP Probook 4515s AMD TurionX2 RM-76 c 4GB RAM и вполне доволен его производительностью, но я хочу, чтобы он работал на максимум своих возможностей, а не "лишь бы не тормозил".
NightNord написал(а): emerge
ну, ляпул глупость - с кем не бывает... я --jobs не пользуюсь... тада тот же эксперимент с MAKE_OPTS="-jn"
монтирование
/var/tmp/portage/
затея безполезная... дает прирост в считаные секунды, если вообще дает...1) А зря, кстати, в некоторых
1) А зря, кстати, в некоторых случаях
--jobs
куда лучше (в основном за счет configure и форсированных -j1 и прочих), нежелиMAKEOPTS="-jn"
. Могло бы быть еще лучше, но из-за дурацкой реализации colission-protect, его очень сильно тормозит (установка идет только последовательно, во всяком случае шла на 20ых rc 2.2 portage).2) Не всегда. Зависит от оборудования и от нагрузки, разве это не очевидно?
монтирование /var/tmp/ в
монтирование /var/tmp/ в tmpfs дает как минимум снижение частоты обращения к винту в повседневной работе, ибо plasma-desktop постоянно что-то пишет в кэш в /var/tmp/kdecache-USER/, а плюс к скорости сборки уже опционально.
+ к режиму laptop=5 для vm дает нормальное управление энергопотреблением винта за счет уменьшения частоты сброса dirty inodes и как следствие меньшее его использование, что на ноутбуке очень важно. да и лишний раз продлить срок службы железа это тоже хорошо.
возможно на ноутах это и дает
возможно на ноутах это и дает прирост - спориь не буду, но на полноценных машинах никакого... когда я в первый раз пришел к логическому измышлению, что это даст прирост производительности, я написал скрипт, который монтировал раздел в 4 гига в /var/tmp/portage и запускал emerge... выигрышь вышел в 3-5 секунд.... я не преувеличиваю...
вообще изначально спор шел о
вообще изначально спор шел о том, есть ли прирост при разных значениях -jx (в чпастности -j5 по сравнению с -j2). про /var/tmp я написал, чтобы исключить возможное влияние винта на сборку при разных -j. :)
а то что -j5 собирает быстрее -j2 и тем более -j1 на 2х ядерных машинах - это я выяснил опытным путем и убеждать меня в обратном бесполезно ;)
ну, опция и создана для
ну, опция и создана для многопроцессорных/многоядерных машин ;-)
спор был как раз про HT! )))
ну у HT прирост меньше
ну у HT прирост меньше конечно, но тоже наличествует, что я и тестил на P4 620(LGA775) и p4 2.8 (PGA478). на обоих машинах прирост около 10-15% от -j2 по сравнению с -j1, и около 5% e -j5 по српавнению с -j2. но последнее имхо изза того что винт у меня 5400rpm на ide и /var/tmp не в tmpfs. тоесть тупо долго исходники в память подгружает.... (да памяти тож мало и возможно не весь пакет в файловый кэш помещался при распаковке исходника).
Иногда бывает баг сборки,
Иногда бывает баг сборки, из-за кривых мейкфайлов. Лечится принудительным -j1 в ебилде и багом в апстриме. Это отслеживают ментейнеры.
Theli написал(а): Что вообще
сделал python-updater.
пытался обновить gcc... но безрезультатно. валится http://paste.org.ru/?5jovus
изменил make.conf http://paste.org.ru/?ia1q9i
пересобрал toolchain... всё равно gcc валится(((((
запустил revdep-rebuild
не собирается boost... он и до этого вообще никак не собирался(
что делать? куда бежать?
я в панике...
A computer without a Microsoft operating system is like a dog without bricks tied to its head
может проблема в железе?
может проблема в железе? память сбойная, греется проц или как-то так....
cat /proc/cpuinfo что говорит?
crypton написал(а): может
Неее... Точно не в железе (Asus Eee PC 901) проблема.
Всегда перед запуском делаю:
watch -n 10 "df | grep ram0; echo; cat /proc/acpi/batary/BAT0/state; echo; cat /proc/cpuinfo"
Слежу за состоянием нетбука.
A computer without a Microsoft operating system is like a dog without bricks tied to its head
у моего друга на таком же
у моего друга на таком же gentoo стоит. флаги оптимизации паравда у него
стоят. полет нормальный. попробуй может поможет :)
для этого ему нада сначала
для этого ему нада сначала поставить >=gcc-4.2.0 ;-)
anatolich , если boost не собирается, то замаскирйте его нафиг ;-) попробуйте другие версии gcc... у меня как-то получилось перейти с gcc-4.1.2 на gcc-4.3.0 только через gcc-4.2.4 =)
взможно и так. потому что не
взможно и так. потому что не имел опыта перехода с 4.1 сразу на 4.3, т.к. обовляюсь довольно часто.
просто generic и native
просто generic и native появились только в gcc-4.2.0 =)
и не только у тебя... 4.1.2 в
и не только у тебя... 4.1.2 в упор не компилит 4.3.1, хотя 4.2.4 собирается нормально, а он уже и 4.3.1 собрал
Да я чайник ;)
anatolich
покажите
emerge -pv gcc
главное не паниковать, успокоиться и пробовать и пробовать даже самые лихие идеи - это и есть процесс постижения знаний и приобретение опыта ;-)
Уберите LDFLAGS="-Wl,-O1" из
Уберите LDFLAGS="-Wl,-O1" из make.conf
И поставьте уже, наконец, нормальную локаль! А то в логах компиляции у вас какие-то кракозябры вместо сообщений.
лдфлаги кделибсам не мешают,
лдфлаги кделибсам не мешают, проверенно =).
всё только начинается
Убрал если бы параметр LDFLAGS был бы прописан в make.conf. Он берётся по умолчанию ;-)
С локалями всё нормуль. Приходится отправлять сообщения на форум через Венду... Вьювер тотала командера по умолчанию не понимает юникод. Сорри, не поглядел на конец лога, где русские буквы появляются.
И так! Моя эпопея продолжается!))
Ни минуты без компиляции)
Успехи:
1) Удалось обновить gcc до замаскированной версии 4.2.4-r1. На этом думал жизнь удалась и все остальные версии gcc с новой без проблем сбилдятся. Ан нет! Все! Все сборки gcc крашатся на одном и том же месте: -I../libdecnumber insn-recog.c -o insn-recog.o повисит с минутку и падает с ошибкой. Подробный лог - http://paste.org.ru/?a0h18e
2) Собралась единственная boost версии 1.34.1-r2. Но для новеньких кед нужна 1.39, которая в упор не собирается. Нашёл на форуме решение проблемы с boost - собрать со всеми флагами USE. Не помогло. Я подозреваю, что из-за gcc...
Кто подскажет куда копать?
A computer without a Microsoft operating system is like a dog without bricks tied to its head
Кстати...
Забыл совсем...
emerge -pv gcc
[ebuild NS ] sys-devel/gcc-4.3.2-r3 [4.2.4-r1] USE="fortran gtk mudflap nls nptl openmp (-altivec) -bootstrap -build -doc (-fixed-point) -gcj (-hardened) -ip28 -ip32r10k -libffi (-multilib) -multislot (-n32) (-n64) -nocxx -nopie -objc -objc++ -objc-gc -test -vanilla" 0 kB
может что-то надо убрать или добавить?
A computer without a Microsoft operating system is like a dog without bricks tied to its head
anatolich написал(а):Забыл
надо бы включить
multislot
да и
fortran
вам врят ли нужен ;-)anatolich написал(а): 2)
У меня КДЕ 4.3 и boost-1.37.0-r1(1.39 не собирается на 1 из трех компов) т.е. 1.39 не обязательна.
gcc-4.4.1
Не ужели никто не сталкивался
boost-1.37.0-r1 тоже не собирается...
Не ужели никто не сталкивался с подобной проблемой?
A computer without a Microsoft operating system is like a dog without bricks tied to its head
.
Напомните, о какой проблеме мы говорим - по прежнему kdelibs?
У меня
gcc-4.4.1
kdelibs-4.3.1
boost-1.39.0
когда у меня что-то не собирается, я делаю LANG=C emerge xxxxx
а потом гуглю самые осмысленные строки на английском, например,
"undefined reference to `Q3GList::clear()'"
Это подпись, которую невозможно истолковать неправильно
угу... kdelibs
У меня:
gcc-4.2.4-r1
boost-1.34.1-r2
Пытаюсь собрать kdebase-meta-4.3.1... Падает с той же ошибкой, что и в самом первом сообщении этого обсуждения.
Если делать
emerge -vauDN kdebase-meta
, то портэдж предлагает проапдейтить boost до версии 1.35.0-r2.Ни gcc, ни boost на более поздние версии обновиться не хочет. Ошибки, с которыми они падают, приведены выше.
A computer without a Microsoft operating system is like a dog without bricks tied to its head
что-то многовато на форуме
что-то многовато на форуме желоб на kdebase-meta... попробуйте уже поставить из сетов...
just do it! как грица)
запилил я эти кеды) всё-таки опасно долгое время не обновлять gentoo!
для тех, кто может столкнуться с подобной бедой прилагаю свои действия:
1) обновил gcc до 4.2.4-r1
2) выставил в make.conf -march=native
3) установил boost-1.34.1-r2
4) скопировал в /etc/portage.keywords/kdebase-meta-4.3.d/kde.keywords содержимое
http://git.overlays.gentoo.org/gitweb/?p=proj/kde.git;a=blob_plain;f=Documentation/package.keywords/kde-4.3.keywords;hb=master
5) emerge -vauDN kdebase-meta, в результате которого произошёл даунгрэйд всех пакетов Qt*
6) и дальше всё прошло на ура)))
всем отвечающим - громадное спасибо! без вашей поддержки я бы не справился)
A computer without a Microsoft operating system is like a dog without bricks tied to its head
Если так дальше пойдет, то
Если так дальше пойдет, то скорость выхода версий будет больше , чрм скорость установки.
Прошше говоря : 4.3.1 в дереве и давно.
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 ;)