From 30628870e583375f8927c04398c7219c6e9f703c Mon Sep 17 00:00:00 2001
From: Romain Naour <romain.naour@gmail.com>
Date: Fri, 25 Dec 2015 11:42:48 +0100
Subject: [PATCH] add sysroot fix from bug #3049

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

Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
[Romain: rebase on top of 2.26]
Signed-off-by: Romain Naour <romain.naour@gmail.com>
---
 ld/ldfile.c | 11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

diff --git a/ld/ldfile.c diff --git b/ld/ldfile.c
--- a/ld/ldfile.c	2017-03-02 03:23:54.000000000 -0500
+++ b/ld/ldfile.c	2017-03-20 09:52:27.687415942 -0400
@@ -336,18 +336,24 @@
      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))

