1999-09-11 Donn Terry <donn@interix.com>
* coffcode.h (coff_slurp_symbol_table): If PE, set BSF_DEBUGGING for C_FCN/C_EFCN symbols, and set BSF_DEBUGGING_RELOC for such symbols named .bf.
This commit is contained in:
parent
eeaf533e61
commit
d510f9a69b
|
@ -12,6 +12,9 @@
|
||||||
function symbols.
|
function symbols.
|
||||||
|
|
||||||
* syms.c (BSF_DEBUGGING_RELOC): Define.
|
* syms.c (BSF_DEBUGGING_RELOC): Define.
|
||||||
|
* coffcode.h (coff_slurp_symbol_table): If PE, set BSF_DEBUGGING
|
||||||
|
for C_FCN/C_EFCN symbols, and set BSF_DEBUGGING_RELOC for such
|
||||||
|
symbols named .bf.
|
||||||
* coffgen.c (fixup_symbol_value): Relocate a symbol which has
|
* coffgen.c (fixup_symbol_value): Relocate a symbol which has
|
||||||
BSF_DEBUGGING_RELOC set.
|
BSF_DEBUGGING_RELOC set.
|
||||||
* bfd-in2.h: Rebuild.
|
* bfd-in2.h: Rebuild.
|
||||||
|
|
|
@ -4139,16 +4139,24 @@ coff_slurp_symbol_table (abfd)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case C_BLOCK: /* ".bb" or ".eb" */
|
case C_BLOCK: /* ".bb" or ".eb" */
|
||||||
case C_FCN: /* ".bf" or ".ef" */
|
case C_FCN: /* ".bf" or ".ef" (or PE ".lf") */
|
||||||
case C_EFCN: /* physical end of function */
|
case C_EFCN: /* physical end of function */
|
||||||
dst->symbol.flags = BSF_LOCAL;
|
|
||||||
#if defined COFF_WITH_PE
|
#if defined COFF_WITH_PE
|
||||||
/* PE sets the symbol to a value relative to the start
|
/* PE sets the symbol to a value relative to the start
|
||||||
of the section. */
|
of the section. */
|
||||||
dst->symbol.value = src->u.syment.n_value;
|
dst->symbol.value = src->u.syment.n_value;
|
||||||
|
if (strcmp (dst->symbol.name, ".bf") != 0)
|
||||||
|
{
|
||||||
|
/* PE uses funny values for .ef and .lf; don't
|
||||||
|
relocate them. */
|
||||||
|
dst->symbol.flags = BSF_DEBUGGING;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
dst->symbol.flags = BSF_DEBUGGING | BSF_DEBUGGING_RELOC;
|
||||||
#else
|
#else
|
||||||
/* Base the value as an index from the base of the
|
/* Base the value as an index from the base of the
|
||||||
section. */
|
section. */
|
||||||
|
dst->symbol.flags = BSF_LOCAL;
|
||||||
dst->symbol.value = (src->u.syment.n_value
|
dst->symbol.value = (src->u.syment.n_value
|
||||||
- dst->symbol.section->vma);
|
- dst->symbol.section->vma);
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue