[libcxx-commits] [PATCH] D152168: [libc++] Roll up fstream support into filesystem support
Mikhail Maltsev via Phabricator via libcxx-commits
libcxx-commits at lists.llvm.org
Thu Jun 22 09:49:56 PDT 2023
miyuki added a comment.
> In other words, that's a system where LIBCXX_ENABLE_FILESYSTEM is true, but where parts of the filesystem-requiring functionality in libc++ can't be implemented due to incomplete platform support.
Yes, that is correct.
> Do you carry downstream patches?
At the moment we basically have two kinds of toolchains: one open source toolchain based on picolibc C library (which is in turn based on newlib), it does not need any downstream patches in the libc++ part (just a custom lit configuration), but the C++ support and testing is incomplete; we are currently actively improving it. We also have two proprietary toolchains based on our own C library which do have some downstream changes (but we want to keep them to a minimum). Both kinds rely on the same semihosting API/ABI to implement file system operations in the C library.
> How did you find out about this change?
We have CI set up for the proprietary toolchains in which some fstream tests are xfailed (via a separate mechanism, rather than lit "// XFAIL" to reduce downstream changes) because of some missing functionality in the C library. Those started passing unexpectedly because they are now marked as unsupported. We also monitor the stream of libc++ patches (I am subscribed to the libc++ group in Phabricator).
> How much of <filesystem> can't be implemented on your platforms?
In the Arm semihosting API, directory operations (such as checking whether a directory exists, creating a directory, and enumerating files in a directory) are not available. Querying and setting permissions, file creation/modification time, space_info, and working with hardlinks and symlinks is also not supported. Basically, the following operations are supported: opening a file by name, seeking, reading, writing, querying the length of an open file, renaming, and removing a file by name.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D152168/new/
https://reviews.llvm.org/D152168
More information about the libcxx-commits
mailing list