[Pkg-alsa-devel] Bug#573881: alsa-lib: subsequent builds produce different library symbols

Andres Salomon dilinger at queued.net
Sun Mar 14 17:48:19 UTC 2010


Package: alsa-lib
Version: 1.0.22-2
Severity: important

The first time kicking off an alsa-lib build on a squeeze machine results
in the following:

dilinger at droptest:~/alsa-lib-1.0.22$ objdump -T debian/libasound2/usr/lib/libasound.so.2|grep snd_pcm_hw_params_get_channels_min
0004ce50 g    DF .text	0000003a  ALSA_0.9.0rc4 snd_pcm_hw_params_get_channels_min
0004ce90 g    DF .text	00000032 (ALSA_0.9)   snd_pcm_hw_params_get_channels_min
0004ce50 g    DF .text	0000003a  ALSA_0.9    __snd_pcm_hw_params_get_channels_min


dilinger at droptest:~/alsa-lib-1.0.22$ objdump -T debian/libasound2/usr/lib/libasound.so.2|grep snd_pcm_hw_params_get_channels_min
0004c7c0  w   DF .text	0000003a  ALSA_0.9.0rc4 snd_pcm_hw_params_get_channels_min
0004c7c0 g    DF .text	0000003a  ALSA_0.9    __snd_pcm_hw_params_get_channels_min

This is benign, though slightly strange (and risky; what else has changed?).
However, doing two builds in a row on a lenny chroot, I get:

0004d680 g    DF .text	0000003a  ALSA_0.9.0rc4 snd_pcm_hw_params_get_channels_min
0004d6c0 g    DF .text  00000032 (ALSA_0.9)   snd_pcm_hw_params_get_channels_min
0004d680 g    DF .text	0000003a  ALSA_0.9    __snd_pcm_hw_params_get_channels_min

vs (for the second build):

0004cfe0  w   DF .text	0000003a  ALSA_0.9    snd_pcm_hw_params_get_channels_min
0004cfe0 g    DF .text	0000003a  ALSA_0.9    __snd_pcm_hw_params_get_channels_min

This is.. less nice.  Note that the ALSA_0.9.0rc4 symbol has been dropped.

The main differences between the build logs is that in the second build,
distclean is run, and the following (this is the same across both squeeze
and lenny builds):

 dpkg-source: info: building alsa-lib using existing ./alsa-lib_1.0.22.orig.tar.bz2
+dpkg-source: warning: ignoring deletion of file libtool
 dpkg-source: warning: ignoring deletion of file config.guess
 dpkg-source: warning: ignoring deletion of file config.sub
+dpkg-source: warning: ignoring deletion of file doc/doxygen.cfg
+dpkg-source: warning: ignoring deletion of file src/Versions
+dpkg-source: warning: ignoring deletion of file include/asoundlib.h
+dpkg-source: warning: ignoring deletion of file include/version.h
 dpkg-source: warning: ignoring deletion of symlink include/alsa

...

 checking for library version... major 1 minor 0 subminor 22 extrastr  extraver 1000000
-checking for versioned symbols... yes
+checking for versioned symbols... grep: libtool: No such file or directory
+./configure: line 11083: test: too many arguments
+./configure: line 11086: test: -gt: unary operator expected
+broken libtool - use libtool v1.4+; no versions
 checking for symbolic-functions... no

...

 make[4]: Entering directory `/home/dilinger/alsa-lib-1.0.22/include'
+Updating version.h
 make[4]: Leaving directory `/home/dilinger/alsa-lib-1.0.22/include'


Note that during distclean, things like alsa-lib-1.0.22/libtool are
removed.  This is what causes the autoconf screw-up.  I'm not sure
if that's the reason for the differences in symbols or not.

I'll keep poking at it to try and narrow down the cause.





More information about the Pkg-alsa-devel mailing list