---- binutils-2.17.50.0.3/bfd/opncls.c.orig 2006-07-15 20:23:49.000000000 +0200
-+++ binutils-2.17.50.0.3/bfd/opncls.c 2006-09-02 15:14:01.443277250 +0200
-@@ -1215,6 +1215,10 @@
+--- binutils-2.18.50.0.2/bfd/opncls.c.orig 2007-10-03 17:52:57.000000000 +0200
++++ binutils-2.18.50.0.2/bfd/opncls.c 2007-10-22 22:30:03.233754376 +0200
+@@ -1241,6 +1241,10 @@
return NULL;
}
+ if (separate_debug_file_exists (basename, crc32))
+ return basename;
+
- dir = strdup (abfd->filename);
- if (dir == NULL)
- {
-@@ -1353,9 +1357,6 @@
+ for (dirlen = strlen (abfd->filename); dirlen > 0; dirlen--)
+ if (IS_DIR_SEPARATOR (abfd->filename[dirlen - 1]))
+ break;
+@@ -1345,6 +1349,15 @@
+ return find_separate_debug_file (abfd, dir);
+ }
+
++static char const*
++relaxed_filename (char const* filename)
++{
++ char const* relaxed = strstr (filename, "/usr/lib/debug/");
++ if ( relaxed != NULL )
++ return relaxed;
++ return filename;
++}
++
+ /*
+ FUNCTION
+ bfd_create_gnu_debuglink_section
+@@ -1376,8 +1389,7 @@
return NULL;
}
- /* Strip off any path components in filename. */
- filename = lbasename (filename);
--
++ filename = relaxed_filename (filename);
+
sect = bfd_get_section_by_name (abfd, GNU_DEBUGLINK);
if (sect)
- {
-@@ -1439,9 +1440,10 @@
+@@ -1463,9 +1475,7 @@
crc32 = bfd_calc_gnu_debuglink_crc32 (crc32, buffer, count);
fclose (handle);
- /* Strip off any path components in filename,
- now that we no longer need them. */
- filename = lbasename (filename);
-+ /* PLD: for files installed in rpm's build root strip the install prefix */
-+ char const* relaxed_filename = strstr( filename, "/usr/lib/debug/" );
-+ if ( relaxed_filename != NULL )
-+ filename = relaxed_filename;
++ filename = relaxed_filename (filename);
- debuglink_size = strlen (filename) + 1;
- debuglink_size += 3;
+ filelen = strlen (filename);
+ debuglink_size = filelen + 1;