From: Nicholas Duffek Date: Sat, 26 May 2001 00:55:11 +0000 (+0000) Subject: * solib.c (update_solib_list): Move target_resize_to_sections() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=b41be06e3b079256b5bbdfbdb98eb0a6eec6a6a7;p=binutils-gdb.git * solib.c (update_solib_list): Move target_resize_to_sections() into solib_map_sections() loop. (info_sharedlibrary_command): Try bfd_arch_bits_per_address() if bfd_get_arch_size() fails. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index e20163a0ca8..ca5baf316d6 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,10 @@ +2001-05-25 Nick Duffek + + * solib.c (update_solib_list): Move target_resize_to_sections() + into solib_map_sections() loop. + (info_sharedlibrary_command): Try bfd_arch_bits_per_address() if + bfd_get_arch_size() fails. + 2001-05-25 Nick Duffek * Makefile.in (osfsolib.c, osfsolib.o): Rename to solib-osf.c and diff --git a/gdb/solib.c b/gdb/solib.c index 370f814e435..8a5a90431b5 100644 --- a/gdb/solib.c +++ b/gdb/solib.c @@ -461,30 +461,20 @@ update_solib_list (int from_tty, struct target_ops *target) catch_errors (solib_map_sections, i, "Error while mapping shared library sections:\n", RETURN_MASK_ALL); - } - - /* If requested, add the shared objects' sections to the the - TARGET's section table. */ - if (target) - { - int new_sections; - /* Figure out how many sections we'll need to add in total. */ - new_sections = 0; - for (i = inferior; i; i = i->next) - new_sections += (i->sections_end - i->sections); - - if (new_sections > 0) + /* If requested, add the shared object's sections to the TARGET's + section table. Do this immediately after mapping the object so + that later nodes in the list can query this object, as is needed + in solib-osf.c. */ + if (target) { - int space = target_resize_to_sections (target, new_sections); - - for (i = inferior; i; i = i->next) + int count = (i->sections_end - i->sections); + if (count > 0) { - int count = (i->sections_end - i->sections); + int space = target_resize_to_sections (target, count); memcpy (target->to_sections + space, i->sections, count * sizeof (i->sections[0])); - space += count; } } } @@ -605,7 +595,10 @@ info_sharedlibrary_command (char *ignore, int from_tty) } arch_size = bfd_get_arch_size (exec_bfd); - /* Default to 32-bit in case of failure (non-elf). */ + if (arch_size == -1) + arch_size = bfd_arch_bits_per_address(exec_bfd); + + /* Default to 32-bit in case of failure. */ if (arch_size == 32 || arch_size == -1) { addr_width = 8 + 4;