patches/binutils/2.20/130-ld-sysroot.patch
author Arnaud Lacombe <lacombar@gmail.com>
Tue Aug 03 06:17:51 2010 +0200 (2010-08-03)
changeset 2064 f5ebe8c429dc
parent 1614 3f76cdbceb6e
permissions -rw-r--r--
libc/uClibc: add uClibc 0.9.30.3

This version has been released a couple of month ago, but it never reached
crosstool-ng tree. This may be linked to the fact that the current 0.9.30.2,
once patched, has nothing much different from 0.9.30.3, released.

I'm not including any patch with this upgrade, on purpose.

Signed-off-by: Arnaud Lacombe <lacombar@gmail.com>
     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 --- binutils/ld/ldfile.c
     9 +++ binutils/ld/ldfile.c
    10 @@ -308,18 +308,24 @@
    11       directory first.  */
    12    if (! entry->is_archive)
    13      {
    14 -      if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
    15 +      /* For absolute pathnames, try to always open the file in the
    16 +	 sysroot first. If this fails, try to open the file at the
    17 +	 given location. */
    18 +      entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
    19 +      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
    20  	{
    21  	  char *name = concat (ld_sysroot, entry->filename,
    22  			       (const char *) NULL);
    23  	  if (ldfile_try_open_bfd (name, entry))
    24  	    {
    25  	      entry->filename = name;
    26 +	      entry->sysrooted = TRUE;
    27  	      return TRUE;
    28  	    }
    29  	  free (name);
    30  	}
    31 -      else if (ldfile_try_open_bfd (entry->filename, entry))
    32 +
    33 +      if (ldfile_try_open_bfd (entry->filename, entry))
    34  	{
    35  	  entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
    36  	    && is_sysrooted_pathname (entry->filename, TRUE);