The output of emerge ends with a reported syntax error (ao_oss.c:303: error: expected expression before ‘/’ token: libtool: compile: gcc -DPACKAGE_NAME=\"libao\" -DPACKAGE_TARNAME=\"libao\" -DPACKAGE_VERSION=\"1.0.0\" "-DPACKAGE_STRING=\"libao 1.0.0\"" -DPACKAGE_BUGREPORT=\"monty@xiph.org\" -DPACKAGE=\"libao\" -DVERSION=\"1.0.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -DHAVE_DLFCN_H=1 -DHAVE_DLOPEN=1 -DHAVE_LIBPTHREAD=1 "-DDLOPEN_FLAG=(RTLD_NOW | RTLD_GLOBAL)" -DSHARED_LIB_EXT=\".so\" -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DHAVE_SYS_SOUNDCARD_H=1 -DUSE_ALSA_MMIO=1 -DBROKEN_OSS=1 -I. -I. -I../../../include/ao -I../../../include -ffast-math -D_REENTRANT -fsigned-char -Wall -g -m32 -ansi -DAO_BUILDING_LIBAO -c ao_oss.c -fPIC -DPIC -o .libs/ao_oss.o ao_oss.c: In function ‘_open_default_oss_device’: ao_oss.c:87: warning: implicit declaration of function ‘strdup’ ao_oss.c:87: warning: assignment makes pointer from integer without a cast ao_oss.c:101: warning: assignment makes pointer from integer without a cast ao_oss.c: In function ‘ao_plugin_set_option’: ao_oss.c:185: warning: assignment makes pointer from integer without a cast ao_oss.c: In function ‘ao_plugin_open’: ao_oss.c:302: warning: assignment makes pointer from integer without a cast ao_oss.c:303: error: expected expression before ‘/’ token make[3]: *** [ao_oss.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/media-libs/libao-1.0.0-r1/work/libao-1.0.0/src/plugins/oss' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/media-libs/libao-1.0.0-r1/work/libao-1.0.0/src/plugins' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/media-libs/libao-1.0.0-r1/work/libao-1.0.0/src' make: *** [all-recursive] Error 1 * ERROR: media-libs/libao-1.0.0-r1 failed: * emake failed * * Call stack: * ebuild.sh, line 54: Called src_compile * environment, line 2630: Called _eapi2_src_compile * ebuild.sh, line 646: Called die * The specific snippet of code: * emake || die "emake failed" * * If you need support, post the output of 'emerge --info =media-libs/libao-1.0.0-r1', * the complete build log and the output of 'emerge -pqv =media-libs/libao-1.0.0-r1'. * The complete build log is located at '/var/tmp/portage/media-libs/libao-1.0.0-r1/temp/build.log'. * The ebuild environment file is located at '/var/tmp/portage/media-libs/libao-1.0.0-r1/temp/environment'. * S: '/var/tmp/portage/media-libs/libao-1.0.0-r1/work/libao-1.0.0' >>> Failed to emerge media-libs/libao-1.0.0-r1, Log file: >>> '/var/tmp/portage/media-libs/libao-1.0.0-r1/temp/build.log' treat kevin # Reproducible: Always Steps to Reproduce: 1. emerge -aDNvu world 2. 3. Actual Results: syntax error report Expected Results: the usual Notes: partion holding /, /root and /var has 18 GB free. Machine is 4-core old xeon (P-III based) Nothing else was particularly active. emerge --info output follows Portage 2.1.8.3 (default/linux/x86/10.0/desktop/kde, gcc-4.3.4, glibc-2.11.2-r0, 2.6.34-gentoo-r1-kosmanor i686) ================================================================= System uname: Linux-2.6.34-gentoo-r1-kosmanor-i686-Intel-R-_XEON-TM-_CPU_1.80GHz-with-gentoo-1.12.13 Timestamp of tree: Thu, 26 Aug 2010 07:45:01 +0000 app-shells/bash: 4.0_p37 dev-java/java-config: 2.1.11 dev-lang/python: 2.4.6, 2.5.4-r4, 2.6.5-r3, 3.1.2-r4 dev-util/cmake: 2.8.1-r2 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.13, 2.65 sys-devel/automake: 1.9.6-r3, 1.10.3, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.1.2, 4.3.4, 4.4.3-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.30-r1 ACCEPT_KEYWORDS="x86" ACCEPT_LICENSE="* -@EULA @EULA @BINARY-REDISTRIBUTABLE" CBUILD="i686-pc-linux-gnu" CFLAGS="-Wall -g -m32 -ansi" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/share/X11/xkb /usr/share/config /var/bind /var/lib/hsqldb" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe -mfpmath=sse -msse2 -mmmx" DISTDIR="/usr/portage/distfiles" EMERGE_DEFAULT_OPTS="--with-bdeps=y" FEATURES="assume-digests buildpkg distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://ftp.ucsb.edu/pub/mirrors/linux/gentoo/ http://mirror.its.uidaho.edu/pub/gentoo/ http://www.cyberuse.com/gentoo/ http://gentoo.mirrors.easynews.com/linux/gentoo/ http://gentoo.llarian.net/" LANG="en_US.utf8" LC_ALL="en_US.utf8" LDFLAGS="-m32" LINGUAS="en en_US fr de es pl" MAKEOPTS="-j1" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage/overlay" SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage" USE="X Xaw3d a52 aac acl acpi aim alsa apache2 apm bash-completion bcmath berkdb branding bzip2 cairo calendar caps cdr cli consolekit cracklib crypt cscope ctype cups cxx dbm dbus dri dts dvd dvdr emboss encode exif fam fastcgi flac foomaticdb fortran gdbm gif git gphoto2 gpm gtk guile hal iconv icq imap imlib ipv6 java jbig joystick jpeg kde lcms ldap libnotify libwww mad mailwrapper mbox mcal mikmod mime mmap mmx mng modules motif mp3 mp4 mpeg mudflap mysql ncurses nis nls nptl nptlonly nsplugin odbc offensive ogg openal opengl openmp oscar pam pango pcre pdf perl pic plotutils png posix postgres ppds pppd python qt3support qt4 readline reflection ruby samba sdl session snmp sockets spell spl sse ssl startup-notification subversion svg svga symlink sysfs sysvipc tcpd tetex tiff tk truetype unicode usb vorbis x264 x86 xml xorg xpm xulrunner xv xvid yahoo zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1 emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US fr de es pl" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="mach64 vesa" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, FFLAGS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
*** Bug 334703 has been marked as a duplicate of this bug. ***
CFLAGS="-Wall -g -m32 -ansi" You don't need -m32, but you definitely shouldn't set -ansi globally. Please fix that and try again.
Those CFLAGS come from my bash environment variable $CFLAGS. I agree I should not force -ansi on you, but IMHO neither should you be forcing me to use a specific CFLAGS outside of portage. Moreover, all other packages seem to have successfully overridden my environment. My /etc/make.conf contains CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer -pipe -mfpmath=sse -msse2 -mmmx" I have to wonder why the ebuild didn't use that; it's there for portage's sake, after all. I have to thank you for the quick reply, though, since it gave me a simple workaround. I recompiled with "CFLAGS= emerge libao" and all was well. The environment variable is very useful to me as it is in other work, so I'd like to keep it, please.
Kevin, Portage is designed so that your environment overrides configuration files. If you'd rather keep those CFLAGS in your environment, you might want to just ensure that they're only set for your regular user (where you likely do development) and not for root. Alternately, use sudo, which resets the environment by default. It's unlikely that all other packages overrode your environment CFLAGS; rather, they probably were valid C89 and compiled with -ansi.
This isn't a bug, this is purposeful design of the way portage works.