[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