[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