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);
|