[devel] Q: Переименование символов и сохранение ABI
Alexey I. Froloff
raorn на altlinux.org
Вс Июн 6 07:09:29 UTC 2010
Апстрим librep переименовал несколько символов не меняя SONAME.
Хочется сохранить ABI. Раньше оно выглядело так:
$ nm -D /usr/lib/librep.so.9.5.0 | grep file_uid
000168e0 T Ffile_uid_p
000547c8 B Qfile_uid_p
Собсно, убрали "_p". Код раскрывается в следующее:
repv Qfile_uid;
repv Ffile_uid(repv arg) { ... }
Делаю alias'ы:
extern __typeof__ (Ffile_uid) Ffile_uid_p __attribute__ ((alias ("Ffile_uid")));
extern __typeof__ (Qfile_uid) Qfile_uid_p __attribute__ ((alias ("Qfile_uid")));
С функцией такой трюк проходит, а с common symbol нет:
{standard input}:6039: Error: `Qfile_uid_p' can't be equated to common symbol 'Qfile_uid'
У этой библиотеки полтора пользователя, но хотелось бы знать как
в принципе решать подобные проблемы.
P.S. Символ Qfile_uid в выводе rpmsodiff(1) не фигурирует.
P.P.S. Погрепал DSOHOWTO, ответа не нашёл.
--
Regards, --
Sir Raorn. --- http://thousandsofhate.blogspot.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://lists.altlinux.org/pipermail/devel/attachments/20100606/ec2a525c/attachment.bin>
Подробная информация о списке рассылки Devel