If one tries to install audacious with "wma" set in USE, the build will fail, at least under GCC-4.0.2; in Plugins/Input/wma/libffwma/dsputil.h, there's what's described as a "better than nothing" implementation that apparently conflicts with one picked up from /usr/include/, due to that (the /usr/include/) one being non-static and this one being static. The #define is surrounded by an "#infndef HAS_LRINTF" that obviously isn't being defined, either by the more global include file or possibly by the output of this build's "configure", so it's unclear if this is a problem with the build or a problem with the code. The REALLY annoying thing is that the code where this is happening doesn't even use lrintf, at least at present; the only place in its whole source code that uses it is for an "aac" input plugin (which also has its own local (non-static) #define)! It's easy enough for me to fix for myself (though not as easy as doing a 'HAS_LRINTF="" emerge aduacious' - for one reason or another, the variable isn't being propagated), but chances are that this will bite some other people eventually... Reproducible: Always Steps to Reproduce: 1.USE="wma" emerge audacious 2. 3. Actual Results: The build failed, with the following tail: In file included from dsputil.c:29: dsputil.h:517: error: static declaration of 'lrintf' follows non-static declaration make[5]: *** [libffwma_la-dsputil.lo] Error 1 make[5]: *** Waiting for unfinished jobs.... x86_64-pc-linux-gnu-gcc -DHAVE_CONFIG_H -I. -I. -I../../../.. -I/usr/X11R6/include -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -march=k8 -O2 -pipe -fPIC -Wall -Wpointer-arith -finline-functions -ffast-math -fomit-frame-pointer -funroll-all-loops -MT libffwma_la-fft.lo -MD -MP -MF .deps/libffwma_la-fft.Tpo -c fft.c -fPIC -DPIC -o .libs/libffwma_la-fft.o In file included from fft.c:25: dsputil.h:517: error: static declaration of 'lrintf' follows non-static declaration make[5]: *** [libffwma_la-fft.lo] Error 1 make[5]: Leaving directory `/var/tmp/portage/audacious-0.1.1/work/audacious-0.1.1/Plugins/Input/wma/libffwma' make[4]: *** [all-recursive] Error 1 make[4]: Leaving directory `/var/tmp/portage/audacious-0.1.1/work/audacious-0.1.1/Plugins/Input/wma' make[3]: *** [all-recursive] Error 1 make[3]: Leaving directory `/var/tmp/portage/audacious-0.1.1/work/audacious-0.1.1/Plugins/Input' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/audacious-0.1.1/work/audacious-0.1.1/Plugins' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/audacious-0.1.1/work/audacious-0.1.1' make: *** [all] Error 2 !!! ERROR: media-sound/audacious-0.1.1 failed. !!! Function src_compile, Line 68, Exitcode 2 !!! make failed !!! If you need support, post the topmost build error, NOT this status message. Expected Results: It should have built properly, or at least failed for a REAL reason. Not sure if this is multilib related, since my system is a 64-bit one and the more global define is taking place in a /usr/include/gentoo-multilib include file... Here the info: Portage 2.0.53 (default-linux/amd64/2005.1, gcc-4.0.2, glibc-2.3.6-r1, 2.6.14-gentoo-r4 x86_64) ================================================================= System uname: 2.6.14-gentoo-r4 x86_64 AMD Athlon(tm) 64 Processor 2800+ Gentoo Base System version 1.12.0_pre11 dev-lang/python: 2.4.2 sys-apps/sandbox: 1.2.16 sys-devel/autoconf: 2.13, 2.59-r7 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r1 sys-devel/binutils: 2.16.1-r1 sys-devel/libtool: 1.5.20-r1 virtual/os-headers: 2.6.11-r3 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-march=k8 -O2 -pipe -fPIC" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/3/share/config /usr/lib64/mozilla/defaults/pref /usr/share/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=k8 -O2 -pipe -fPIC" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X a52 alsa audiofile avi berkdb bitmap-fonts bzip2 cdr crypt cups dri dvd dvdr dvdread emboss encode exif expat fam ffmpeg flac foomaticdb fortran gif gmp gpm gstreamer gtk gtk2 idn imlib java jpeg junit lcms lzw lzw-tiff mad mjpeg mng motif mozilla mp3 mpeg ncurses nptl nptlonly nsplugin offensive ogg opengl pam pcre pdflib perl png python qt quicktime readline sdl sndfile spell ssl tcpd theora threads tiff truetype truetype-fonts type1-fonts udev usb userlocales vorbis xml2 xmms xpm xv xvid zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS
I made a small typo: where I stated that there was an "#ifndef HAS_LRINTF" conditional include around the problem definition, it's acually "#ifndef HAVE_LRINTF". MY sleazy workaround was to set a "-DHAVE_LRINTF" CFLAG temporarily in make.conf...
This has already been fixed in SVN and will be in the 0.1.2 release. In the meantime, if you want to use bleeding edge compilers, please use bleeding edge software too, and build audacious from SVN. That -fPIC in your CFLAGS should not be there.