Module Name: src
Committed By: christos
Date: Tue Aug 29 20:39:17 UTC 2023
Modified Files:
src/external/gpl3/gdb/dist/gdb: solib.c
Log Message:
When we try to find the compat32 dynamic linker, strip out the arch-specific
string (sparc:v8plus -> sparc).
To generate a diff of this commit:
cvs rdiff -u -r1.11 -r1.12 src/external/gpl3/gdb/dist/gdb/solib.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gdb/dist/gdb/solib.c
diff -u src/external/gpl3/gdb/dist/gdb/solib.c:1.11 src/external/gpl3/gdb/dist/gdb/solib.c:1.12
--- src/external/gpl3/gdb/dist/gdb/solib.c:1.11 Mon Jul 31 13:00:50 2023
+++ src/external/gpl3/gdb/dist/gdb/solib.c Tue Aug 29 16:39:17 2023
@@ -476,18 +476,20 @@ solib_bfd_open (const char *pathname)
b = gdbarch_bfd_arch_info (target_gdbarch ());
if (!b->compatible (b, bfd_get_arch_info (abfd.get ())))
{
- char buf[SO_NAME_MAX_PATH_SIZE];
const char *slash = strrchr(pathname, '/');
if (slash)
{
+ char buf[SO_NAME_MAX_PATH_SIZE], arch[128], *colon;
struct stat st;
- snprintf(buf, sizeof(buf), "%.*s/%s/%s",
- (int)(slash - pathname), pathname, b->printable_name, slash + 1);
+ strlcpy(arch, b->printable_name, sizeof(arch));
+ if ((colon = strchr(arch, ':')) != NULL)
+ *colon = '\0';
+ snprintf(buf, sizeof(buf), "%.*s/%s/%s",
+ (int)(slash - pathname), pathname, arch, slash + 1);
if (stat(buf, &st) == 0)
return solib_bfd_open(buf);
- snprintf(buf, sizeof(buf), "%s-%s",
- pathname, b->printable_name);
+ snprintf(buf, sizeof(buf), "%s-%s", pathname, arch);
if (stat(buf, &st) == 0)
return solib_bfd_open(buf);
}