summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/emacs.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/emacs.c b/src/emacs.c
index 792f690797d..9157cd84a99 100644
--- a/src/emacs.c
+++ b/src/emacs.c
@@ -746,10 +746,18 @@ load_pdump_find_executable (char const *argv0, ptrdiff_t *candidate_size)
char *candidate = NULL;
/* If the executable name contains a slash, we have some kind of
- path already, so just copy it. */
+ path already, so just resolve symlinks and return the result. */
eassert (argv0);
if (strchr (argv0, DIRECTORY_SEP))
{
+ char *real_name = realpath (argv0, NULL);
+
+ if (real_name)
+ {
+ *candidate_size = strlen (real_name) + 1;
+ return real_name;
+ }
+
char *val = xstrdup (argv0);
*candidate_size = strlen (val) + 1;
return val;