[devel] version scripts

Alexander Bokovoy =?iso-8859-1?q?ab_=CE=C1_altlinux=2Eorg?=
Чт Май 29 21:12:48 MSD 2008


Игорь,

29 мая 2008 г. 21:04 пользователь Igor Zubkov <igor.zubkov на gmail.com> написал:
> 29.05.08, Pavlov Konstantin написал(а):
>>  > >  > Так вот, я прав:
>>  > >  > 1) что нужны только символы с пометкой T?
>>  > >  > 2) что T _fini и T _init не нужно добавлять в version script?
>>  > > Для начального списка я бы посмотрел в include-файлы.
>>  > А если проект весит 10 mb? А если ещё больше? Предлагаешь читать все
>>  > исходники? Зачем делать работу за nm?
>> Не все символы, полученные nm, могут быть во внешнем API.
>
> Вот я лю этом и спрашиваю. Только "T" или ещё какие-то?
поэтому и говорят: "Смотрите в include-файлы". API определяется именно
там и различия в коде между двумя версиями могут приводить к разнице в
API даже если символы в ELF не поменялись. В частности, могут
поменяться структуры данных, которые в ELF не отражены.

К тому же, не все публичные символы в ELF публичны с точки зрения API.
В некоторых особых случаях правила использования символов, отраженных
в ABI, определены лицензией. Например, распространено использование
LGPL+ограничения по плагинам (они могут использовать только символы
официального API, в противном случае лицензия GNU GPL).

Поэтому в любом случае нужно смотреть и анализировать реальное API для
того, чтобы делать выводы по версионированию ABI.
-- 
/ Alexander Bokovoy


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