[Comm] Re: General policy for Junior updates
Sergey Vlasov
=?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Пн Фев 3 16:19:06 MSK 2003
On Sun, 2 Feb 2003 12:20:57 +0300
Alexey Tourbin <at на turbinal.org> wrote:
> Поясняю: gcc2.9x и gcc3.2.x производят на свет бинарно совместимый
> машинный код. Своеобразное исключение составляют программы, написанные
> на C++. В новых версиях компилятора используется новая схема
> образования символьных имён для разделяемых объектов. Поэтому
> несовместимость проявляется на уровне динамического линкера и только для
> программ, которые используют C++ код в *.so* библиотеках. К счастью,
> rpm очень жестко контролирует зависимости на *.so* библиотеки.
Да ничего он в этой области не контролирует. Изменение soname - да,
отслеживается. Пересборка другой версией компилятора в подавляющем
большинстве случаев не меняет ни soname, ни версии символов. А потом
при запуске получаем unresolved symbol.
Просто в некоторые пакеты (например, Qt/KDE) были добавлены костыли
для отслеживания версий компилятора. Там, где это не было сделано,
вполне возможно получить несоответствие, хотя с точки зрения rpm будет
всё нормально.
Подробная информация о списке рассылки community