Simplify --sysroot=/

Prepending '/' to absolute paths doesn't gain us much, and results in
the current implementation of --trace emitting silly path-in-sysroot
output, eg.
/lib/ld-linux-x86-64.so.2 (//lib/ld-linux-x86-64.so.2)

	* ldmain.c (get_sysroot): Return "" for "--sysroot=/".
This commit is contained in:
Alan Modra 2018-10-29 18:09:39 +10:30
parent 8d1015a887
commit 55d5520ae3
2 changed files with 17 additions and 9 deletions

View File

@ -1,3 +1,7 @@
2018-10-29 Alan Modra <amodra@gmail.com>
* ldmain.c (get_sysroot): Return "" for "--sysroot=/".
2018-10-29 Alan Modra <amodra@gmail.com>
* Makefile.am (ei386beos.c, ei386go32.c): Correct dependencies.

View File

@ -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);
return TARGET_SYSTEM_ROOT;
if (!path)
path = TARGET_SYSTEM_ROOT;
if (IS_DIR_SEPARATOR (*path) && path[1] == 0)
path = "";
return path;
}
/* We need to find any explicitly given emulation in order to initialize the