Chromium Code Reviews| Index: base/base_paths_linux.cc |
| diff --git a/base/base_paths_linux.cc b/base/base_paths_linux.cc |
| index 2ee690da881578db9a7259e39330db28f52b54ac..9f940cb986cb4d6145401c1d3c0a74dbf380e2fe 100644 |
| --- a/base/base_paths_linux.cc |
| +++ b/base/base_paths_linux.cc |
| @@ -19,14 +19,14 @@ |
| #if defined(OS_FREEBSD) |
| #include <sys/param.h> |
| #include <sys/sysctl.h> |
| +#elif defined(OS_SOLARIS) |
| +#include <stdlib.h> |
| #endif |
| namespace base { |
| #if defined(OS_LINUX) |
| const char kSelfExe[] = "/proc/self/exe"; |
| -#elif defined(OS_SOLARIS) |
| -const char kSelfExe[] = getexecname(); |
|
Evan Martin
2011/06/24 17:51:18
Thanks for fixing this!
|
| #endif |
| // The name of this file relative to the source root. This is used for checking |
| @@ -58,6 +58,14 @@ bool PathProviderPosix(int key, FilePath* result) { |
| bin_dir[strlen(bin_dir)] = 0; |
| *result = FilePath(bin_dir); |
| return true; |
| +#elif defined(OS_SOLARIS) |
| + char bin_dir[PATH_MAX + 1]; |
| + if (realpath(getexecname(), bin_dir) == NULL) { |
| + NOTREACHED() << "Unable to resolve " << getexecname() << "."; |
| + return false; |
| + } |
| + *result = FilePath(bin_dir); |
| + return true; |
| #endif |
| } |
| case base::DIR_SOURCE_ROOT: { |