From: H.J. Lu Date: Wed, 24 Jun 2015 10:21:29 +0000 (-0700) Subject: Don't issue errors on GDB Python files X-Git-Tag: glibc-2.22~143 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=eea3dc5bf2813b77ee9819d1b9ec893140db1491;p=thirdparty%2Fglibc.git Don't issue errors on GDB Python files 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. --- diff --git a/ChangeLog b/ChangeLog index aca044b3ce5..8cde91e1e69 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2015-06-24 H.J. Lu + + [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 * math/auto-libm-test-in: Add more tests of csin and csinh. diff --git a/NEWS b/NEWS index 4646dcd3fcf..9fb00609ef9 100644 --- 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. diff --git a/elf/readlib.c b/elf/readlib.c index 5c14a42b9d3..7fd5b8afbfc 100644 --- a/elf/readlib.c +++ b/elf/readlib.c @@ -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;