]> sourceware.org Git - glibc.git/commitdiff
Don't issue errors on GDB Python files
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 24 Jun 2015 10:21:29 +0000 (03:21 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Wed, 24 Jun 2015 17:27:39 +0000 (10:27 -0700)
Many packages, including GCC, install Python files for GDB in library
diretory. ldconfig reads them and issue errors since they aren't ELF
files:

ldconfig: /usr/gcc-5.1.1/lib/libstdc++.so.6.0.21-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

ldconfig: /usr/gcc-5.1.1/libx32/libstdc++.so.6.0.21-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

ldconfig: /usr/gcc-5.1.1/lib64/libstdc++.so.6.0.21-gdb.py is not an ELF file - it has the wrong magic bytes at the start.

This patch silences ldconfig on GDB Python files by checking filenames
with -gdb.py suffix.

[BZ #18585]
* elf/readlib.c (is_gdb_python_file): New.
(process_file): Don't issue errors on filenames with -gdb.py
suffix.

ChangeLog
NEWS
elf/readlib.c

index aca044b3ce5261a4660be86fd415b9bc868a1cf5..8cde91e1e69c89f131340907aebcf33e896d07e7 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2015-06-24  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #18585]
+       * elf/readlib.c (is_gdb_python_file): New.
+       (process_file): Don't issue errors on filenames with -gdb.py
+       suffix.
+
 2015-06-24  Joseph Myers  <joseph@codesourcery.com>
 
        * math/auto-libm-test-in: Add more tests of csin and csinh.
diff --git a/NEWS b/NEWS
index 4646dcd3fcf88ab71c05af3310ceb5e6f1633bae..9fb00609ef98f81fb0407f55f4ee69c8f03b8403 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -24,7 +24,7 @@ Version 2.22
   18444, 18468, 18469, 18470, 18479, 18483, 18495, 18496, 18497, 18498,
   18507, 18512, 18513, 18519, 18520, 18522, 18527, 18528, 18529, 18530,
   18532, 18533, 18534, 18536, 18539, 18540, 18542, 18544, 18545, 18546,
-  18547, 18553, 18558, 18569, 18583, 18586, 18593.
+  18547, 18553, 18558, 18569, 18583, 18585, 18586, 18593.
 
 * Cache information can be queried via sysconf() function on s390 e.g. with
   _SC_LEVEL1_ICACHE_SIZE as argument.
index 5c14a42b9d3b30da734db8225e7421baab9e02bb..7fd5b8afbfc9a552c104eb0460d80264a57f41af 100644 (file)
@@ -63,6 +63,13 @@ static struct known_names known_libs[] =
 };
 
 
+/* Check if string corresponds to a GDB Python file.  */
+static bool
+is_gdb_python_file (const char *name)
+{
+  size_t len = strlen (name);
+  return len > 7 && strcmp (name + len - 7, "-gdb.py") == 0;
+}
 
 /* Returns 0 if everything is ok, != 0 in case of error.  */
 int
@@ -157,7 +164,8 @@ process_file (const char *real_file_name, const char *file_name,
         beginning of the file.  */
       size_t len = MIN (statbuf.st_size, 512);
       if (memmem (file_contents, len, "GROUP", 5) == NULL
-         && memmem (file_contents, len, "GNU ld script", 13) == NULL)
+         && memmem (file_contents, len, "GNU ld script", 13) == NULL
+         && !is_gdb_python_file (file_name))
        error (0, 0, _("%s is not an ELF file - it has the wrong magic bytes at the start.\n"),
               file_name);
       ret = 1;
This page took 0.135535 seconds and 5 git commands to generate.