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 ...