Starting with a blank installation directory, when you do an emerge linux-headers (using ARCH=sparc USE="-* build sparc" emerge linux-headers), the version of header files that get installed will not allow proper compilation of the glibc package. Copying the include files in from an already installed platform will allow the glibc package to be compiled correctly, however.
I have seen the problem, this is regarding the /usr/include/asm/unistd.h file. This all due to the 64bit kernel/ 32bit system missmatch. Firstly I need more infomation, what is the system, 32 or 64, what exectly are the errors? Also ARCH=sparc USE="-* build sparc" emerge linux-headers is wrong for a 64/32 bit hybread, you should use sparc64 not sparc, the headers detect which you want to use automatically. Also if you have the kernel source about with a valid symlink at /lib/modules/2.4.xx/build glibc will try and use the kernel source headers which will cause a failed compile if kernel and userland are not the same bitage. I have tried to fix this in the glibc ebuild with --include-headers option. On the copyed headers what /usr/include/asm-?? dirs do you have and what does kernel-headers install. please continue ... Stefan
User/Hardware/Power fault! Oh well, at least I had a good thinking session!