diff options
author | Alan Modra <amodra@gmail.com> | 2015-09-24 13:13:57 +0930 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2015-09-24 22:35:04 +0930 |
commit | 3074964fcfff45aef4584b84550eeef84f902fc4 (patch) | |
tree | 64869957c144cf643bfcee734e9e08a84682e83d /ld/ldmain.c | |
parent | 938d3bf25b2f5bc1a9d955d86070e8bbee127f52 (diff) | |
download | gdb-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.c | 10 |
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 |