patches/binutils/2.20.1a/130-ld-sysroot.patch
author "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
Sun Sep 11 18:18:53 2011 +0200 (2011-09-11)
changeset 2664 346263a07115
parent 2088 patches/binutils/2.20.1/130-ld-sysroot.patch@4f21ba5f8e91
permissions -rw-r--r--
binutils/binutils: fixup version strings

Recently, all binutils versions have been renamed after a GPL compliance
issue was found and fixed in binutils;
http://sourceware.org/ml/binutils/2011-08/msg00198.html

Although legacy symlinks have been put in place, we should now use
the new, real version strings.

Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
yann@1614
     1
Signed-off-by: Sven Rebhan <odinshorse@googlemail.com>
yann@1614
     2
yann@1614
     3
Always try to prepend the sysroot prefix to absolute filenames first.
yann@1614
     4
yann@1614
     5
http://bugs.gentoo.org/275666
yann@1614
     6
http://sourceware.org/bugzilla/show_bug.cgi?id=10340
yann@1614
     7
yann@2088
     8
diff -durN binutils-2.20.1.orig/ld/ldfile.c binutils-2.20.1/ld/ldfile.c
yann@2088
     9
--- binutils-2.20.1.orig/ld/ldfile.c	2009-08-30 00:11:01.000000000 +0200
yann@2088
    10
+++ binutils-2.20.1/ld/ldfile.c	2010-08-17 19:32:08.000000000 +0200
yann@1614
    11
@@ -308,18 +308,24 @@
yann@1614
    12
      directory first.  */
yann@1614
    13
   if (! entry->is_archive)
yann@1614
    14
     {
yann@1614
    15
-      if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
yann@1614
    16
+      /* For absolute pathnames, try to always open the file in the
yann@1614
    17
+	 sysroot first. If this fails, try to open the file at the
yann@1614
    18
+	 given location. */
yann@1614
    19
+      entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
yann@1614
    20
+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
yann@1614
    21
 	{
yann@1614
    22
 	  char *name = concat (ld_sysroot, entry->filename,
yann@1614
    23
 			       (const char *) NULL);
yann@1614
    24
 	  if (ldfile_try_open_bfd (name, entry))
yann@1614
    25
 	    {
yann@1614
    26
 	      entry->filename = name;
yann@1614
    27
+	      entry->sysrooted = TRUE;
yann@1614
    28
 	      return TRUE;
yann@1614
    29
 	    }
yann@1614
    30
 	  free (name);
yann@1614
    31
 	}
yann@1614
    32
-      else if (ldfile_try_open_bfd (entry->filename, entry))
yann@1614
    33
+
yann@1614
    34
+      if (ldfile_try_open_bfd (entry->filename, entry))
yann@1614
    35
 	{
yann@1614
    36
 	  entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
yann@1614
    37
 	    && is_sysrooted_pathname (entry->filename, TRUE);