summaryrefslogtreecommitdiff
path: root/lib/Support/Unix/Path.inc
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2014-03-11 18:40:24 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2014-03-11 18:40:24 +0000
commit8acff70de1d0860b13a4fe9517c286246ad17528 (patch)
tree456df0609cf47f86ea4d68df12eb27f11d69371d /lib/Support/Unix/Path.inc
parent7e3e9aa8e1eb2f138a6e3a6a9d582c3eb6b08810 (diff)
downloadllvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.gz
llvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.bz2
llvm-8acff70de1d0860b13a4fe9517c286246ad17528.tar.xz
Cleanup the interface for creating soft or hard links.
Before this patch the unix code for creating hardlinks was unused. The code for creating symbolic links was implemented in lib/Support/LockFileManager.cpp and the code for creating hard links in lib/Support/*/Path.inc. The only use we have for these is in LockFileManager.cpp and it can use both soft and hard links. Just have a create_link function that creates one or the other depending on the platform. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203596 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/Unix/Path.inc')
-rw-r--r--lib/Support/Unix/Path.inc6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/Support/Unix/Path.inc b/lib/Support/Unix/Path.inc
index caa30c7533..2b29baca73 100644
--- a/lib/Support/Unix/Path.inc
+++ b/lib/Support/Unix/Path.inc
@@ -272,14 +272,16 @@ error_code create_directory(const Twine &path, bool IgnoreExisting) {
return error_code::success();
}
-error_code create_hard_link(const Twine &to, const Twine &from) {
+// Note that we are using symbolic link because hard links are not supported by
+// all filesystems (SMB doesn't).
+error_code create_link(const Twine &to, const Twine &from) {
// Get arguments.
SmallString<128> from_storage;
SmallString<128> to_storage;
StringRef f = from.toNullTerminatedStringRef(from_storage);
StringRef t = to.toNullTerminatedStringRef(to_storage);
- if (::link(t.begin(), f.begin()) == -1)
+ if (::symlink(t.begin(), f.begin()) == -1)
return error_code(errno, system_category());
return error_code::success();