summaryrefslogtreecommitdiff
path: root/gcc/gcc-ar.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/gcc-ar.c')
-rw-r--r--gcc/gcc-ar.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/gcc/gcc-ar.c b/gcc/gcc-ar.c
index 45ba3617ff3..a02dccb8000 100644
--- a/gcc/gcc-ar.c
+++ b/gcc/gcc-ar.c
@@ -194,6 +194,14 @@ main (int ac, char **av)
#ifdef CROSS_DIRECTORY_STRUCTURE
real_exe_name = concat (target_machine, "-", PERSONALITY, NULL);
#endif
+ /* Do not search original location in the same folder. */
+ char *exe_folder = lrealpath (av[0]);
+ exe_folder[strlen (exe_folder) - strlen (lbasename (exe_folder))] = '\0';
+ char *location = concat (exe_folder, PERSONALITY, NULL);
+
+ if (access (location, X_OK) == 0)
+ remove_prefix (exe_folder, &path);
+
exe_name = find_a_file (&path, real_exe_name, X_OK);
if (!exe_name)
{