[devel] libopenobex-1.3 symbol versioning patch

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вс Авг 13 16:20:44 MSD 2006


On Sun, Aug 13, 2006 at 04:13:09PM +0400, Sergey Vlasov wrote:
> On Sun, Aug 13, 2006 at 11:51:58AM +0400, Alexey Tourbin wrote:
> > Одинаковые символы с разными версиями -- это уже black magic, который
> > нужен только для библиотек типа glibc, от которых зависит сто тыщ мильён
> > пакетов.
> > 
> > Тут можно сделать вот что:
> > 
> > 1) сменить soname; или
> > 2) повесить все функции, которые используют новые флаги, на новый
> > интерфейс 1.2; *и* удалить все старые интерфейсы, на которых висели
> > какие-либо из этих функций.  Поскольку интерфейсов до этого не было,
> > фактически имеет смысл повесить все экспортируемые функции на интерфейс 1.2.
> 
> А вот это, к сожалению, не работает.  В dsohowto написано, что по
> такому принципу работает symbol versioning в Solaris: при внесении в
> интерфейс изменений, которые расширяют функциональность, но не ломают
> совместимость со старыми бинарниками, соответствующие символы в
> map-файле _переносятся_ в новую версию, базирующуюся на старой.  При
> запуске старых приложений, когда dynamic linker обнаруживает, что
> символ с нужной версией отсутствует в библиотеке, в Solaris он может
> вместо запрошенной версии использовать более позднюю.  Однако в Linux
> такой фокус не проходит - требуется именно символ со старой версией,
> автозамена на более новую версию не производится.

Я и говорю: если удалить старый интерфейс полностью, то будет анмет.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060813/7884e88d/attachment-0001.bin>


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