Преглед на файлове

Windows: Revert "Prefer junctions for directory symlinks"

Revert commit 5101d586c4 (Windows: Prefer junctions for directory
symlinks, 2022-02-22, v3.24.0-rc1~575^2).  Junctions do not support
`../` and other non-canonical paths.  Revert their use pending further
investigation.

Fixes: #23781
Issue: #23257
Brad King преди 3 години
родител
ревизия
a4f1c0fac8
променени са 1 файла, в които са добавени 2 реда и са изтрити 12 реда
  1. 2 12
      Source/cmSystemTools.cxx

+ 2 - 12
Source/cmSystemTools.cxx

@@ -3358,22 +3358,12 @@ cmsys::Status cmSystemTools::CreateSymlink(std::string const& origName,
   uv_fs_t req;
   int flags = 0;
 #if defined(_WIN32)
-  bool const isDir = cmsys::SystemTools::FileIsDirectory(origName);
-  if (isDir) {
-    flags |= UV_FS_SYMLINK_JUNCTION;
+  if (cmsys::SystemTools::FileIsDirectory(origName)) {
+    flags |= UV_FS_SYMLINK_DIR;
   }
 #endif
   int err = uv_fs_symlink(nullptr, &req, origName.c_str(), newName.c_str(),
                           flags, nullptr);
-#if defined(_WIN32)
-  if (err && uv_fs_get_system_error(&req) == ERROR_NOT_SUPPORTED && isDir) {
-    // Try fallback to symlink for network (requires additional permissions).
-    flags ^= UV_FS_SYMLINK_JUNCTION | UV_FS_SYMLINK_DIR;
-    err = uv_fs_symlink(nullptr, &req, origName.c_str(), newName.c_str(),
-                        flags, nullptr);
-  }
-#endif
-
   cmsys::Status status;
   if (err) {
 #if defined(_WIN32)