crosstool-ng/packages/binutils/2.36.1/0007-sysroot.patch
Hans-Christian Noren Egtvedt edaec2817e binutils: add version 2.36.1
Forward ported patches from binutils 2.35.1, refreshed to match current
sources.

Patch 0008-poison-system-directories.patch did not apply clean and had
minor adjustments to fit new binutils 2.36.1 release.

Dropped the following patches as they have been applied upstream:
- 0009-Import-patch-from-mainline-to-fix-decoding-DWARF-inf.patch
- 0010-arm-Fix-the-wrong-error-message-string-for-mve-vldr-.patch

Signed-off-by: Hans-Christian Noren Egtvedt <hegtvedt@cisco.com>
2021-02-12 11:54:11 +01:00

42 lines
1.3 KiB
Diff

Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
Always try to prepend the sysroot prefix to absolute filenames first.
http://bugs.gentoo.org/275666
http://sourceware.org/bugzilla/show_bug.cgi?id=10340
---
ld/ldfile.c | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
--- a/ld/ldfile.c
+++ b/ld/ldfile.c
@@ -340,18 +340,25 @@ ldfile_open_file_search (const char *arc
directory first. */
if (!entry->flags.maybe_archive)
{
- if (entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename))
+ /* For absolute pathnames, try to always open the file in the
+ sysroot first. If this fails, try to open the file at the
+ given location. */
+ entry->flags.sysrooted = is_sysrooted_pathname (entry->filename);
+ if (!entry->flags.sysrooted && IS_ABSOLUTE_PATH (entry->filename)
+ && ld_sysroot)
{
char *name = concat (ld_sysroot, entry->filename,
(const char *) NULL);
if (ldfile_try_open_bfd (name, entry))
{
entry->filename = name;
+ entry->flags.sysrooted = TRUE;
return TRUE;
}
free (name);
}
- else if (ldfile_try_open_bfd (entry->filename, entry))
+
+ if (ldfile_try_open_bfd (entry->filename, entry))
return TRUE;
if (IS_ABSOLUTE_PATH (entry->filename))