[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