change minsyms not to be relocated at read-time
This removes the runtime offsets from minsyms. Instead, these offsets will now be applied whenever the minsym's address is computed. This patch redefines MSYMBOL_VALUE_ADDRESS to actually use the offsets from the given objfile. Then, it updates all the symbol readers, changing them so that they do not add in the section offset when creating the symbol. This change also lets us remove relocation of minsyms from objfile_relocate1 and also msymbols_sort. 2014-02-26 Tom Tromey <tromey@redhat.com> * minsyms.c (msymbols_sort): Remove. * minsyms.h (msymbols_sort): Remove. * objfiles.c (objfile_relocate1): Don't relocate minsyms. * symtab.h (MSYMBOL_VALUE_ADDRESS): Use objfile offsets. * elfread.c (elf_symtab_read): Don't add section offsets. * xcoffread.c (record_minimal_symbol): Don't add section offset to minimal symbol address. * somread.c (text_offset, data_offset): Remove. (som_symtab_read): Don't add section offsets to minimal symbol addresses. * coff-pe-read.c (add_pe_forwarded_sym, read_pe_exported_syms): Don't add section offsets to minimal symbols. * coffread.c (coff_symtab_read): Don't add section offsets to minimal symbol addresses. * machoread.c (macho_symtab_add_minsym): Don't add section offset to minimal symbol addresses. * mipsread.c (read_alphacoff_dynamic_symtab): Don't add section offset to minimal symbol addresses. * mdebugread.c (parse_partial_symbols): Don't add section offset to minimal symbol addresses. * dbxread.c (read_dbx_dynamic_symtab): Don't add section offset to minimal symbol addresses.
This commit is contained in:
parent
77e371c079
commit
2273f0ac95
14 changed files with 67 additions and 139 deletions
|
@ -393,12 +393,11 @@ struct minimal_symbol
|
|||
#define MSYMBOL_VALUE(symbol) (symbol)->mginfo.value.ivalue
|
||||
/* The unrelocated address of the minimal symbol. */
|
||||
#define MSYMBOL_VALUE_RAW_ADDRESS(symbol) ((symbol)->mginfo.value.address + 0)
|
||||
/* This weird definition lets us syntax-check without affecting the
|
||||
results. It is a temporary measure until a later patch. */
|
||||
/* The relocated address of the minimal symbol, using the section
|
||||
offsets from OBJFILE. */
|
||||
#define MSYMBOL_VALUE_ADDRESS(objfile, symbol) \
|
||||
((symbol)->mginfo.value.address \
|
||||
+ (0 \
|
||||
* ANOFFSET ((objfile)->section_offsets, ((symbol)->mginfo.section))))
|
||||
+ ANOFFSET ((objfile)->section_offsets, ((symbol)->mginfo.section)))
|
||||
/* For a bound minsym, we can easily compute the address directly. */
|
||||
#define BMSYMBOL_VALUE_ADDRESS(symbol) \
|
||||
MSYMBOL_VALUE_ADDRESS ((symbol).objfile, (symbol).minsym)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue