* ieee.c (ieee_slurp_external_symbols): Select an appropriate
section for an absolute symbol in a fully linked file. Based on patch from Christian Holland <CHolland@de.lucent.com>.
This commit is contained in:
parent
326d0b2545
commit
81d195ae16
2 changed files with 28 additions and 0 deletions
|
@ -1,3 +1,9 @@
|
|||
Fri Jul 10 16:31:06 1998 Ian Lance Taylor <ian@cygnus.com>
|
||||
|
||||
* ieee.c (ieee_slurp_external_symbols): Select an appropriate
|
||||
section for an absolute symbol in a fully linked file. Based on
|
||||
patch from Christian Holland <CHolland@de.lucent.com>.
|
||||
|
||||
Wed Jul 8 11:29:56 1998 Manfred Hollstein <manfred@s-direktnet.de>
|
||||
|
||||
* coff-m88k.c (m88k_special_reloc): Don't lose the information
|
||||
|
|
22
bfd/ieee.c
22
bfd/ieee.c
|
@ -825,6 +825,28 @@ ieee_slurp_external_symbols (abfd)
|
|||
&extra,
|
||||
&symbol->symbol.section);
|
||||
|
||||
/* Fully linked IEEE-695 files tend to give every symbol
|
||||
an absolute value. Try to convert that back into a
|
||||
section relative value. FIXME: This won't always to
|
||||
the right thing. */
|
||||
if (bfd_is_abs_section (symbol->symbol.section)
|
||||
&& (abfd->flags & HAS_RELOC) == 0)
|
||||
{
|
||||
bfd_vma val;
|
||||
asection *s;
|
||||
|
||||
val = symbol->symbol.value;
|
||||
for (s = abfd->sections; s != NULL; s = s->next)
|
||||
{
|
||||
if (val >= s->vma && val < s->vma + s->_raw_size)
|
||||
{
|
||||
symbol->symbol.section = s;
|
||||
symbol->symbol.value -= s->vma;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
symbol->symbol.flags = BSF_GLOBAL | BSF_EXPORT;
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue