From: Markos Chandras <[email protected]> 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 _______________________________________________ uClibc mailing list [email protected] http://lists.busybox.net/mailman/listinfo/uclibc
