diff options
Diffstat (limited to 'gcc/gcc-ar.c')
-rw-r--r-- | gcc/gcc-ar.c | 8 |
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) { |