[PATCH v3 00/48] Support for cut-down Linux syscalls
Markos Chandras
markos.chandras at gmail.com
Wed Jan 23 11:41:24 UTC 2013
From: Markos Chandras <markos.chandras at imgtec.com>
Hi,
This is the v3 of the patchset I sent on the 26th of November 2012[1].
Changes since v2:
- Base patches on the uClibc master branch
- Fix libc_hidden_def for faccessat when implementing the access syscall[2]
- Make vfork act as fork using the clone syscall[3]
- Fix #ifdef clause for the stat syscall[4]
- c6x is a new arch, so it does not need ARCH_HAS_DEPRECATED_SYSCALLS[5]
- Fix non-LFS compilation problems[6]
- Add new struct stat and struct statfs for new architectures so we can
pass them directly to syscalls and avoid conversion code[7]
All patches are based on the uClibc master branch and are available in the
following git repository:
https://github.com/hwoarang/uClibc
git://github.com/hwoarang/uClibc.git master-syscalls-for-upstream
[1]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047209.html
[2]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047269.html
[3]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047277.html
[4]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047290.html
[5]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047253.html
[6]: http://lists.uclibc.org/pipermail/uclibc/2012-December/047314.html
[7]: http://lists.uclibc.org/pipermail/uclibc/2012-November/047255.html
Markos Chandras (48):
libc/sysdeps: Add new interfaces for new architectures
Config.in: Introduce symbol for arches with deprecated syscalls
Makefile.in: Use non-legacy interfaces for new architectures
dup2: Use dup3 if arch does not have the dup2 syscall
chmod: Use fchmodat if arch does not have the chmod syscall
access: Use faccessat if arch does not have the access syscall
link: Use linkat if arch does not have the link syscall
unlink: Use unlinkat if arch does not have the unlink syscall
mknod: Use mknodat if arch does not have the mknod syscall
chown: Use fchownat if arch does not have the chown syscall
rmdir: Use unlinkat if arch does not have the rmdir syscall
lchown: Use fchownat if arch does not have the lchown syscall
mkdir: Use mkdirat if arch does not have the mkdir syscall
rename: Use renameat if arch does not have the rename syscall
readlink: Use readlinkat if arch does not have the readlink syscall
symlink: Use symlinkat if arch does not have the symlink syscall
utimes: Use utimensat if arch does not have the utimes syscall
pipe: Use pipe2 if arch does not have the pipe syscall
epoll: Use epoll_create1 if arch does not have the epoll_create
syscall
epoll: Use epoll_pwait if arch does not have the epoll_wait syscall
inotify_init: Use inotify_init1 if inotify_init syscall is not defined
utime: Use utimensat if arch does not have the utime syscall
vfork: Use clone if arch does not have the vfork syscall
fork: Use clone if arch does not have the fork syscall
ftruncate: Use ftruncate64 if arch does not have the ftruncate syscall
truncate: Use truncate64 if arch does not have the truncate syscall
sendfile: Use sendfile64 if arch does not have the sendfile syscall
lseek: Use lseek64 is arch does not have the lseek syscall
getdents: Use getdents64 if arch does not have the getdents syscall
statfs: Use statfs64 if arch does not have the statfs syscall
libc/statfs64: Skip conversion code for new architectures
fstat: Use fstat64 if arch does not have the fstat syscall
fstatat: Use newfstatat only for 64-bit operations
fstatat64: Use newfstatat only for 64-bit operations
fstatat{64}: No conversion code is needed for new architectures
stat64: Use fstatat64 if arch does not have the stat64 syscall
lstat: Use fstatat64 if arch does not have the lstat syscall
lstat64: Use fstatat64 if arch does not have the lstat64 syscall
ustat: Add ustat stub for arches that don't have the ustat system call
stat: Use fstatat64 if arch does not have the stat syscall
fstatfs: Add __libc_fstatfs wrapper
fstatfs64: Prefer fstatfs64 system call instead of __libc_fstatfs
fcntl: Use fcntl64 is arch does not have the fcntl syscall
open64: Use openat if arch does not have the open syscall
not-cancel.h: Use openat if arch does not have the open syscall
open: Use openat if arch does not have the open syscall
ldso: Use newer syscalls if arch does not have the deprecated syscalls
libc/ipc: Allow architectures to define their own __IPC_64 macro
Makefile.in | 15 ++
extra/Configs/Config.alpha | 1 +
extra/Configs/Config.arm | 1 +
extra/Configs/Config.avr32 | 1 +
extra/Configs/Config.bfin | 1 +
extra/Configs/Config.cris | 1 +
extra/Configs/Config.e1 | 1 +
extra/Configs/Config.frv | 1 +
extra/Configs/Config.h8300 | 1 +
extra/Configs/Config.hppa | 1 +
extra/Configs/Config.i386 | 1 +
extra/Configs/Config.i960 | 1 +
extra/Configs/Config.ia64 | 1 +
extra/Configs/Config.in | 2 +
extra/Configs/Config.in.arch | 8 +
extra/Configs/Config.m68k | 1 +
extra/Configs/Config.microblaze | 5 +
extra/Configs/Config.mips | 1 +
extra/Configs/Config.nios | 1 +
extra/Configs/Config.nios2 | 1 +
extra/Configs/Config.powerpc | 1 +
extra/Configs/Config.sh | 1 +
extra/Configs/Config.sh64 | 1 +
extra/Configs/Config.sparc | 1 +
extra/Configs/Config.v850 | 1 +
extra/Configs/Config.vax | 1 +
extra/Configs/Config.x86_64 | 1 +
extra/Configs/Config.xtensa | 5 +
include/stdio.h | 1 +
include/sys/sendfile.h | 1 +
include/sys/stat.h | 4 +
include/sys/statfs.h | 1 +
include/unistd.h | 8 +
ldso/include/dl-syscall.h | 33 +++-
ldso/include/ldso.h | 4 +
libc/misc/statfs/fstatfs64.c | 14 ++
libc/misc/statfs/statfs64.c | 9 +
libc/misc/sysvipc/ipc.h | 2 +
.../linux/common-no-legacy/bits/align64bit.h | 17 ++
libc/sysdeps/linux/common-no-legacy/bits/dirent.h | 55 ++++++
.../linux/common-no-legacy/bits/kernel_stat.h | 20 +++
libc/sysdeps/linux/common-no-legacy/bits/stat.h | 195 +++++++++++++++++++++
libc/sysdeps/linux/common-no-legacy/bits/statfs.h | 78 +++++++++
libc/sysdeps/linux/common/Makefile.in | 4 +
libc/sysdeps/linux/common/__syscall_fcntl.c | 18 +-
libc/sysdeps/linux/common/__syscall_fcntl64.c | 1 +
libc/sysdeps/linux/common/access.c | 10 ++
libc/sysdeps/linux/common/chmod.c | 9 +
libc/sysdeps/linux/common/chown.c | 9 +
libc/sysdeps/linux/common/dup2.c | 17 ++
libc/sysdeps/linux/common/dup3.c | 1 +
libc/sysdeps/linux/common/epoll.c | 18 ++
libc/sysdeps/linux/common/faccessat.c | 1 +
libc/sysdeps/linux/common/fchmodat.c | 1 +
libc/sysdeps/linux/common/fchownat.c | 1 +
libc/sysdeps/linux/common/fork.c | 19 ++
libc/sysdeps/linux/common/fstat.c | 20 +++
libc/sysdeps/linux/common/fstat64.c | 4 +
libc/sysdeps/linux/common/fstatat.c | 18 +-
libc/sysdeps/linux/common/fstatat64.c | 8 +-
libc/sysdeps/linux/common/fstatfs.c | 21 ++-
libc/sysdeps/linux/common/ftruncate.c | 18 ++
libc/sysdeps/linux/common/getdents.c | 26 ++-
libc/sysdeps/linux/common/getdents64.c | 2 +-
libc/sysdeps/linux/common/inotify.c | 7 +
libc/sysdeps/linux/common/lchown.c | 11 ++
libc/sysdeps/linux/common/link.c | 9 +
libc/sysdeps/linux/common/linkat.c | 1 +
libc/sysdeps/linux/common/lseek.c | 7 +
libc/sysdeps/linux/common/lstat.c | 17 +-
libc/sysdeps/linux/common/lstat64.c | 11 +-
libc/sysdeps/linux/common/mkdir.c | 8 +
libc/sysdeps/linux/common/mkdirat.c | 1 +
libc/sysdeps/linux/common/mknod.c | 8 +
libc/sysdeps/linux/common/not-cancel.h | 7 +
libc/sysdeps/linux/common/open.c | 18 ++
libc/sysdeps/linux/common/open64.c | 5 +-
libc/sysdeps/linux/common/pipe.c | 8 +
libc/sysdeps/linux/common/readlink.c | 8 +
libc/sysdeps/linux/common/readlinkat.c | 1 +
libc/sysdeps/linux/common/rename.c | 9 +
libc/sysdeps/linux/common/renameat.c | 1 +
libc/sysdeps/linux/common/rmdir.c | 8 +
libc/sysdeps/linux/common/sendfile.c | 48 ++++-
libc/sysdeps/linux/common/sendfile64.c | 1 +
libc/sysdeps/linux/common/stat.c | 17 +-
libc/sysdeps/linux/common/stat64.c | 20 ++-
libc/sysdeps/linux/common/statfs.c | 31 +++-
libc/sysdeps/linux/common/stubs.c | 31 +++-
libc/sysdeps/linux/common/symlink.c | 16 +-
libc/sysdeps/linux/common/symlinkat.c | 1 +
libc/sysdeps/linux/common/truncate.c | 22 +++
libc/sysdeps/linux/common/truncate64.c | 4 +-
libc/sysdeps/linux/common/unlink.c | 8 +
libc/sysdeps/linux/common/unlinkat.c | 1 +
libc/sysdeps/linux/common/ustat.c | 2 +
libc/sysdeps/linux/common/utime.c | 25 ++-
libc/sysdeps/linux/common/utimes.c | 22 ++-
libc/sysdeps/linux/common/vfork.c | 21 +++
.../linuxthreads.old/sysdeps/pthread/not-cancel.h | 9 +
.../linuxthreads/sysdeps/pthread/not-cancel.h | 9 +
.../nptl/sysdeps/unix/sysv/linux/not-cancel.h | 9 +
102 files changed, 1129 insertions(+), 39 deletions(-)
create mode 100644 libc/sysdeps/linux/common-no-legacy/bits/align64bit.h
create mode 100644 libc/sysdeps/linux/common-no-legacy/bits/dirent.h
create mode 100644 libc/sysdeps/linux/common-no-legacy/bits/kernel_stat.h
create mode 100644 libc/sysdeps/linux/common-no-legacy/bits/stat.h
create mode 100644 libc/sysdeps/linux/common-no-legacy/bits/statfs.h
--
1.8.1.1
More information about the uClibc
mailing list