patches/binutils/2.20/130-ld-sysroot.patch
author Bart vdr Meulen <bartvdrmeulen@gmail.com>
Sun Jul 11 21:37:29 2010 +0200 (2010-07-11)
changeset 2019 235d1aa16e00
parent 1614 3f76cdbceb6e
permissions -rw-r--r--
samples: add Linux -> Mingw32 sample

Sample to build compiler targetting mingw32 target systems

Signed-off-by: Bart vdr. Meulen <bartvdrmeulen@gmail.com>
---
samples/i686-pc-mingw32/crosstool.config | 302 +++++++++++++++++++++++++++++++
samples/i686-pc-mingw32/reported.by | 3
2 files changed, 305 insertions(+)
create mode 100644 samples/i686-pc-mingw32/crosstool.config
create mode 100644 samples/i686-pc-mingw32/reported.by
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
fr@1621
     8
--- binutils/ld/ldfile.c
fr@1621
     9
+++ binutils/ld/ldfile.c
yann@1614
    10
@@ -308,18 +308,24 @@
yann@1614
    11
      directory first.  */
yann@1614
    12
   if (! entry->is_archive)
yann@1614
    13
     {
yann@1614
    14
-      if (entry->sysrooted && IS_ABSOLUTE_PATH (entry->filename))
yann@1614
    15
+      /* For absolute pathnames, try to always open the file in the
yann@1614
    16
+	 sysroot first. If this fails, try to open the file at the
yann@1614
    17
+	 given location. */
yann@1614
    18
+      entry->sysrooted = is_sysrooted_pathname(entry->filename, FALSE);
yann@1614
    19
+      if (IS_ABSOLUTE_PATH (entry->filename) && ld_sysroot && ! entry->sysrooted)
yann@1614
    20
 	{
yann@1614
    21
 	  char *name = concat (ld_sysroot, entry->filename,
yann@1614
    22
 			       (const char *) NULL);
yann@1614
    23
 	  if (ldfile_try_open_bfd (name, entry))
yann@1614
    24
 	    {
yann@1614
    25
 	      entry->filename = name;
yann@1614
    26
+	      entry->sysrooted = TRUE;
yann@1614
    27
 	      return TRUE;
yann@1614
    28
 	    }
yann@1614
    29
 	  free (name);
yann@1614
    30
 	}
yann@1614
    31
-      else if (ldfile_try_open_bfd (entry->filename, entry))
yann@1614
    32
+
yann@1614
    33
+      if (ldfile_try_open_bfd (entry->filename, entry))
yann@1614
    34
 	{
yann@1614
    35
 	  entry->sysrooted = IS_ABSOLUTE_PATH (entry->filename)
yann@1614
    36
 	    && is_sysrooted_pathname (entry->filename, TRUE);