diff options
author | Ian Lance Taylor <ian@airs.com> | 1998-07-10 20:31:44 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1998-07-10 20:31:44 +0000 |
commit | 81d195ae16efa152da57c5e4065282012a937ff4 (patch) | |
tree | 2b768604c809a96f90b2d3fb0cbec324a15bed73 /bfd | |
parent | 326d0b2545eaafe2757486bb4672cce1986dfdea (diff) | |
download | gdb-81d195ae16efa152da57c5e4065282012a937ff4.zip gdb-81d195ae16efa152da57c5e4065282012a937ff4.tar.gz gdb-81d195ae16efa152da57c5e4065282012a937ff4.tar.bz2 |
* 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>.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 6 | ||||
-rw-r--r-- | bfd/ieee.c | 22 |
2 files changed, 28 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index c6e0834..2392a04 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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 @@ -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; } |