[PATCH] D149173: [llvm][vfs] Avoid silent fallback to process-wide working directory

Rainer Orth via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 3 06:51:50 PDT 2023


ro added a comment.

The new test `FAIL`s on Solaris like so:

  FAIL: LLVM-Unit :: Support/./SupportTests/12/42 (70024 of 75206)
  [...]
  /var/llvm/dist-amd64-release-stage2-A-flang/tools/clang/stage2-bins/unittests/Support/./SupportTests --gtest_filter=VirtualFileSystemTest.PhysicalFileSystemWorkingDirFailure
  --
  /vol/llvm/src/llvm-project/dist/llvm/unittests/Support/VirtualFileSystemTest.cpp:546: Failure
  Expected equality of these values:
    FS1->getCurrentWorkingDirectory().getError()
      Which is: system:0
    errc::no_such_file_or_directory
      Which is: 4-byte object <02-00 00-00>

Running it under `truss` (the Solaris equivalent of `strace`), one sees

  24717:  unlinkat(AT_FDCWD, "/var/tmp/d1-67ee3b", AT_REMOVEDIR) Err#22 EINVAL

As documented in `rmdir(2)`, this is expected:

  EINVAL          The  directory  to be removed is the current directory,
                  or the final component of path is ".".

This is left unspecified in XPG7; however in case there is an error, it's expected to be `EBUSY`.  I suspect Solaris kept `EINVAL` for backwards compatibility.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D149173/new/

https://reviews.llvm.org/D149173



More information about the llvm-commits mailing list