The getdents64 syscall adds on 32-but platforms padding which isn't needed
and not included in the userlevel data structure definition. We have to
avoid copying those padding bytes in the readdir64_r function.
When doing i686-unknown-linux-gnu build configured with --enable-kernel=2.6.24,
there are several warnings like this:
../sysdeps/unix/sysv/linux/i386/fcntl.c:36:12: warning: ‘miss_F_GETOWN_EX’ defined but not used
GCC 4.5 warns about "extern void _end; &end;".
Use char[] instead, as that also doesn't fall foul
of a target's .sdata optimizations.
Signed-off-by: Richard Henderson <rth@twiddle.net>
The old implementation uses fd 0 to determine the login TTY. This
was needed because using /dev/tty it is not possible to deduce the
login TTY. For some time now there is the pseudo-file
/proc/self/loginuid which directly helps us to find the user. Prefer
using this file. It also works if stdin is closed, redirected, or
re-opened.
msgrcv() does not work on sparc64, as it passes the 6th argument using
the ipc kludge, while the kernel waits for a 6 arguments syscall. This
patches fixes the problem by using a sparc64 specific version of
msgrcv.c.
2010-03-03 Aurelien Jarno <aurelien@aurel32.net>
* sysdeps/unix/sysv/linux/sparc/sparc64/msgrcv.c: New file.
grantpt was performing two consecutive calls to stat with the same
file name. Avoid this by creating a special version of the ptsname
function which allows to pass the stat result back to the caller.
The pt_chown program is completely transparently called. It might
not be able to live with the various file descriptors the program
has open at the time of the call (e.g., under SELinux). Close all
but the needed descriptor and connect stdin, stdout, and stderr
with /dev/null. pt_chown shouldn't print anything when called to
do real work.