linux 2.1.71 and libc

H.J. Lu hjl@lucon.org
Sat Dec 6 14:32:00 GMT 1997


> 
> linux-2.1.71, libc-5.4.41, binutils-2.8.1.0.17;

There is a problem with linux-2.1.71 and libc 5.4.41. I haven't
found a good solution for it yet.

sigset_t is changed in linux-2.1.71 to 64 bits. That breaks libc 5.4.x.
Also many older binaries using 32 bit sigset_t may not work properly
under linux-2.1.71.

It happens to glibc 2 also. The latest glibc 2.1 also has 64-bit
sigset_t. As the result, old binaries won't work very well. It may
be easier to deal with in glibc 2 using ELF versioning. But it is
not so for libc 5.4.x. For libc 5.4.x, I may do

extern xxxx _new_sigxxxx (xxx);

#define sigxxxx _new_sigxxxx

Ulrich, could you please fix it for glibc 2.1?

BTW, we have to translate between old and new kernel/sigset_t at
the run time. It is a very tricky one.

Linus, I think we shoud provide a new system call for each old system
call which uses sigset_t. Otherwise, we may run into many trouble
with old binaries.


Thanks.


H.J.



More information about the Gcc mailing list