LDT use in LinuxThreads

Andreas Jaeger aj@suse.de
Tue May 23 22:29:00 GMT 2000


>>>>> Ulrich Drepper writes:

Uli> tb@MIT.EDU (Thomas Bushnell, BSG) writes:
>> That's fine; I thought you were talking about checking a compile-time
>> constant.

Uli> At compile time you provide configure with the minimal supported
Uli> kernel version and this will be enforced at runtime.  With Andreas'
Uli> information we can restrict the use of LDT on kernel 2.3.49 and later
Uli> and enable the feature only if such a kernel is the minimum
Uli> requirement.

Not on 2.3.49 - on something > 2.3.48 and < 2.3.99.  Let's go for
2.3.99 to be on the save side.

Btw. the kernel check is not working (Here's my email from some weeks
ago again):
If I compile the current glibc 2.2 CVS version with
--enable-kernel=2.3.48 and try to run it on a Linux 2.2.14 system, I
get the following error:

$ elf/ld.so --library-path . /bin/ls
/bin/ls: error while loading shared libraries: /bin/ls: cannot stat shared object: Error 38

strace reveals that fstat64 is called:
open("/bin/ls", O_RDONLY)               = 3
SYS_197(0x3, 0xbffff0ec, 0x8, 0x8, 0x3) = -1 ENOSYS (Function not implemented)
close(3)                                = 0
write(2, "/bin/ls", 7/bin/ls)                  = 7

fstat64 seems to be called via the fstat call in
sysdeps/unix/sysv/linux/i386/fstat.c from the dynamic linker.

sysdeps/unix/sysv/linux/init-first.c has a check for the kernel
version and reports "too old kernel" - but this check happens too
late.  Is there any chance to move this earlier?

Andreas
-- 
 Andreas Jaeger
  SuSE Labs aj@suse.de
   private aj@arthur.inka.de


More information about the Libc-hacker mailing list