mirror of
https://github.com/NixOS/nix
synced 2025-07-06 21:41:48 +02:00
Add support for utimensat
as an alternative to lutimes
OpenBSD doesn't support `lutimes`, but does support `utimensat` which subsumes it. In fact, all the BSDs, Linux, and newer macOS all support it. So lets make this our first choice for the implementation. In addition, let's get rid of the `lutimes` `ENOSYS` special case. The Linux manpage says > ENOSYS > > The kernel does not support this call; Linux 2.6.22 or later is > required. which I think is the origin of this check, but that's a very old version of Linux at this point. The code can be simplified a lot of we drop support for it here (as we've done elsewhere, anyways). Co-Authored-By: John Ericson <John.Ericson@Obsidian.Systems>
This commit is contained in:
parent
3db75b0060
commit
d023202811
3 changed files with 43 additions and 38 deletions
|
@ -42,6 +42,8 @@ check_funcs = [
|
|||
# Optionally used to try to close more file descriptors (e.g. before
|
||||
# forking) on Unix.
|
||||
'sysconf',
|
||||
# Optionally used for changing the mtime of files and symlinks.
|
||||
'utimensat',
|
||||
]
|
||||
foreach funcspec : check_funcs
|
||||
define_name = 'HAVE_' + funcspec.underscorify().to_upper()
|
||||
|
@ -49,6 +51,8 @@ foreach funcspec : check_funcs
|
|||
configdata.set(define_name, define_value)
|
||||
endforeach
|
||||
|
||||
configdata.set('HAVE_DECL_AT_SYMLINK_NOFOLLOW', cxx.has_header_symbol('fcntl.h', 'AT_SYMLINK_NOFOLLOW').to_int())
|
||||
|
||||
subdir('build-utils-meson/threads')
|
||||
|
||||
# Check if -latomic is needed
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue