[devel] libalsa ABI breakage
Sergey Vlasov
vsu на altlinux.ru
Вс Май 17 21:22:35 MSD 2009
On Sun, May 17, 2009 at 08:47:46PM +0400, Alexey Tourbin wrote:
> On Sun, May 17, 2009 at 08:33:04PM +0400, Sergey Vlasov wrote:
> > > > > May 17 03:22 mplayer-1.0-alt35.29311.1.src.rpm
> > > > > May 16 15:25 gimp-2.6.6-alt3.src.rpm
> > > > > May 15 18:50 vice-2.1-alt2.src.rpm
> > > > > May 15 17:52 qmmp-0.3.0-alt0.1.svn949.src.rpm
> > > > > May 15 15:39 alsa-tools-1.0.20-alt1.src.rpm
> > > > > May 15 15:32 alsa-utils-1.0.20-alt1.src.rpm
> > > > > May 15 15:32 alsa-plugins-1.0.20-alt1.src.rpm
> > > >
> > > > 3 последних работают. как проверить неработоспособность?
> > >
> > > Если с новым (исправленным) пакетом libalsa команда 'ldd -r'
> > > не ругается (на все файлы из этих пакетов), то в принципе можно
> > > не пересобирать.
> >
> > В данном случае это не показатель - для некоторых символов назначалась
> > неверная, но при этом существующая, версия, в результате ldd -r
> > ругаться не будет, но при выполнении будет вызываться функция со
> > старым ABI.
>
> Увы. А что значит "неверная"? Там разные прототипы у реализаций или
> в чем ещё несовместимость заключается?
Разные прототипы (в основном переход на передачу значения по
указателю, а сама функция возвращает код ошибки - в первоначальном
варианте не было возможности вернуть этот код).
Старый вариант:
snd_pcm_tstamp_t snd_pcm_sw_params_get_tstamp_mode(const snd_pcm_sw_params_t *params);
Новый вариант:
int snd_pcm_sw_params_get_tstamp_mode(const snd_pcm_sw_params_t *params, snd_pcm_tstamp_t *val);
(это как раз одна из сломанных функций).
Кстати, нашёл там ещё одну опечатку - в include/pcm_old.h:
asm(".symver snd_pcm_sw_params_get_stop_threshold,snd_pcm_sw_params_set_stop_threshold на ALSA_0.9");
(этот кусок используется только в #ifdef ALSA_PCM_OLD_SW_PARAMS_API -
т.е., при сборке программ, которые так и не были переведены на
использование нового API).
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : отсутствует
Тип : application/pgp-signature
Размер : 197 байтов
Описание: Digital signature
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20090517/2cb6c1ce/attachment.bin>
Подробная информация о списке рассылки Devel