At Wed, 7 Jan 2009 17:02:40 +0800, Cliff Cai wrote: > > Hi all, > > I'm trying to build the latest release alsa-lib-1.0.18 on Blackfin > with option '--with-softfloat', > but it failed with message: > > libtool: install: warning: remember to run `libtool --finish > /usr/lib/alsa-lib/smixer' > ../src/.libs/libasound.so: undefined reference to `_sqrtf' > ../src/.libs/libasound.so: undefined reference to `_exp' > ../src/.libs/libasound.so: undefined reference to `_log' > ../src/.libs/libasound.so: undefined reference to `_sqrt' > ../src/.libs/libasound.so: undefined reference to `_fmod' > ../src/.libs/libasound.so: undefined reference to `_floor' > > Since I've selected --with-softfloat, '-lm' should be excluded from > ALSA_DEPLIBS. > but some source files still depend on libm, such as > .../pcm/pcm_ladspa.c;.../mixer/ simple_none.c > .../alisp/alisp.c.These there files cause undefined reference as above. Bah, at least, simple_none.c should be without math stuff. pcm_ladspa.c can't be build without libm, I guess. This should be excluded with the softfload option. Ditto for alisp. How about the patch below? thanks, Takashi --- diff --git a/configure.in b/configure.in index 5bc0c01..cc1109f 100644 --- a/configure.in +++ b/configure.in @@ -367,6 +367,7 @@ AC_ARG_ENABLE(seq, AC_ARG_ENABLE(alisp, AS_HELP_STRING([--disable-alisp], [disable the alisp component]), [build_alisp="$enableval"], [build_alisp="yes"]) +test "$softfloat" = "yes" && build_alisp="no" AC_ARG_ENABLE(old-symbols, AS_HELP_STRING([--disable-old-symbols], [disable old obsoleted symbols]), [keep_old_symbols="$enableval"], [keep_old_symbols="yes"]) @@ -474,6 +475,7 @@ fi if test "$softfloat" = "yes"; then build_pcm_lfloat="no" + build_pcm_ladspa="no" fi AM_CONDITIONAL(BUILD_PCM_PLUGIN, test x$build_pcm_plugin = xyes) diff --git a/src/mixer/simple_none.c b/src/mixer/simple_none.c index 0f4dd3a..a65619d 100644 --- a/src/mixer/simple_none.c +++ b/src/mixer/simple_none.c @@ -1450,7 +1450,14 @@ static int simple_add1(snd_mixer_class_t *class, const char *name, } if (ctype != SND_CTL_ELEM_TYPE_BOOLEAN) return 0; +#ifdef HAVE_SOFT_FLOAT + /* up to 256 channels */ + for (n = 1; n < 256; n++) + if (n * n == values) + break; +#else n = sqrt((double)values); +#endif if (n * n != values) return 0; values = n; _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel