patches/binutils/2.20.1a/130-ld-sysroot.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Thu Dec 27 12:53:32 2012 +0100 (2012-12-27)
changeset 3153 f6740f9e42de
parent 2088 4f21ba5f8e91
permissions -rw-r--r--
scripts/addToolsVersion: handle elf2flt

The one was missing from the list.

It is very improbable that we ever need it, as elf2flt does no release,
and we always get it from CVS head. But for the sake of consistency, we
just add it.

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