? objdir ? patch Index: gdb/objfiles.h =================================================================== RCS file: /cvs/src/src/gdb/objfiles.h,v retrieving revision 1.72 diff -c -p -r1.72 objfiles.h *** gdb/objfiles.h 14 Apr 2010 17:26:11 -0000 1.72 --- gdb/objfiles.h 7 Jul 2010 18:35:38 -0000 *************** struct objfile *** 193,198 **** --- 193,200 ---- char *name; + CORE_ADDR addr_low; + /* Some flag bits for this objfile. */ unsigned short flags; Index: gdb/solib.c =================================================================== RCS file: /cvs/src/src/gdb/solib.c,v retrieving revision 1.140 diff -c -p -r1.140 solib.c *** gdb/solib.c 16 May 2010 23:49:58 -0000 1.140 --- gdb/solib.c 7 Jul 2010 18:35:39 -0000 *************** solib_read_symbols (struct so_list *so, *** 634,644 **** TRY_CATCH (e, RETURN_MASK_ERROR) { struct section_addr_info *sap; - /* Have we already loaded this shared object? */ ALL_OBJFILES (so->objfile) { ! if (strcmp (so->objfile->name, so->so_name) == 0) break; } if (so->objfile != NULL) --- 634,644 ---- TRY_CATCH (e, RETURN_MASK_ERROR) { struct section_addr_info *sap; /* Have we already loaded this shared object? */ ALL_OBJFILES (so->objfile) { ! if (strcmp (so->objfile->name, so->so_name) == 0 ! && so->objfile->addr_low == so->addr_low) break; } if (so->objfile != NULL) *************** solib_read_symbols (struct so_list *so, *** 648,653 **** --- 648,654 ---- so->sections_end); so->objfile = symbol_file_add_from_bfd (so->abfd, flags, sap, OBJF_SHARED); + so->objfile->addr_low = so->addr_low; free_section_addr_info (sap); }