patches/binutils/2.20.1a/130-ld-sysroot.patch
author "Yann E. MORIN" <yann.morin.1998@free.fr>
Sun May 05 00:01:05 2013 +0200 (2013-05-05)
changeset 3218 3709e61ad85b
parent 2088 4f21ba5f8e91
permissions -rw-r--r--
complibs/cloog: add support for the ISL backend

CLooG 0.18+ will use ISL instead of PPL, so we have to configure
adequately depending of which backend is in use.

The Kconfig entries will decide for us which is selected, so we
can rely on either PPL xor ISL to be selected, not both.

Reported-by: "Plotnikov Dmitry" <leitz@ispras.ru>
[Dmitry did a preliminray patch to add ISL support,
which this patch is inspired from]
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);