[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[2.3.2.ds1-8] libc6-i686: fork fails assertions but not on all boxes.



I am not on the list: please CC.

I installed the libc6-i686 package on my dual P-III (VP6 mainboard)_
running Linux 2.4.20-vp6+evms+xfs, and it works fine.  It actually seems
a little quicker, subjectively.  So, I thought, wow, let's use this on
the laptop also... and installed it in my Thinkpad running a 2.4.20
built specially for it.  Right after that, nothing works any longer.

I see a pile of assert messages from the libc (see attachment).  I tried
to reboot it, and it would not launch "init".  So then, to repair it, I
booted a Knoppix 3.2 Mosix CD I have, and opened a root shell, mounted
the hard drive, cd'd into it, and then, just for the hell of it, typed
"chroot .".  ???!  Everything works fine.  So, I conclude that there's
something missing from the kernel I was running on that laptop, since it
works fine under the "Linux Knoppix 2.4.21-rc7-openmosix #12 SMP Sun Jun
8 18:19:32 CEST 2003 i686 GNU/Linux" it's running now.

It cannot be just that 2.4.20 is not up to it, since that's what's on
both the Thinkpad and this machine here, where the i686 seems to be
working just fine...  Poking around a little more, I see from "dpkg
--listfiles libc6-i686" that it installs everything in "/lib/tls/i686". 
"ldd /bin/ls" reports:

        librt.so.1 => /lib/librt.so.1 (0x43a47000)
        libacl.so.1 => /lib/libacl.so.1 (0x43054000)
        libc.so.6 => /lib/libc.so.6 (0x42f1f000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x43167000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x42f06000)
        libattr.so.1 => /lib/libattr.so.1 (0x4308e000)

... and /etc/ld.so.conf does not contain the /lib/tls/i686 directory. 
So, what's going on?  Is this computer really running the i686 libc?  I
don't know enough about this subject to debug much more.

I tried the doc directory, and found:

make[2]: Target `check' not remade because of errors.
make[2]: Leaving directory `/home/drow/deb-cvs/nptl/glibc-2.3.2.ds1/build-tree/glibc-2.3.2'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/home/drow/deb-cvs/nptl/glibc-2.3.2.ds1/build-tree/i386-i686'

... way down at the bottom of "log-test-i686-linux-i686.gz".

-- 
Karl M. Hegbloom <karlheg@cs.pdx.edu>
Setting up locales (2.3.2.ds1-8) ...
Installing new version of config file /etc/locale.alias ...
perl: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
perl: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
perl: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
perl: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
perl: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
 
Errors were encountered while processing:
 libc6-dbg
Press return to continue.

Reply to: