On Sat, Aug 12, 2006 at 07:49:01PM +0400, Sergey Vlasov wrote: > В данном случае флаги критичные. Причём OBEX_EV_REQCHECK - это флаг, > который библиотека передаёт в callback, поэтому новую версию придётся > вешать на OBEX_Init. > > > У меня сходу не получилось при помощи одного только version script > > повесить один символ на два интерфейса. Кажется, надо прямо в код > > вставлять всякие asm/.symver, это недавно было в > > > > Date: Wed, 9 Aug 2006 03:16:59 +0400 > > From: "Dmitry V. Levin" > > Subject: Re: [devel] rpmelfsymv > > To: ALT Devel discussion list > > Message-ID: <20060808231659.GA11505@basalt.office.altlinux.org> > > > > В общем муть какая-то. > > Именно. > > Совсем просто даже через asm не получается: > > __asm__(".symver real_OBEX_Init,OBEX_Init@@OPENOBEX_1.2"); > __asm__(".symver real_OBEX_Init,OBEX_Init@OPENOBEX_1.0"); [...] > Т.е., на powerpc64 у каждой функции не один, а два символа, на которые > надо вешать версии, а на alpha и mips не работает .set. > > Но примеров вешания разных версий на один символ нет даже там. Вообще > такое кто-нибудь делает? > > > * at продолжает засорять @devel > * vsu думает, не забить ли уже на всё это Одинаковые символы с разными версиями -- это уже black magic, который нужен только для библиотек типа glibc, от которых зависит сто тыщ мильён пакетов. Тут можно сделать вот что: 1) сменить soname; или 2) повесить все функции, которые используют новые флаги, на новый интерфейс 1.2; *и* удалить все старые интерфейсы, на которых висели какие-либо из этих функций. Поскольку интерфейсов до этого не было, фактически имеет смысл повесить все экспортируемые функции на интерфейс 1.2.