diff options
Diffstat (limited to 'libc/src/__support/File/linux_dir.cpp')
-rw-r--r-- | libc/src/__support/File/linux_dir.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libc/src/__support/File/linux_dir.cpp b/libc/src/__support/File/linux_dir.cpp index 86aaaae907d2..aae565ffb337 100644 --- a/libc/src/__support/File/linux_dir.cpp +++ b/libc/src/__support/File/linux_dir.cpp @@ -34,8 +34,13 @@ ErrorOr<int> platform_opendir(const char *name) { } ErrorOr<size_t> platform_fetch_dirents(int fd, cpp::span<uint8_t> buffer) { - long size = - __llvm_libc::syscall_impl(SYS_getdents, fd, buffer.data(), buffer.size()); +#ifdef SYS_getdents64 + long size = __llvm_libc::syscall_impl(SYS_getdents64, fd, buffer.data(), + buffer.size()); +#else +#error "getdents64 syscalls not available to perform a fetch dirents operation." +#endif + if (size < 0) { return __llvm_libc::Error(static_cast<int>(-size)); } |