diff options
author | Tom Tromey <tom@tromey.com> | 2020-09-19 11:54:49 -0600 |
---|---|---|
committer | Tom Tromey <tom@tromey.com> | 2020-09-19 11:54:52 -0600 |
commit | b35c1d1cf457db034186f321517eee69ef8457a5 (patch) | |
tree | 05dcbbd0e7f32f986369aad09b59bb770189f124 /gdb | |
parent | 5bb6e9dd7090cacb02bbe9f20d8b101a59a3bf99 (diff) | |
download | gdb-b35c1d1cf457db034186f321517eee69ef8457a5.zip gdb-b35c1d1cf457db034186f321517eee69ef8457a5.tar.gz gdb-b35c1d1cf457db034186f321517eee69ef8457a5.tar.bz2 |
Use gdb_bfd_sections in ELF osabi tag sniffing
This changes some ELF osabi tag-sniffing functions to avoid
bfd_map_over_sections, in favor of iteration. I could only readily
test the generic one.
gdb/ChangeLog
2020-09-19 Tom Tromey <tom@tromey.com>
* osabi.h (generic_elf_osabi_sniff_abi_tag_sections): Update.
* osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Change
parameters.
(generic_elf_osabi_sniffer): Use foreach.
* mips-sde-tdep.c (mips_sde_elf_osabi_sniffer): Use foreach.
* arm-tdep.c (arm_elf_osabi_sniffer): Use foreach.
Diffstat (limited to 'gdb')
-rw-r--r-- | gdb/ChangeLog | 9 | ||||
-rw-r--r-- | gdb/arm-tdep.c | 7 | ||||
-rw-r--r-- | gdb/mips-sde-tdep.c | 5 | ||||
-rw-r--r-- | gdb/osabi.c | 10 | ||||
-rw-r--r-- | gdb/osabi.h | 6 |
5 files changed, 23 insertions, 14 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index dab34bf..1fb3c88 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,5 +1,14 @@ 2020-09-19 Tom Tromey <tom@tromey.com> + * osabi.h (generic_elf_osabi_sniff_abi_tag_sections): Update. + * osabi.c (generic_elf_osabi_sniff_abi_tag_sections): Change + parameters. + (generic_elf_osabi_sniffer): Use foreach. + * mips-sde-tdep.c (mips_sde_elf_osabi_sniffer): Use foreach. + * arm-tdep.c (arm_elf_osabi_sniffer): Use foreach. + +2020-09-19 Tom Tromey <tom@tromey.com> + * dwarf2/read.c (locate_dwz_sections): Change parameters. (dwarf2_get_dwz_file): Use foreach. (dwarf2_locate_dwo_sections): Change parameters. diff --git a/gdb/arm-tdep.c b/gdb/arm-tdep.c index 23da42f..91ab441 100644 --- a/gdb/arm-tdep.c +++ b/gdb/arm-tdep.c @@ -8863,9 +8863,10 @@ arm_elf_osabi_sniffer (bfd *abfd) if (elfosabi == ELFOSABI_ARM) /* GNU tools use this value. Check note sections in this case, as well. */ - bfd_map_over_sections (abfd, - generic_elf_osabi_sniff_abi_tag_sections, - &osabi); + { + for (asection *sect : gdb_bfd_sections (abfd)) + generic_elf_osabi_sniff_abi_tag_sections (abfd, sect, &osabi); + } /* Anything else will be handled by the generic ELF sniffer. */ return osabi; diff --git a/gdb/mips-sde-tdep.c b/gdb/mips-sde-tdep.c index 685c3c7..1d282c2 100644 --- a/gdb/mips-sde-tdep.c +++ b/gdb/mips-sde-tdep.c @@ -226,9 +226,8 @@ mips_sde_elf_osabi_sniffer (bfd *abfd) /* If the generic sniffer gets a hit, return and let other sniffers get a crack at it. */ - bfd_map_over_sections (abfd, - generic_elf_osabi_sniff_abi_tag_sections, - &osabi); + for (asection *sect : gdb_bfd_sections (abfd)) + generic_elf_osabi_sniff_abi_tag_sections (abfd, sect, &osabi); if (osabi != GDB_OSABI_UNKNOWN) return GDB_OSABI_UNKNOWN; diff --git a/gdb/osabi.c b/gdb/osabi.c index 627b9d9..e8a813b 100644 --- a/gdb/osabi.c +++ b/gdb/osabi.c @@ -23,6 +23,7 @@ #include "arch-utils.h" #include "gdbcmd.h" #include "command.h" +#include "gdb_bfd.h" #include "elf-bfd.h" @@ -439,9 +440,9 @@ check_note (bfd *abfd, asection *sect, char *note, unsigned int *sectsize, /* Generic sniffer for ELF flavoured files. */ void -generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, void *obj) +generic_elf_osabi_sniff_abi_tag_sections (bfd *abfd, asection *sect, + enum gdb_osabi *osabi) { - enum gdb_osabi *osabi = (enum gdb_osabi *) obj; const char *name; unsigned int sectsize; char *note; @@ -561,9 +562,8 @@ generic_elf_osabi_sniffer (bfd *abfd) /* And likewise ELFOSABI_HPUX. For some reason the default value for the EI_OSABI field is ELFOSABI_HPUX for all PA-RISC targets (with the exception of GNU/Linux). */ - bfd_map_over_sections (abfd, - generic_elf_osabi_sniff_abi_tag_sections, - &osabi); + for (asection *sect : gdb_bfd_sections (abfd)) + generic_elf_osabi_sniff_abi_tag_sections (abfd, sect, &osabi); break; case ELFOSABI_FREEBSD: diff --git a/gdb/osabi.h b/gdb/osabi.h index a7e6a10..9b7ab18 100644 --- a/gdb/osabi.h +++ b/gdb/osabi.h @@ -86,8 +86,8 @@ const char *gdbarch_osabi_name (enum gdb_osabi); const char *osabi_triplet_regexp (enum gdb_osabi osabi); /* Helper routine for ELF file sniffers. This looks at ABI tag note - sections to determine the OS ABI from the note. It should be called - via bfd_map_over_sections. */ -void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *, void *); + sections to determine the OS ABI from the note. */ +void generic_elf_osabi_sniff_abi_tag_sections (bfd *, asection *, + enum gdb_osabi *); #endif /* OSABI_H */ |