On Jun 22, 2022, Jonathan Wakely <jwak...@redhat.com> wrote: > On Wed, 22 Jun 2022 at 08:02, Alexandre Oliva via Libstdc++ > <libstd...@gcc.gnu.org> wrote: >> >> Hello, Sebastian, >> >> On Jun 22, 2022, Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: >> >> > On 22/06/2022 08:24, Alexandre Oliva via Libstdc++ wrote: >> >> rtems6's rename() implementation errors with EEXIST when the rename-to >> >> filename exists, even when renaming a file to itself or when renaming >> >> a nonexisting file. Adjust expectations. >> >> >> >> Regstrapped on x86_64-linux-gnu, also tested with a cross to >> >> aarch64-rtems6. Ok to install? >> >> >> >> PS:https://devel.rtems.org/ticket/2169 doesn't seem to suggest plans to >> >> change behavior so as to comply with POSIX. >> >> > I would not adjust the test case to cope with systems which are not in >> > line with POSIX. >> >> My understanding is that the libstdc++ testsuite is not meant to test >> for POSIX conformance, but for conformance with the C++ language >> standards. >> >> C++ inherits rename from C, and C says the behavior is implementation >> defined if the new name already exists.
> std::filesystem::rename is explicitly specified in terms of POSIX > rename, not C rename. Oh, sorry, I stand corrected. I meant ::rename only. My mind seems to still resist the notion that <filesystem> is standard C++, rather than an experimental extension proposal :-) Anyway, I did not realize it deferred to POSIX semantics, even when that's stricter than C standard. Interesting... > Instead, the implementation of std::filesystem::rename should have a > special-case for rtems (and maybe other targets) that implements the > POSIX rename semantics if calling ::rename isn't good enough. Given what I've just learned, I agree. Patch withdrawn. I suppose the other patch, on subdir renaming, must share the same fate. /me longs for XFAILs for libstdc++ subtests ;-) -- Alexandre Oliva, happy hacker https://FSFLA.org/blogs/lxo/ Free Software Activist GNU Toolchain Engineer Disinformation flourishes because many people care deeply about injustice but very few check the facts. Ask me about <https://stallmansupport.org>