aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
authorAlan Modra <amodra@gmail.com>2015-09-24 13:13:57 +0930
committerAlan Modra <amodra@gmail.com>2015-09-24 22:35:04 +0930
commit3074964fcfff45aef4584b84550eeef84f902fc4 (patch)
tree64869957c144cf643bfcee734e9e08a84682e83d /ld/ldmain.c
parent938d3bf25b2f5bc1a9d955d86070e8bbee127f52 (diff)
downloadgdb-3074964fcfff45aef4584b84550eeef84f902fc4.zip
gdb-3074964fcfff45aef4584b84550eeef84f902fc4.tar.gz
gdb-3074964fcfff45aef4584b84550eeef84f902fc4.tar.bz2
Relative DT_RPATH/DT_RUNPATH vs. sysroot capable ld.
This fixes two problems. First, the --sysroot option wasn't available with a ld configured without --with-sysroot, a historical accident. This led to people configuring binutils with --with-sysroot=/ in order to enable sysroot support, which exposes a case where ld wrongly prepends the sysroot to a relative path. PR ld/18992 * ldmain.c (main): Always enable --sysroot. * emultempl/elf32.em (gld${EMULATION_NAME}_after_open): Don't prepend sysroot to relative rpath/runpath.
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c10
1 files changed, 1 insertions, 9 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 577928d..96d7fe8 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -222,15 +222,7 @@ main (int argc, char **argv)
/* Set up the sysroot directory. */
ld_sysroot = get_sysroot (argc, argv);
if (*ld_sysroot)
- {
- if (*TARGET_SYSTEM_ROOT == 0)
- {
- einfo ("%P%F: this linker was not configured to use sysroots\n");
- ld_sysroot = "";
- }
- else
- ld_canon_sysroot = lrealpath (ld_sysroot);
- }
+ ld_canon_sysroot = lrealpath (ld_sysroot);
if (ld_canon_sysroot)
ld_canon_sysroot_len = strlen (ld_canon_sysroot);
else