[binutils-gdb] Fix m68k OS ABI sniffer

Andreas Schwab schwab@sourceware.org
Mon Aug 19 17:30:30 GMT 2024


https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=03b09d2e34c3bd04f5e6e450a94b027c33aa6491

commit 03b09d2e34c3bd04f5e6e450a94b027c33aa6491
Author: Andreas Schwab <schwab@linux-m68k.org>
Date:   Wed Aug 14 18:48:56 2024 +0200

    Fix m68k OS ABI sniffer
    
    Do not override the generic OS ABI sniffer.
    
    Fixes: 3eba3a011a8 ("Various m68k fixes for gdb")

Diff:
---
 gdb/m68k-tdep.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/gdb/m68k-tdep.c b/gdb/m68k-tdep.c
index 1b8cc927e0c..375d5e6e54c 100644
--- a/gdb/m68k-tdep.c
+++ b/gdb/m68k-tdep.c
@@ -1350,11 +1350,19 @@ static enum gdb_osabi
 m68k_osabi_sniffer (bfd *abfd)
 {
   unsigned int elfosabi = elf_elfheader (abfd)->e_ident[EI_OSABI];
+  enum gdb_osabi osabi = GDB_OSABI_UNKNOWN;
 
   if (elfosabi == ELFOSABI_NONE)
-    return GDB_OSABI_SVR4;
+    {
+      /* Check note sections.  */
+      for (asection *sect : gdb_bfd_sections (abfd))
+	generic_elf_osabi_sniff_abi_tag_sections (abfd, sect, &osabi);
+
+      if (osabi == GDB_OSABI_UNKNOWN)
+	osabi = GDB_OSABI_SVR4;
+    }
 
-  return GDB_OSABI_UNKNOWN;
+  return osabi;
 }
 
 void _initialize_m68k_tdep ();


More information about the Gdb-cvs mailing list