I try to install Gentoo on an Amd-K6-2. To fasten the process, I decided to let my computer help the other one.
The way I tried is using distcc. Thus my computer has got a Pentium-M processor (i686) and the other one an Amd-K6-2 (i586) I have to use crossdev. I know that glibc and gcc versions must be matching to avoid problems. At first I emerged glibc-2.5 at the Amd-K6-2-machine with the error message at the bottom. I remebered having the same problem at my Pentium-M. Thus I masked glibc-2.5 at both computers and emerged glibc-2.4-r4 at the Amd-K6-2 without any problems. To make crossdev -t i586 emerge glibc-2.4-r4 I masked glibc-2.5 for this overlay within package.mask. When running crossdev -t i586 on my Pentium-M I get the same error again. But that is in my opinion strange, because emerging glibc-2.4-r4 worked at both computers before.
The only solution I see is downgrading to an older glibc-version. I tried to find some information about this error but people got this error with other programms.
Both package.mask:
Code: Select all
=sys-libs/glibc-2.5
=cross-i586-pc-linux-gnu/glibc-2.5Code: Select all
i586-pc-linux-gnu-gcc -c -I../include -I/var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/build-default-i586-pc-linux-gnu-nptl/posix -I/var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/build-default-i586-pc-linux-gnu-nptl -I../sysdeps/i386/elf -I../nptl/sysdeps/unix/sysv/linux/i386/i586 -I../nptl/sysdeps/unix/sysv/linux/i386 -I../sysdeps/unix/sysv/linux/i386 -I../ports/sysdeps/unix/sysv/linux -I../nptl/sysdeps/unix/sysv/linux -I../nptl/sysdeps/pthread -I../sysdeps/pthread -I../sysdeps/unix/sysv/linux -I../sysdeps/gnu -I../sysdeps/unix/common -I../sysdeps/unix/mman -I../sysdeps/unix/inet -I../ports/sysdeps/unix/sysv/i386 -I../sysdeps/unix/sysv/i386 -I../ports/sysdeps/unix/sysv -I../nptl/sysdeps/unix/sysv -I../sysdeps/unix/sysv -I../sysdeps/unix/i386 -I../ports/sysdeps/unix -I../nptl/sysdeps/unix -I../sysdeps/unix -I../sysdeps/posix -I../nptl/sysdeps/i386/i586 -I../sysdeps/i386/i586 -I../sysdeps/i386/i486 -I../nptl/sysdeps/i386/i486 -I../sysdeps/i386/fpu -I../nptl/sysdeps/i386 -I../sysdeps/i386 -I../sysdeps/wordsize-32 -I../sysdeps/ieee754/ldbl-96 -I../sysdeps/ieee754/dbl-64 -I../sysdeps/ieee754/flt-32 -I../sysdeps/ieee754 -I../sysdeps/generic/elf -I../sysdeps/generic -I../ports -I../nptl -I.. -I../libio -I. -nostdinc -isystem /usr/lib/gcc/i586-pc-linux-gnu/4.1.1/include -isystem /usr/i586-pc-linux-gnu/usr/include -D_LIBC_REENTRANT -include ../include/libc-symbols.h -DASSEMBLER -DGAS_SYNTAX -Wa,--noexecstack -Wa,--noexecstack -x assembler-with-cpp -o /var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/build-default-i586-pc-linux-gnu-nptl/posix/nanosleep.o -
../nptl/sysdeps/unix/sysv/linux/i386/../fork.c: In function '__libc_fork':
../nptl/sysdeps/unix/sysv/linux/i386/../fork.c:203: error: can't find a register in class 'BREG' while reloading 'asm'
make[2]: *** [/var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/build-default-i586-pc-linux-gnu-nptl/posix/fork.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: Leaving directory `/var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/glibc-2.4/posix'
make[1]: *** [posix/subdir_lib] Error 2
make[1]: Leaving directory `/var/tmp/cross/i586-pc-linux-gnu/portage/glibc-2.4-r4/work/glibc-2.4'
make: *** [all] Error 2
!!! ERROR: cross-i586-pc-linux-gnu/glibc-2.4-r4 failed.
Call stack:
ebuild.sh, line 1546: Called dyn_compile
ebuild.sh, line 937: Called src_compile
glibc-2.4-r4.ebuild, line 1163: Called src_compile
glibc-2.4-r4.ebuild, line 1174: Called toolchain-glibc_src_compile
glibc-2.4-r4.ebuild, line 259: Called die
!!! make for default failed
!!! If you need support, post the topmost build error, and the call stack if relevant.Portage profile at Pentium-M: glibc-2.4-r4
USE="nls acpi -arts alsa oss ogg vorbis mp3 opengl gif png jpeg -gnome kde qt3 qt4 dri -ipv6 X bitmap-fonts truetype-fonts type1-fonts mmx"
Search:
I found this, but I don't even have a rough idea what it means. But this was the only thing I found which is not obviously not connectet with my problem.
Source: http://my.execpc.com/~geezer/osd/gotchas/index.htm'can't find a register in class `[AREG|BREG|CREG|DREG]' while reloading `asm'
New versions of the GNU assembler are pickier about the clobber lists used in inline asm. Though it worked fine with older versions of the GNU assembler, the following code is now considered incorrect:
static inline void
memset(void *__dest, unsigned int __fill, unsigned int __size) {
__asm__ __volatile__ ("cld
rep
stosb" :
/* no outputs */ :
"c" (__size),
"a" (__fill),
"D" (__dest) :
"ecx","eax","edi","memory");
}
because registers ECX, EAX, and EDI are present in both the clobber list and the input constraints. Remove these registers from the clobber list:
...
"a" (__fill),
"D" (__dest) :
"memory");
}
and the code should assemble without error.

