diff options
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r-- | ld/ldmain.c | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c index 4641920..6f3ce6f 100644 --- a/ld/ldmain.c +++ b/ld/ldmain.c @@ -584,21 +584,25 @@ static const char * get_sysroot (int argc, char **argv) { int i; - const char *path; + const char *path = NULL; for (i = 1; i < argc; i++) if (CONST_STRNEQ (argv[i], "--sysroot=")) - return argv[i] + strlen ("--sysroot="); + path = argv[i] + strlen ("--sysroot="); - path = get_relative_sysroot (BINDIR); - if (path) - return path; + if (!path) + path = get_relative_sysroot (BINDIR); - path = get_relative_sysroot (TOOLBINDIR); - if (path) - return path; + if (!path) + path = get_relative_sysroot (TOOLBINDIR); + + if (!path) + path = TARGET_SYSTEM_ROOT; + + if (IS_DIR_SEPARATOR (*path) && path[1] == 0) + path = ""; - return TARGET_SYSTEM_ROOT; + return path; } /* We need to find any explicitly given emulation in order to initialize the |