Обновление binutils

Sabayon, Calculate, Funtoo, Exherbo

Модератор: /dev/random

pleer
Сообщения: 31
ОС: Gentoo

Обновление binutils

Сообщение pleer »

Обнаружил в портежах версию 2.20 и решил обновиться и систему заодно. Благо пересборка последней отвалилась вначале. Теперь приходится получать сообщения(от одного до полного терминала) вида
Symbol `_tr_stored_block' causes overflow in R_X86_64_PC32 relocation
как от самих binutils-утилит так и от всего ими собранного. При этом и работоспособностью такие бинарники не блещут. Пока откатился до 2.18 (2.19-r1 не собирается). Также пробовал собрать и другие подверсии 2.19 2.20 - одно и тоже как на gcc 4.4.1 так и 4.4.2. Пробовал пересобирать по разному - тоже самое. Пробовал гуглить - толи плохо искал толи с английским проблемы. Что можно с этим сделать? Ничего на ум не приходит.

emerge --info:

Код:

Portage 2.1.7.1 (default/linux/amd64/2008.0, gcc-4.4.1, glibc-2.10.1-r0, 2.6.32-rc4-git4 x86_64) ================================================================= System uname: Linux-2.6.32-rc4-git4-x86_64-Intel-R-_Pentium-R-_D_CPU_2.80GHz-with-gentoo-2.0.1 Timestamp of tree: Wed, 21 Oct 2009 06:30:19 +0000 app-shells/bash: 4.0_p33 dev-lang/python: 2.6.3, 3.1.1-r1 dev-util/cmake: 2.6.4-r3 sys-apps/baselayout: 2.0.1 sys-apps/openrc: 0.5.2 sys-apps/sandbox: 2.1 sys-devel/autoconf: 2.63-r1 sys-devel/automake: 1.9.6-r2, 1.10.2, 1.11 sys-devel/binutils: 2.18-r4, 2.19.51.0.14, 2.20.51.0.2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6a virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="amd64 ~amd64" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=nocona -mtune=nocona -O2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -msse3" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/udev/rules.d" CXXFLAGS="-march=nocona -mtune=nocona -O2 -pipe -fomit-frame-pointer -mmmx -msse -msse2 -msse3" DISTDIR="/home/ftp/distfiles" FEATURES="assume-digests distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="ftp://mirror.yandex.ru/gentoo-distfiles" LANG="ru_RU.UTF-8" LDFLAGS="-Wl,-O1" LINGUAS="ru" MAKEOPTS="-j4" 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/layman/x11 /home/ftp/my_overlay" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="X acl alsa amd64 berkdb bzip2 cairo cli cracklib crypt cups curl dbus djvu dri fbcon ffmpeg flac fortran gd gdbm glibc-omitfp gold gpm graphite graphviz hal hddtemp iconv isdnlog jpeg mad math mmx mmxext modules mudflap multilib ncurses nls nptl nptlonly nvidia openal opengl openmp pam pcre pdf png pppd python python3 readline reflection session spl sse sse2 sse3 ssl svg sysfs tcpd truetype unicode userlocales utf8 vdpau vim-syntax xcb xorg 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" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" USERLAND="GNU" VIDEO_CARDS="nvidia" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LC_ALL, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Обновление binutils

Сообщение vr13 »

пересобрать toolchain дважды (binutils входит в toolchain), а потом уже system и world?
Спасибо сказали:
pleer
Сообщения: 31
ОС: Gentoo

Re: Обновление binutils

Сообщение pleer »

Хм. Как я понял, для начала нужно выполнить emerge binutils gcc linux-headers glibc; sudo eselect binutils set 2; emerge binutils gcc linux-headers glibc ? Только вот это дела неисправляет. Первая спорка выполнялась с binutils 2.18 и gcc 4.4.1. Второй круг пошел уже на 2.20 и полезли такие сообщения, собрался gcc 4.4.2 но glibc отказался, ненайдя ld или подумав, что он слишком старый (*** These critical programs are missing or too old: ld). system както страшновато пересобирать ибо жду глобального падения и море подобных сообщений... ну и стопора на glibc. Появился вариант - пересобрать всю систему заново с лайв-сд, но для меня это только в крайнем случае - всеже охота вылечить недуг, а не убивать все.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Обновление binutils

Сообщение vr13 »

после eselect binutils set 2, нужно выполнить обновление окружения: env-update
Спасибо сказали:
pleer
Сообщения: 31
ОС: Gentoo

Re: Обновление binutils

Сообщение pleer »

И правда, забыл. Но дела это не сдвинуло ни влево ни вправо.
Спасибо сказали:
pleer
Сообщения: 31
ОС: Gentoo

Re: Обновление binutils

Сообщение pleer »

Решил таки систему заново пересобрать. binutils собрался нормально. Впредь буду побольше уделять внимание апгрейдам.
Но glibc несобирается, также орет на ld а еще и as. По ссылке решение http://bugs.gentoo.org/show_bug.cgi?id=269274 , только для glibc-2.10.1 и binutils-2.20 надо будет править. Пытаюс создать патч, но почемуто emerge нивкакую нехочет его применять.
Спасибо сказали:
Аватара пользователя
vr13
Сообщения: 887
ОС: gentoo

Re: Обновление binutils

Сообщение vr13 »

есть нелегальный (с т.з portage) способ патчить: запустить emerge, дождаться завершения распаковки, затем аккуратно нажать ^Z (выйдет в shell), сделать в /var/tmp/portage/.. (или куда указано в make.conf) нужные вам правки и потом вернуть в foreground emerge - fg

легально - сделать свой оверлей и ebuild с патчем
Спасибо сказали:
ivanich
Сообщения: 72
ОС: Gentoo

Re: Обновление binutils

Сообщение ivanich »

vr13 писал(а):
25.10.2009 21:04
есть нелегальный (с т.з portage) способ патчить: запустить emerge, дождаться завершения распаковки, затем аккуратно нажать ^Z (выйдет в shell), сделать в /var/tmp/portage/.. (или куда указано в make.conf) нужные вам правки и потом вернуть в foreground emerge - fg

легально - сделать свой оверлей и ebuild с патчем

А еще можно так:
ebuild /path_to_ebuild/foo.ebuild unpack
применить патч в /var/tmp/portage
ebuild /path_to_ebuild/foo.ebuild compile
ebuild /path_to_ebuild/foo.ebuild install
ebuild /path_to_ebuild/foo.ebuild qmerge
Спасибо сказали:
pleer
Сообщения: 31
ОС: Gentoo

Re: Обновление binutils

Сообщение pleer »

Спасибо за первый способы. Както сам и не подумал. А делал я через оверлей. С патчами до сих пор проблем небыло. Покопавшись в уже пропатченом содержимом /var/tmp/portage/ выяснил, почему мой патч неложился - видимо еще какието патчи изменили эти файлы, а я плясал 3 часа. Надо больше спать =)
Спасибо сказали:
Аватара пользователя
sspphheerraa
Сообщения: 1375
ОС: Gentoo

Re: Обновление binutils

Сообщение sspphheerraa »

ivanich писал(а):
25.10.2009 23:35
vr13 писал(а):
25.10.2009 21:04
есть нелегальный (с т.з portage) способ патчить: запустить emerge, дождаться завершения распаковки, затем аккуратно нажать ^Z (выйдет в shell), сделать в /var/tmp/portage/.. (или куда указано в make.conf) нужные вам правки и потом вернуть в foreground emerge - fg

легально - сделать свой оверлей и ebuild с патчем

А еще можно так:
ebuild /path_to_ebuild/foo.ebuild unpack
применить патч в /var/tmp/portage
ebuild /path_to_ebuild/foo.ebuild compile
ebuild /path_to_ebuild/foo.ebuild install
ebuild /path_to_ebuild/foo.ebuild qmerge

gentoo way :)
Sspphheerraa
Спасибо сказали: