ldconfig: Ignore all GDB extension files

ldconfig already ignores files with the -gdb.py suffix, but GDB also
looks for -gdb.gdb and -gdb.scm files. These aren't as widely used, but
libguile at least comes with a -gdb.scm file.

Rename is_gdb_python_file to is_gdb_extension_file, and make it
recognise all three types of GDB extension.

Signed-off-by: Adam Sampson <ats@offog.org>
Reviewed-by: Adhemerval Zanella  <adhemerval.zanella@linaro.org>
This commit is contained in:
Adam Sampson 2024-05-06 18:16:33 +01:00 committed by Andreas K. Hüttel
parent ed2b8d3a86
commit 895294e51d
No known key found for this signature in database
GPG Key ID: DC2B16215ED5412A

View File

@ -44,12 +44,14 @@ struct known_names
int flag; int flag;
}; };
/* Check if string corresponds to a GDB Python file. */ /* Check if string corresponds to a GDB extension file. */
static bool static bool
is_gdb_python_file (const char *name) is_gdb_extension_file (const char *name)
{ {
size_t len = strlen (name); size_t len = strlen (name);
return endswithn (name, len, "-gdb.py"); return (endswithn (name, len, "-gdb.gdb")
|| endswithn (name, len, "-gdb.py")
|| endswithn (name, len, "-gdb.scm"));
} }
/* Returns 0 if everything is ok, != 0 in case of error. */ /* Returns 0 if everything is ok, != 0 in case of error. */
@ -146,7 +148,7 @@ process_file (const char *real_file_name, const char *file_name,
size_t len = MIN (statbuf.st_size, 512); size_t len = MIN (statbuf.st_size, 512);
if (memmem (file_contents, len, "GROUP", 5) == NULL 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)) && !is_gdb_extension_file (file_name))
error (0, 0, _("%s is not an ELF file - it has the wrong magic bytes at the start.\n"), error (0, 0, _("%s is not an ELF file - it has the wrong magic bytes at the start.\n"),
file_name); file_name);
ret = 1; ret = 1;