1
0
mirror of https://sourceware.org/git/glibc.git synced 2025-08-01 10:06:57 +03:00

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.
This commit is contained in:
H.J. Lu
2015-06-24 03:21:29 -07:00
parent 6f874bd4d4
commit eea3dc5bf2
3 changed files with 17 additions and 2 deletions

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