xfree 4.2.1-r2 fails with a bad or missing directory when trying to compile light.o (ie: it's trying to put it into a directory that doesn't exist). The directory I'm in: /var/tmp/portage/xfree-4.2.1-r2/work/xc/lib/GL/mesa/src/OSmesa What happens when make is run here: phoenix OSmesa # make rm -f ../../../../../lib/GL/mesa/src/light.o unshared/../../../../../lib/GL/mesa/src/light.o gcc -c -ansi -pedantic -Wall -Wpointer-arith -I../../../../../exports/include/X11 -I../../../../../include/extensions -I../../../../../extras/Mesa/src/OSmesa -I../../../../../extras/Mesa/src -I../../../../../extras/Mesa/include -I../../../../.. -I../../../../../exports/include -Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO -DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DMALLOC_0_RETURNS_NULL -march=athlon -O2 -pipe -fno-merge-constants ../../../../../lib/GL/mesa/src/light.c -o unshared/../../../../../lib/GL/mesa/src/light.o Assembler messages: FATAL: can't create unshared/../../../../../lib/GL/mesa/src/light.o: No such file or directory make: *** [../../../../../lib/GL/mesa/src/light.o] Error 2 The contents of the local directory: phoenix OSmesa # ll total 1572 drwxr-xr-x 3 root root 4096 Dec 30 12:31 . drwxr-xr-x 7 root root 4096 Dec 30 12:31 .. -rw-r--r-- 1 root root 1972 Jun 4 2001 Imakefile -rw-r--r-- 1 root root 51614 Dec 30 10:52 Makefile -rw-r--r-- 1 root root 48759 Dec 30 10:40 Makefile.bak -rw-r--r-- 1 root root 567 Aug 9 2000 OSmesa-def.cpp -rw-r--r-- 1 root root 1446918 Dec 30 12:30 libOSMesa.a lrwxr-xr-x 1 root root 46 Dec 30 10:44 osmesa.c -> ../../../../../extras/Mesa/src/OSmesa/osmesa.c -rw-r--r-- 2 root root 25232 Dec 30 11:14 osmesa.o drwxr-xr-x 2 root root 4096 Dec 30 11:14 unshared It *almost* looks like the local directory's unshared directory should be a symlink to ../unshared, which has a light.o in it, but creating a symlink from `pwd`/unshared to ../unshared only makes things puke even worse. I've tried both the normal "extreme" compile flags as well as plain old "-O2", and my USE flags look like this: USE="-gpm xv slang readline berkdb mmx 3dnow ddbm tcpd pam libwww ssl mitshm arts lame perl python gif imlib sdl oggvorbis gnome gtk X qtmt kde opengl avi mpeg quicktime png tiff gif pda slp cups dga bonobo evo gtkhtml esd xmms crypt imap mozilla spell truetype xml xml2 mysql -postgres samba " This is on gentoo 1.3 (gcc 3.1) on a athlon-900 with 450mb ram.
You will have to create a detailed log: # emerge xfree &> xfree.log And bzip2 and attatch it. It is most likely somewhere earlier that it failed, and this is a result ...
Sorry for not updating sooner, but I've been working with this trying to find out exactly what is going on. It appears that this error is caused by an internal gcc error earlier on: gcc -c -mcpu=athlon -O2 -fno-merge-constants -ansi -pedantic -Wall -Wpointer- arith -I../../../../exports/include -I../../../../exports/include/X11 - I../../../../include/extensions -I../../../../extras/Mesa/src - I../../../../lib/GL/dri -I../../../.. -I../../../../exports/include - Dlinux -D__i386__ -D_POSIX_C_SOURCE=199309L -D_POSIX_SOURCE -D_XOPEN_SOURCE - D_BSD_SOURCE -D_SVID_SOURCE -D_GNU_SOURCE -DFUNCPROTO=15 -DNARROWPROTO - DXTHREADS -D_REENTRANT -DXUSE_MTSAFE_API -DMALLOC_0_RETURNS_NULL -DGLXEXT - DXF86DRI -DGLX_DIRECT_RENDERING -DGLX_USE_DLOPEN -DGLX_USE_MESA - DUSE_X86_ASM -DUSE_MMX_ASM -DUSE_3DNOW_ASM -DUSE_KATMAI_ASM -fPIC translate.c In file included from translate.c:779: ../../../../extras/Mesa/src/trans_tmp.h: In function `trans_1_GLdouble_1ub_elt': ../../../../extras/Mesa/src/trans_tmp.h:124: could not find a spill register (insn 99 97 100 (set (subreg:SF (reg:QI 76) 0) (plus:SF (reg:SF 8 st(0) [77]) (reg:SF 9 st(1) [81]))) 525 {*fop_sf_comm_nosse} (insn_list 90 (nil)) (expr_list:REG_DEAD (reg:SF 8 st(0) [77]) (nil))) ../../../../extras/Mesa/src/trans_tmp.h:124: Internal compiler error in failed_reload, at reload1.c:5050 Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions. make[5]: *** [translate.o] Error 1 This is gcc 3.1.1: phoenix xfree # gcc -v Reading specs from /usr/lib/gcc-lib/i686-pc-linux-gnu/3.1/specs Configured with: /var/tmp/portage/gcc-3.1-r7/work/gcc-3.1/configure -- prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared - -host=i686-pc-linux-gnu --build=i686-pc-linux-gnu --target=i686-pc-linux-gnu -- enable-threads=posix --enable-long-long --enable-cstdio=stdio --enable- clocale=generic --disable-checking --with-gxx-include-dir=/usr/include/g++- v31 --with-local-prefix=/usr/local --with-system-zlib --enable-shared --enable- nls --without-included-gettext Thread model: posix gcc version 3.1 phoenix xfree # emerge -s ^gcc$ Searching... [ Results for search key : ^gcc$ ] [ Applications found : 1 ] * sys-devel/gcc Latest version available: 3.1.1-r1 Latest version installed: 3.1.1-r1 Size of downloaded files: 20,063 kB Homepage: http://www.gnu.org/software/gcc/gcc.html Description: Modern GCC C/C++ compiler phoenix xfree # cat /proc/cpuinfo processor : 0 vendor_id : AuthenticAMD cpu family : 6 model : 4 model name : AMD Athlon(tm) Processor stepping : 2 cpu MHz : 908.242 cache size : 256 KB fdiv_bug : no hlt_bug : no f00f_bug : no coma_bug : no fpu : yes fpu_exception : yes cpuid level : 1 wp : yes flags : fpu vme de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pat pse36 mmx fxsr syscall mmxext 3dnowext 3dnow bogomips : 1789.95 I've tried just about every combination of CFLAGS settings except for none, currently it's compiling with "-mcpu=athlon -O2" just in case the - march=athlon was messing something up. After trying with no CFLAGS (even though the ebuild sets up -mno-mmx -mno- 3dnow), my next step is to go down a level of gcc to 3.1-r8, as it was the previous version to this, and I don't remember updating gcc except for once a month or so back, so hopefully the downgrade will resolve the error. I *could* seem to get that file to compile by stripping out the march cflag out, or setting no cflags at all, so hopefully that'll do it until I can upgrade to the full gcc 3.2 or whatever is standard when 1.4 comes out.
Additional info: http://bugs.gentoo.org/show_bug.cgi?id=5613 http://forums.gentoo.org/viewtopic.php? t=10998&highlight=xfree+gcc+register+spill
And if you had: CFLAGS="-march=i686 -O2 -pipe" ? The other alternative is to update to gcc-3.2.1, but afiak, the safest and least painful method will be a clean install :(
I finally got this to with no CFLAGS at all. I found about that time that I couldn't compile GCC either (I thought that I might be able to downgrade from the -rx version I was running) due to similar assembler type messages. I recently moved to gentoo 1.4rc2 though, so I think this bug can go on the scrapheap. I am still getting some __glxFree and __glxMalloc errors on startx, but it doesn't seem to affect things, though I haven't tried quake yet. Not sure if this is fixed or cantfix or wontfix... marking fixed for now.
Did you upgrade from 1.2 ? If so, then its a known issue for things to go wonky with the gcc upgrade. Also from gcc-3.1 there are issues. Best thing is to do a clean install :(
No, no upgrade, the problem occurred on a straight 1.3 system (1.3b I think actually) that was a fresh install. My install to 1.4rc2 was fresh as well, and I haven't had any problems with this yet.