Debian libc6 and 2.6.x kernels

From LinodeWiki

Jump to: navigation, search

Debian's libc includes NPTL, a POSIX threads library. NPTL depends partly on a Linux 2.6 feature called TLS, which UML does not support. You may see errors such as the following, or simple segmentation faults.

  simon@stout:~$ ls
  -bash: ../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.
  Aborted

To fix this, either rename /lib/tls (e.g. mv /lib/tls /lib/tls.disabled) or delete it entirely. If in doubt, use the mv command.

For further information, please visit http://www.linode.com/forums/viewtopic.php?t=1082

Personal tools