| Index: gdb/solib.c
|
| diff --git a/gdb/solib.c b/gdb/solib.c
|
| index f5917856d1509a11d28c8d308822033e1f03c827..90439ba584df76fab8ae9d4bfb53c9f32a1e4aba 100644
|
| --- a/gdb/solib.c
|
| +++ b/gdb/solib.c
|
| @@ -380,8 +380,6 @@ solib_bfd_fopen (char *pathname, int fd)
|
|
|
| if (abfd)
|
| bfd_set_cacheable (abfd, 1);
|
| - else if (fd != -1)
|
| - close (fd);
|
| }
|
|
|
| if (!abfd)
|
| @@ -592,6 +590,8 @@ solib_read_symbols (struct so_list *so, int flags)
|
| {
|
| volatile struct gdb_exception e;
|
|
|
| + flags |= current_inferior ()->symfile_flags;
|
| +
|
| TRY_CATCH (e, RETURN_MASK_ERROR)
|
| {
|
| struct section_addr_info *sap;
|
| @@ -758,6 +758,9 @@ update_solib_list (int from_tty, struct target_ops *target)
|
| unloaded before we remove it from GDB's tables. */
|
| observer_notify_solib_unloaded (gdb);
|
|
|
| + VEC_safe_push (char_ptr, current_program_space->deleted_solibs,
|
| + xstrdup (gdb->so_name));
|
| +
|
| *gdb_link = gdb->next;
|
|
|
| /* Unless the user loaded it explicitly, free SO's objfile. */
|
| @@ -793,6 +796,7 @@ update_solib_list (int from_tty, struct target_ops *target)
|
| volatile struct gdb_exception e;
|
|
|
| i->pspace = current_program_space;
|
| + VEC_safe_push (so_list_ptr, current_program_space->added_solibs, i);
|
|
|
| TRY_CATCH (e, RETURN_MASK_ERROR)
|
| {
|
|
|