diff options
author | Joseph Myers <joseph@codesourcery.com> | 2014-03-31 12:51:45 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2014-03-31 12:51:45 +0000 |
commit | d7a68734f7bbc76586017461cff19af0d9cb4df8 (patch) | |
tree | 8247b175a0af04c6b21e596f80484e52ba00231f /sysdeps/unix/sysv/linux/mips | |
parent | c760f5c210d85247ef0c6e10f7ef44fa27d9bd1d (diff) | |
download | glibc-d7a68734f7bbc76586017461cff19af0d9cb4df8.tar.gz glibc-d7a68734f7bbc76586017461cff19af0d9cb4df8.tar.xz glibc-d7a68734f7bbc76586017461cff19af0d9cb4df8.zip |
Fix futimesat for older MicroBlaze kernels (bug 16648).
Continuing the fixes for __ASSUME_* issues in preparation for moving to a 2.6.32 minimum kernel version, this *untested* patch fixes bug 16648, the definition of __ASSUME_ATFCTS meaning that the futimesat syscall is assumed for all MicroBlaze kernels despite not being present until 2.6.33. __ASSUME_ATFCTS controls conditionals relating to a lot of different syscalls in Linux-specific code (fstatat64 faccessat fchmodat fchownat futimesat newfstatat linkat mkdirat openat readlinkat renameat symlinkat unlinkat mknodat), where whether newfstatat fstatat64 futimesat are used depends on the architecture, as well as controlling whether openat64_not_cancel_3 is expected to work in sysdeps/posix/getcwd.c. The assumptions are all OK as of 2.6.32 except for this MicroBlaze case, and it's generally desirable to get rid of as many of the __ASSUME_ATFCTS conditionals as possible, to simplify the code (the fallbacks include potential unbounded dynamic stack allocations). Thus, rather than the simplest approach of undefining __ASSUME_ATFCTS for older kernels on MicroBlaze, this patch takes the approach of using the linux-generic implementation of futimesat for MicroBlaze kernels before 2.6.33 (all such kernels have the utimensat syscall). [BZ #16648] * sysdeps/unix/sysv/linux/microblaze/kernel-features.h [__LINUX_KERNEL_VERSION >= 0x020621] (__ASSUME_FUTIMESAT): Define. * sysdeps/unix/sysv/linux/microblaze/futimesat.c: New file.
Diffstat (limited to 'sysdeps/unix/sysv/linux/mips')
0 files changed, 0 insertions, 0 deletions