with compat-egcs-6.2-1.1.2.14, all the files in /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/ are symbolic links, and all of them are broken. with a clean install of compat-egcs-6.2-1.1.2.14, one can verify this with rpm --verify compat-egcs and see that the output is: ....L... /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/README ....L... /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/float.h ....L... /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/iso646.h ....L... /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/limits.h ....L... /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include/proto.h etc. among other things, this prevents compilation of the standard kernel source with kgcc. output looks something like this: kgcc -D__KERNEL__ -I/usr/src/linux-current/include -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -fno-strict-aliasing -pipe -march=i686 -c -o init/main.o init/main.c In file included from /usr/src/linux-current/include/linux/wait.h:13, from /usr/src/linux-current/include/linux/fs.h:12, from /usr/src/linux-current/include/linux/capability.h:17, from /usr/src/linux-current/include/linux/binfmts.h:5, from /usr/src/linux-current/include/linux/sched.h:9, from /usr/src/linux-current/include/linux/mm.h:4, from /usr/src/linux-current/include/linux/slab.h:14, from /usr/src/linux-current/include/linux/proc_fs.h:5, from init/main.c:15: /usr/src/linux-current/include/linux/kernel.h:10: stdarg.h: Too many levels of symbolic links In file included from /usr/src/linux-current/include/linux/wait.h:13, from /usr/src/linux-current/include/linux/fs.h:12, from /usr/src/linux-current/include/linux/capability.h:17, from /usr/src/linux-current/include/linux/binfmts.h:5, from /usr/src/linux-current/include/linux/sched.h:9, from /usr/src/linux-current/include/linux/mm.h:4, from /usr/src/linux-current/include/linux/slab.h:14, from /usr/src/linux-current/include/linux/proc_fs.h:5, from init/main.c:15: /usr/src/linux-current/include/linux/kernel.h:62: parse error before `va_list' /usr/src/linux-current/include/linux/kernel.h:62: warning: function declaration isn't a prototype make: *** [init/main.o] Error 1 it looks like this happened in the shuffle of moving kgcc from it's own rpm, to the compat-egcs package.
No, it happened because compat-egcs-6.2-1.1.2.12 and compat-egcs-6.2-1.1.2.13 used to hardlink the header files between /usr/lib/gcc-lib/i386-{glibc21,redhat}-linux/include and rpm did not handle this well. If you upgrade from the compat-egcs shipped in 7.0 originally (or from 6.2), all should be fine. What you can do now is either rpm -e the compat packages and install them again, or rm -rf /usr/lib/gcc-lib/i386-glibc21-linux and rpm -Uvh --force the compat packages.
hmm. this doesn't seem to do the trick for me. i've removed the compat-* packages, and reinstalled from rawhide. unfortunately, the links are still broken. $ pwd /usr/lib/gcc-lib/i386-glibc21-linux/egcs-2.91.66/include $ ls -l stdarg.h ... stdarg.h -> ../../../i386-glibc21-linux/egcs-2.91.66/include/stdarg.h all the include files in this directory are links pointing to themselves. am i missing something?
So after you remove the packages, make sure /usr/lib/gcc-lib/i386-glibc21-linux tree is empty. I just did an compat-egcs-6.2-1.1.2.9 (and other subpackages) to compat-egcs-6.2-1.1.2.14 and the files are ok.
No...the files are not there....they are symbolic links to themselves! I removed all the compat rpms, removed the entire directory /usr/lib/gcc-lib/i386-glibc21-linux/ and reinstalled the rpms and links are still pointing to themselves and the real files are nowhere in the system.
yes, that's what i see over here too. this bug should be reopened.