[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