gcc-3.4 no longer allows labels at the end of compound statements. And good riddence :P I made a patch that should fix the problem. Reproducible: Always Steps to Reproduce: 1. emerge alsa-tools 2. 3. Actual Results: if gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE=\"as10k1\" -DVERSION=\"A0.99\" -DSTDC_HEADERS=1 -I. -I. -g -O2 -MT as10k1.o -MD -MP -MF ".deps/as10k1.Tpo" \ -c -o as10k1.o `test -f 'as10k1.c' || echo './'`as10k1.c; \ then mv -f ".deps/as10k1.Tpo" ".deps/as10k1.Po"; \ else rm -f ".deps/as10k1.Tpo"; exit 1; \ fi as10k1.c: In function `parse_cli_args': as10k1.c:163: error: label at end of compound statement make: *** [as10k1.o] Error 1 Portage 2.0.50-r6 (default-x86-2004.0, gcc-3.4.0, glibc-2.3.3_pre20040420-r1, 2.6.6-rc3-mm1) ================================================================= System uname: 2.6.6-rc3-mm1 i686 AMD Athlon(tm) XP 1800+ Gentoo Base System version 1.4.14 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.3 ACCEPT_KEYWORDS="x86 ~x86" AUTOCLEAN="yes" CFLAGS="-march=athlon-xp -O3 -mmmx -mfpmath=387 -pipe -fomit-frame-pointer -funroll-loops -finline-limit=600 -fno-rename-registers" CHOST="i686-pc-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-march=athlon-xp -O3 -mmmx -mfpmath=387 -pipe -fomit-frame-pointer -funroll-loops -finline-limit=600 -fno-rename-registers" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs ccache sandbox" GENTOO_MIRRORS="http://ftp.snt.utwente.nl/pub/os/linux/gentoo ftp://ftp.snt.utwente.nl/pub/os/linux/gentoo http://ftp.easynet.nl/mirror/gentoo/ ftp://ftp.easynet.nl/mirror/gentoo/ http://gentoo.tiscali.nl/gentoo/ ftp://ftp.tiscali.nl/pub/mirror/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="3dnow X alsa apache1 apache2 apm arts avi berkdb cdr crypt cups directfb dvd dvdr encode esd fbcon foomaticdb freetype gdbm gif gtk gtk2 imlib ipv6 java javascript jpeg kde libg++ libwww mad md5sum mikmod mldonkeypango mmx mpeg ncurses nls nptl oggvorbis ooo-kde opengl oss pam pdflib perl png ppds python qt quicktime radeon readline samba sdl slang spell sse ssl svga tcpd threads tiff truetype vim-with-x wmf x86 xinerama xml2 xmms xv zlib"
Created attachment 31761 [details, diff] alsa-tools-1.0.4-gcc-3.4.patch I replaced that horrible goto with break. It should break out of the switch-case and end up at the same place as the label was... ...right? It does doesn't it?
This bug also should also apply to alsa-tools-1.0.5 now.
The patch worked on alsa-tools-1.0.5. I just changed all mention of 1.0.4 to 1.0.5.
I confirm it (alsa-tools-1.0.5). Where is official patch? :)
This patch is so sound I don't understand why you haven't applied it yet. Please do! 1.0.5-r1 still has the problem.
Created attachment 34286 [details, diff] adds a semicolon on a new line, after tag next_cli_arg simply adding a semicolon in file as10k1.c, after the tag next_cli_arg, makes alsa-tools 1.0.5-r1 compile with gcc-3.4.0. And it really does nothing.
This is still here. Does a new bug need to be filed (with an updated version number) so this one doesn't slip under the radar?
Created attachment 38068 [details, diff] alsa-tools-1.0.5-gcc34-fix.patch Patch for 1.0.5. fixed via break, label removed. It just more clean from ideological point of view :)
O! I see that there is the same patch for 1.0.4. Sorry :)
1.0.6 has a gcc 3.4 patch.