[devel] libopenobex-1.3 symbol versioning patch

Sergey Vlasov =?iso-8859-1?q?vsu_=CE=C1_altlinux=2Eru?=
Вс Авг 13 16:13:09 MSD 2006


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
Размер  : 191 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20060813/26013a4e/attachment-0001.bin>


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