make[2]: Entering directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls/winmm/winearts' i686-pc-linux-gnu-gcc -c -I. -I. -I../../../include -I../../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o arts.o arts.c i686-pc-linux-gnu-gcc -c -I. -I. -I../../../include -I../../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o audio.o audio.c In file included from /usr/include/alsa/asoundlib.h:48, from alsa.h:23, from audio.c:63: /usr/include/alsa/conf.h:189: error: syntax error before "struct" i686-pc-linux-gnu-gcc -c -I. -I. -I../../../include -I../../../include -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o testlist.o testlist.c make[2]: *** [audio.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls/winmm/winealsa' make[1]: *** [winmm/winealsa] Error 2 ../../../tools/winebuild/winebuild -D__WINESRC__ -o winearts.drv.dbg.c --debug -C. arts.c audio.c make[1]: *** Waiting for unfinished jobs.... i686-pc-linux-gnu-gcc -c -I. -I. -I../../../include -I../../../include -D__WINESRC__ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o winearts.drv.dbg.o winearts.drv.dbg.c ../../../tools/winegcc/winegcc -B../../../tools/winebuild -shared ./winearts.drv.spec arts.o audio.o winearts.drv.dbg.o -o winearts.drv.so -L../../../dlls -L../../../dlls/winmm -L../../../dlls/user32 -L../../../dlls/kernel32 -lwinmm -luser32 -lkernel32 -L../../../libs/wine -lwine -ldxguid -luuid -L../../../libs/port -lwine_port /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object. make[2]: Leaving directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls/winmm/winearts' ../../../tools/winegcc/winegcc -B../../../tools/winebuild -mconsole clist.o clsid.o generated.o ordinal.o path.o shreg.o string.o testlist.o -o shlwapi_test.exe.so -L../../../libs/port -lwine_port -L../../../dlls -L../../../dlls/shlwapi -L../../../dlls/advapi32 -L../../../dlls/ole32 -L../../../dlls/oleaut32 -L../../../libs -lshlwapi -ladvapi32 -lole32 -loleaut32 /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object. make[3]: Leaving directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls/shlwapi/tests' i686-pc-linux-gnu-gcc -c -I. -I. -I../../include -I../../include -D__WINESRC__ -D_SHLWAPI_ -D_REENTRANT -fPIC -Wall -pipe -mpreferred-stack-boundary=2 -fno-strict-aliasing -gstabs+ -Wpointer-arith -O2 -march=pentium4 -o shlwapi.dll.dbg.o shlwapi.dll.dbg.c ../../tools/winegcc/winegcc -B../../tools/winebuild -shared ./shlwapi.spec assoc.o clist.o istream.o msgbox.o ordinal.o path.o reg.o regstream.o shlwapi_main.o stopwatch.o string.o thread.o url.o wsprintf.o shlwapi.dll.dbg.o shlwapi.res -o shlwapi.dll.so -L../../dlls -L../../dlls/oleaut32 -L../../dlls/ole32 -L../../dlls/user32 -L../../dlls/gdi32 -L../../dlls/advapi32 -L../../dlls/kernel32 -L../../dlls/ntdll -loleaut32 -lole32 -luser32 -lgdi32 -ladvapi32 -lkernel32 -lntdll -Wb,-doleaut32 -L../../libs/wine -lwine -luuid -L../../libs/unicode -lwine_unicode -L../../libs/port -lwine_port /usr/lib/gcc-lib/i686-pc-linux-gnu/3.3.4/../../../../i686-pc-linux-gnu/bin/ld: warning: creating a DT_TEXTREL in object. make[2]: Leaving directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls/shlwapi' make[1]: Leaving directory `/var/tmp/portage/wine-20050524/work/wine-20050524/dlls' make: *** [dlls] Error 2 Reproducible: Always Steps to Reproduce: 1. ACCEPT_KEYWORDS=~x86 emerge wine Actual Results: See details. Portage 2.0.51.22-r1 (default-linux/x86/2005.0, gcc-3.3.4, glibc-2.3.5-r0, 2.6.11-gentoo-r9 i686) ================================================================= System uname: 2.6.11-gentoo-r9 i686 Intel(R) Pentium(R) 4 CPU 2.80GHz Gentoo Base System version 1.6.12 distcc 2.18.3 i686-pc-linux-gnu (protocols 1 and 2) (default port 3632) [disabled] dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.1-r2 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.16 sys-devel/libtool: 1.5.18 virtual/os-headers: 2.6.11 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CBUILD="i686-pc-linux-gnu" CFLAGS="-O2 -march=pentium4" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3.3/env /usr/kde/3.3/share/config /usr/kde/3.3/shutdown /usr/kde/3.4/env /usr/kde/3.4/share/config /usr/kde/3.4/shutdown /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium4" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/ http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://vlaai.snt.ipv6.utwente.nl/pub/os/linux/gentoo/ ftp://mirror.nutsmaas.nl/gentoo/" LINGUAS="en nl" MAKEOPTS="-j3" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X aalib alsa apm arts avi berkdb bitmap-fonts cdr crypt cups curl debug directfb divx4linux dvd dvdr emboss encode esd fam fbdev flac foomaticdb fortran gdbm gif gphoto2 gpm gtk2 imagemagick imlib java javamail jpeg junit kde kdeenablefinal libg++ libwww live mad mikmod mmx motif mozdevelop mozilla moznocompose moznoirc moznomail mozsvg mp3 mpeg nas ncurses network nls nvidia ogg oggvorbis opengl oss pam pdflib perl png ppds python qt quicktime readline rtc slang speex spell sse ssl tcltk tcpd tiff truetype truetype-fonts type1-fonts usb vorbis xine xinerama xml xml2 xmms xv zlib linguas_en linguas_nl userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
gcc -E shows that the offending line /usr/include/alsa/conf.h:189: int snd_names_list(const char *interface, snd_devname_t **list); is preprocessed to int snd_names_list(const char *struct, snd_devname_t **list); Evidently something somewhere is #defining "interface" to "struct".
Found it: /var/tmp/portage/wine-20050524/work/wine-20050524/include/objbase.h:#define interface struct Looks like this has been in wine forever; I think the trigger is actually the recent alsa-lib release of media-libs/alsa-lib-1.0.9, viz this commit: http://cvs.sourceforge.net/viewcvs.py/alsa/alsa-lib/include/conf.h?r1=1.40&r2=1.41 I guess the best workaround is to reorder includes so that alsa stuff gets included before interface gets #defined. Patch to follow.
Created attachment 60010 [details, diff] wine-20050524-alsa-includes.patch Reorder includes to include alsa headers before offending #define encountered. Probably wants upstreaming; I can't see this bug on the Wine bugzilla.
thanks Ed, forwarded bug upstream and added patch to portage
*** Bug 94329 has been marked as a duplicate of this bug. ***