The asm-generic/unistd.h header in Linux defines a reduced set of syscalls where older and deprecated syscalls have been removed. This patch set makes some changes to the affected C functions so that they work with the generic Linux header.
This patch set is, however, primarily an RFC because: i) The functions are generally made to prefer the "newer" syscall if they exist... I'm not sure this is always valid. ii) I'm uncertain whether the changes to the fstat* functions and to fcntl are correct. I would, in particular, appreciate close review of these. iii) This has been tested for the OpenRISC architecture and compile tested for x86. Other architectures need to be checked. I know that there have been other attempts to do these changes earlier. The patch sets for those, however, aren't easy to find. So if I've reimplemented something that somebody else already has or is working on, then please point me their work so that I can collaborate with them to get this work done. This work is currently of primary interest for the OpenRISC architecture which was recently merged to the upstream Linux kernel with support for only the asm-generic/unistd.y syscalls. Four other architectures are expected to be merged within the next 6-12 months that will all have the issue and will benefit from these changes. /Jonas Jonas Bonn (38): chmod: prefer fchmodat syscall access: prefer faccessat syscall open: prefer openat syscall link: prefer linkat syscall unlink: prefer unlinkat syscall mknod: prefer mknodat syscall chown: prefer fchownat syscall mkdir: prefer mkdirat syscall rmdir: prefer unlinkat syscall lchown: prefer fchownat syscall rename: prefer renameat syscall readlink: prefer readlinkat syscall symlink: prefer symlinkat syscall utimes: prefer utimesat syscall pipe: prefer pipe2 syscall Add dup3 syscall dup2: prefer dup3 syscall epoll_create: prefer epoll_create1 syscall inotify_init: prefer inotify_init1 syscall vfork: prefer clone syscall utime: prefer utimensat syscall fork: prefer clone syscall ftruncate: prefer ftruncate64 syscall truncate: prefer truncate64 syscall sendfile: prefer sendfile64 syscall getdents: fall back to getdents64 statfs: fall back to statfs64 syscall fstatat: use newfstatat for 64 bit only fstatat64: newfstatat is only for 64-bit systems fstat: prefer fstat64 syscall fstatfs: fall back to fstatfs64 stat: prefer fstatat64 syscall stat64: prefer fstatat64 lstat: prefer fstatat64 syscall lstat64: prefer fstatat64 syscall llseek: accept __NR_llseek fcntl: prefer fcntl64 syscall Fixup not_cancel versions of open include/unistd.h | 4 ++ libc/sysdeps/linux/common/__syscall_fcntl.c | 49 +++++++++++++------ libc/sysdeps/linux/common/__syscall_fcntl64.c | 6 ++ libc/sysdeps/linux/common/access.c | 9 ++++ libc/sysdeps/linux/common/chmod.c | 9 ++++ libc/sysdeps/linux/common/chown.c | 11 ++++- libc/sysdeps/linux/common/dup2.c | 6 ++ libc/sysdeps/linux/common/dup3.c | 15 ++++++ libc/sysdeps/linux/common/epoll.c | 17 ++++--- libc/sysdeps/linux/common/fork.c | 19 +++++++- libc/sysdeps/linux/common/fstat.c | 23 +++++++++- libc/sysdeps/linux/common/fstatat.c | 2 +- libc/sysdeps/linux/common/fstatat64.c | 2 +- libc/sysdeps/linux/common/fstatfs.c | 6 ++- libc/sysdeps/linux/common/ftruncate.c | 9 ++++ libc/sysdeps/linux/common/getdents.c | 4 +- libc/sysdeps/linux/common/inotify.c | 11 +++-- libc/sysdeps/linux/common/lchown.c | 11 ++++ libc/sysdeps/linux/common/link.c | 10 ++++ libc/sysdeps/linux/common/llseek.c | 7 ++- libc/sysdeps/linux/common/lstat.c | 14 ++++++ libc/sysdeps/linux/common/lstat64.c | 19 ++++++-- libc/sysdeps/linux/common/mkdir.c | 9 ++++ libc/sysdeps/linux/common/mknod.c | 10 ++++ libc/sysdeps/linux/common/not-cancel.h | 6 ++ libc/sysdeps/linux/common/open.c | 7 +++ libc/sysdeps/linux/common/pipe.c | 10 ++++- libc/sysdeps/linux/common/readlink.c | 10 ++++ libc/sysdeps/linux/common/rename.c | 10 ++++ libc/sysdeps/linux/common/rmdir.c | 8 +++ libc/sysdeps/linux/common/sendfile.c | 23 ++++++++- libc/sysdeps/linux/common/stat.c | 14 +++++- libc/sysdeps/linux/common/stat64.c | 16 ++++++- libc/sysdeps/linux/common/statfs.c | 36 ++++++++++++++ libc/sysdeps/linux/common/symlink.c | 14 +++++- libc/sysdeps/linux/common/truncate.c | 9 ++++ libc/sysdeps/linux/common/unlink.c | 9 ++++ libc/sysdeps/linux/common/utime.c | 19 +++++++- libc/sysdeps/linux/common/utimes.c | 21 ++++++++- libc/sysdeps/linux/common/vfork.c | 20 ++++++++- .../linuxthreads.old/sysdeps/pthread/not-cancel.h | 5 ++ 41 files changed, 468 insertions(+), 51 deletions(-) create mode 100644 libc/sysdeps/linux/common/dup3.c -- 1.7.5.4 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
