[devel] libalsa (FAILED mplayer.git=1.0-alt35.29311.1)

Alexey Tourbin at на altlinux.ru
Вс Май 17 17:27:47 MSD 2009


On Sun, May 17, 2009 at 05:07:52PM +0400, Dmitry V. Levin wrote:
> On Sun, May 17, 2009 at 10:12:09AM +0400, Alexey Tourbin wrote:
> > On Sat, May 16, 2009 at 10:34:22PM +0400, Girar Builder robot wrote:
> > > http://git.altlinux.org/tasks/6576/task/log
> > > 
> > > 2009-May-16 22:14:01 :: task #6576 for sisyphus started:
> > > #1 build 1.0-alt35.29311.1 from /people/ender/packages/mplayer.git
> > > 2009-May-16 22:14:05 :: created pkg.tar for mplayer.git tag 1.0-alt35.29311.1
> > > 2009-May-16 22:14:06 :: [i586] mplayer.git 1.0-alt35.29311.1: build start
> > > 2009-May-16 22:14:06 :: [x86_64] mplayer.git 1.0-alt35.29311.1: build start
> > > TOOLS/bmovl-test.c:39: warning: ignoring return value of 'write', declared with attribute warn_unused_result
> > > /usr/lib64/libSDL-1.2.so.0: undefined reference to `snd_pcm_hw_params_set_period_size_near на ALSA_0.9'
> > > /usr/lib64/libSDL-1.2.so.0: undefined reference to `snd_pcm_hw_params_set_periods_near на ALSA_0.9'
> > > /usr/lib64/libSDL-1.2.so.0: undefined reference to `snd_pcm_hw_params_set_rate_near на ALSA_0.9'
> > > /usr/lib64/libSDL-1.2.so.0: undefined reference to `snd_pcm_hw_params_get_channels на ALSA_0.9'
> > > collect2: ld returned 1 exit status
> > 
> > После обновления libalsa что-то сломалось в symbol versioning.
> > 
> > [at на altair ~]$ rpmpeek /ALT/archive/Sisyphus/2009/05/01/files/x86_64/RPMS/libalsa-1.0.19-alt1.x86_64.rpm readelf -aW ./usr/lib64/libasound.so.2 |grep -w snd_pcm_hw_params_get_channels
> >    231: 00000000000519d0    31 FUNC    GLOBAL DEFAULT   12 snd_pcm_hw_params_get_channels на ALSA_0.9
> >    233: 00000000000519c0    15 FUNC    GLOBAL DEFAULT   12 snd_pcm_hw_params_get_channels@@ALSA_0.9.0rc4
> > [at на altair ~]$ rpmpeek /ALT/Sisyphus/files/x86_64/RPMS/libalsa-1.0.20-alt1.x86_64.rpm readelf -aW ./usr/lib64/libasound.so.2 |grep -w snd_pcm_hw_params_get_channels
> >    493: 0000000000051080    15 FUNC    WEAK   DEFAULT   12 snd_pcm_hw_params_get_channels@@ALSA_0.9.0rc4
> > [at на altair ~]$ 
> > 
> > Похоже, что это связано не с изменениями в libalsa, а с изменениями
> > в binutils.
> 
> У libalsa и раньше случались неприятности с symbol versioning, так что
> надо сперва проверить предыдущую версию libalsa.

Я немного проверил.  В libalsa не видно ничего такого, что должно
задевать ABI столь странным образом.  В частности, файл src/Versions.in
не изменился.

$ git clone git://git.altlinux.org/gears/l/libalsa.git
$ cd libalsa
$ git diff --stat 1.0.19-alt1..1.0.20-alt1
 .../tags/0f2005a18a1444d5ac93beac1581549bc9397007  |    8 +
 .../tags/b015ae2d51734e11d44d4f11f3d053a74f88041c  |    8 -
 .gear/tags/list                                    |    2 +-
 configure.in                                       |    4 +-
 include/sound/asound.h                             |    2 +-
 libalsa.spec                                       |    5 +-
 src/conf/cards/CMI8788.conf                        |   13 +-
 src/conf/cards/GUS.conf                            |   47 ----
 src/conf/cards/HDA-Intel.conf                      |    3 +
 src/control/control_ext.c                          |   18 ++-
 src/mixer/simple_none.c                            |    7 +
 src/pcm/pcm.c                                      |   58 +++--
 src/pcm/pcm_file.c                                 |  266 ++++++++++++++++----
 src/pcm/pcm_hw.c                                   |    4 +
 src/pcm/pcm_plug.c                                 |   35 ++-
 src/seq/seq.c                                      |   44 ++--
 src/seq/seqmid.c                                   |    4 +-
 17 files changed, 349 insertions(+), 179 deletions(-)
$

А результат сборки изменился очень странно.  Было
GLOBAL DEFAULT   12 snd_pcm_hw_params_get_channels на ALSA_0.9
GLOBAL DEFAULT   12 snd_pcm_hw_params_get_channels@@ALSA_0.9.0rc4

Стало
WEAK   DEFAULT   12 snd_pcm_hw_params_get_channels@@ALSA_0.9.0rc4

Заметь что дефолтного символа теперь нет, а тот который остался стал weak.
Там ещё много символов стало weak.

$ rpmsodiff /ALT/archive/Sisyphus/2009/05/01/files/x86_64/RPMS/libalsa-1.0.19-alt1.x86_64.rpm  /ALT/Sisyphus/files/x86_64/RPMS/libalsa-1.0.20-alt1.x86_64.rpm
        common sonames:
libasound.so.2  /usr/lib64/libasound.so.2.0.0   /usr/lib64/libasound.so.2.0.0
--- libalsa-1.0.19-alt1/libasound.so.2  2009-01-19 22:38:13 +0300
+++ libalsa-1.0.20-alt1/libasound.so.2  2009-05-15 15:31:37 +0400
@@ -243,4 +243,4 @@
 snd_ctl_elem_info_get_device   T
-snd_ctl_elem_info_get_dimension        T
-snd_ctl_elem_info_get_dimensions       T
+snd_ctl_elem_info_get_dimension        W
+snd_ctl_elem_info_get_dimensions       W
 snd_ctl_elem_info_get_id       T
@@ -760,3 +760,3 @@
 snd_pcm_format_width   T
-snd_pcm_forward        T
+snd_pcm_forward        W
 snd_pcm_forwardable    T
...
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 197 байтов
Описание: отсутствует
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20090517/caddc93c/attachment.bin>


Подробная информация о списке рассылки Devel