Fix GetMainExecutable. Patch by Sam Bishop.
authorSeo Sanghyeon <sanxiyn@gmail.com>
Fri, 27 Jun 2008 22:55:30 +0000 (22:55 +0000)
committerSeo Sanghyeon <sanxiyn@gmail.com>
Fri, 27 Jun 2008 22:55:30 +0000 (22:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52847 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Unix/Path.inc

index 20d09c0f7ffbbc907a50cab66e34061c15d54c34..1de594b86647c4f840c06e71b528bf9b987e5617 100644 (file)
@@ -263,11 +263,9 @@ Path::GetCurrentDirectory() {
 /// GetMainExecutable - Return the path to the main executable, given the
 /// value of argv[0] from program startup.
 Path Path::GetMainExecutable(const char *argv0, void *MainAddr) {
-#if defined(__CYGWIN__)
-  char exe_link[64];
-  snprintf(exe_link, sizeof(exe_link), "/proc/%d/exe", getpid());
+#if defined(__linux__) || defined(__CYGWIN__)
   char exe_path[MAXPATHLEN];
-  ssize_t len = readlink(exe_link, exe_path, sizeof(exe_path));
+  ssize_t len = readlink("/proc/self/exe", exe_path, sizeof(exe_path));
   if (len > 0 && len < MAXPATHLEN - 1) {
     exe_path[len] = '\0';
     return Path(std::string(exe_path));