[sisyphus] gcc/libc/libstdc++ mismatch

Mikhail Yakshin greycat на altlinux.org
Вт Янв 12 19:23:32 UTC 2010


Приветствую,

Быстрый поиск по рассылкам / багзилле почти ничего не дал, на всякий
случай решил написать сюда - не сталкивался ли кто-либо с чем-то
подобным.

После выборочного обновления в системе встали следующие пакеты:

libgcc4.4-4.4.2-alt3 (до этого была libgcc4.1-4.1.2-alt2)
libstdc++4.4-4.4.2-alt3 (была libstdc++4.1-4.1.2-alt2)
glibc-core-2.10.1-alt5 (не обновлялась)

librpm-4.0.4-alt98.27
rpm-4.0.4-alt98.27
librpmbuild-4.0.4-alt98.27

apt-0.5.15lorg2-alt31.1
libapt-0.5.15lorg2-alt31.1

Множество программ, например apt-get или groff, перестали запускаться
со следующей диагностикой:

$ apt-get
apt-get: symbol lookup error: /usr/lib64/libstdc++.so.6: undefined
symbol: _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE,
version GLIBCXX_3.4
$ groff
groff: symbol lookup error: /usr/lib64/libstdc++.so.6: undefined
symbol: _ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE,
version GLIBCXX_3.4

Т.е. похоже, что всё, что зависит от libstdc++.so.6:
$ rpm -q --whatrequires 'libstdc++.so.6(CXXABI_1.3)(64bit)'

При этом nm -D на эту библиотеку показывает

$ nm -D /usr/lib64/libstdc++.so.6 | grep
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE
00000000002ef240 ?
_ZNSt7num_getIcSt19istreambuf_iteratorIcSt11char_traitsIcEEE2idE

Т.е. загадочное:
           "?" The symbol type is unknown, or object file format specific.

Всего таких символов:

$ nm -D /usr/lib64/libstdc++.so.6 | grep '?' | wc -l
38

Что еще нужно обновить и каких еще зависимостей не хватает? Видимо,
новый glibc? Нашел https://bugzilla.redhat.com/show_bug.cgi?id=513721
- где, собственно, упоминается glibc-2.10.90-3 vs glibc-2.10.90-7.
Почему бы не установить эту зависимость на нужную версию glibc-core в
libstdc++?

-- 
WBR, Mikhail Yakshin


Подробная информация о списке рассылки Sisyphus