What a pain in the ass this gcc3 is. Nothing builds right on FreeBSD -CURRENT either. Will it be worth all the bother? In file included from trident_memory.c:1: ../../alsa-kernel/pci/trident/trident_memory.c: In function `snd_trident_synth_bzero_Rdf2768f0': ../../alsa-kernel/pci/trident/trident_memory.c:402: unrecognizable insn: (insn 228 221 230 (set (reg:SI 99) (ashift:SI (plus:SI (reg/v:SI 63) (const_int -1 [0xffffffff])) (const_int 12 [0xc]))) -1 (insn_list 28 (nil)) (nil)) ../../alsa-kernel/pci/trident/trident_memory.c:402: Internal compiler error in extract_insn, at recog.c:2132 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make[2]: *** [trident_memory.o] Error 1
I used to use gcc3.0.4 under a gcc3 default-1.0 profile. Now I use a gcc3.1-r2. alsa-driver has compiled fine for me under both versions of gcc3.
The build problems with arts and fam-oss did resolve after doing emerge prune gcc, which removed the offending files from /usr/include. (And, BTW, it also removed /usr/bin/makeinfo and info-install.) However--alsa-driver continues to fail at exactly the same spot with gcc3.1-r3 and now 3.1-r4, so where do I go with this: make[2]: Leaving directory `/var/tmp/portage/alsa-driver-0.9.0_rc1-r7/work/alsa-driver-0.9.0rc1/pci/rme9652' make -C trident modules make[2]: Entering directory `/var/tmp/portage/alsa-driver-0.9.0_rc1-r7/work/alsa-driver-0.9.0rc1/pci/trident' gcc -DALSA_BUILD -D__KERNEL__ -DMODULE=1 -I/var/tmp/portage/alsa-driver-0.9.0_rc1-r7/work/alsa-driver-0.9.0rc1/include -I/usr/src/linux/include -O2 -mpreferred-stack-boundary=2 -march=k6 -DLINUX -W all -Wstrict-prototypes -fomit-frame-pointer -pipe -c -o trident_memory.o trident_memory.c In file included from trident_memory.c:1: ../../alsa-kernel/pci/trident/trident_memory.c: In function `snd_trident_synth_bzero_Rdf2768f0': ../../alsa-kernel/pci/trident/trident_memory.c:402: unrecognizable insn: (insn 228 221 230 (set (reg:SI 99) (ashift:SI (plus:SI (reg/v:SI 63) (const_int -1 [0xffffffff])) (const_int 12 [0xc]))) -1 (insn_list 28 (nil)) (nil)) ../../alsa-kernel/pci/trident/trident_memory.c:402: Internal compiler error in extract_insn, at recog.c:2132 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make[2]: *** [trident_memory.o] Error 1 make[2]: Leaving directory `/var/tmp/portage/alsa-driver-0.9.0_rc1-r7/work/alsa-driver-0.9.0rc1/pci/trident' make[1]: *** [_modsubdir_trident] Error 2 make[1]: Leaving directory `/var/tmp/portage/alsa-driver-0.9.0_rc1-r7/work/alsa-driver-0.9.0rc1/pci' make: *** [compile] Error 1 Since alsa installs kernel driver modules--I wonder if this is really a kernel configuration problem instead of a gcc problem? Wouldn't explain why it compiled under 3.04 but not 3.1, tho.
For /usr/bin/makeinfo and info-install, emerge texinfo-4.2 (possibly masked atm). For the sound problem... if you've recompiled your kernel recently it might cause this problem. Try cd /usr/src/linux cp .config /tmp make mrproper cp /tmp/.config . make dep make clean And then try re-emerging fam-oss. This procedure seems to fix unresolved symbol problems... perhaps it will do something for you with fam-oss.
[As aside, fam-oss was fixed by doing the emerge prune gcc, so that's okay.] I've discovered that I can get alsa-driver completed by lowerering the -O2 to -O1 in that one trident subdirectory. Then I can do a make install in the top work subdirectory and the modules actually get installed in /lib/modules. Not really very satisfying, since the portage database doesn't get updated and emerge keeps wanting to upgrade alsa-driver again. Any clues why gcc chokes on the -O2 flag just in that one spot? I'm using these flags in make.conf: CFLAGS="-mcpu=k6 -march=k6 -O3 -pipe" CXXFLAGS="-mcpu=k6 -march=k6 -O3 -pipe" but obviously somewhere the -O2 flag gets stuck in by somebody else.
I think you should send a bug report to the gcc team. If -O2 works and -O3 doesn't, I think they may have a gcc bug. I'd guess it's your k6 flags, since it builds fine for me with 686 flags. I'll resolve this as wontfix for now since it looks like a gcc bug.