Revert "Use LLVM for all stat-related functionality."

this reverts r297116 because it breaks the unittests and
TestCompDirSymlink. The ModuleCache unit test is trivially fixable, but
the CompDirSymlink failure is a symptom of a deeper problem: llvm's stat
functionality is not a drop-in replacement for lldb's. The former is
based on stat(2) (which does symlink resolution), while the latter is
based on lstat(2) (which does not).

This also reverts subsequent build fixes (r297128, r297120, 297117) and
r297119 (Remove FileSpec dependency on FileSystem) which builds on top
of this.

llvm-svn: 297139
This commit is contained in:
Pavel Labath
2017-03-07 13:19:15 +00:00
parent 3d0af578cc
commit 30e6cbfcfc
38 changed files with 289 additions and 261 deletions

View File

@@ -59,19 +59,15 @@ public:
void Delete();
};
static FileSpec JoinPath(const FileSpec &path1, const char *path2) {
FileSpec JoinPath(const FileSpec &path1, const char *path2) {
FileSpec result_spec(path1);
result_spec.AppendPathComponent(path2);
return result_spec;
}
static Error MakeDirectory(const FileSpec &dir_path) {
llvm::sys::fs::file_status st;
if (status(dir_path.GetPath(), st))
return Error("Could not stat path");
if (exists(st)) {
if (!is_directory(st))
Error MakeDirectory(const FileSpec &dir_path) {
if (dir_path.Exists()) {
if (!dir_path.IsDirectory())
return Error("Invalid existing path");
return Error();