diff options
author | Dave Korn <dave.korn@artimi.com> | 2011-05-07 14:26:56 +0000 |
---|---|---|
committer | Dave Korn <dave.korn@artimi.com> | 2011-05-07 14:26:56 +0000 |
commit | 8c1b430909e48c66c596fe400b3f3d09559027f2 (patch) | |
tree | 75c2a44d07446fd720e93995daa11f9ff3c4a7fc | |
parent | 0df7bac224004772a380db3e3b29933c16411940 (diff) | |
download | binutils-redhat-8c1b430909e48c66c596fe400b3f3d09559027f2.tar.gz |
PR ld/12365
* coffgen.c (coff_write_symbol): Assume input section is its own
output section if output_section member not set.
(coff_write_alien_symbol): Likewise.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/coffgen.c | 13 |
2 files changed, 16 insertions, 4 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index eb055ea282..10255dab6c 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,10 @@ +2011-05-07 Dave Korn <dave.korn.cygwin@gmail.com> + + PR ld/12365 + * coffgen.c (coff_write_symbol): Assume input section is its own + output section if output_section member not set. + (coff_write_alien_symbol): Likewise. + 2011-05-07 H.J. Lu <hongjiu.lu@intel.com> PR ld/12730 diff --git a/bfd/coffgen.c b/bfd/coffgen.c index fc82d57dd7..b0c2c62f18 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -915,6 +915,9 @@ coff_write_symbol (bfd *abfd, unsigned int numaux = native->u.syment.n_numaux; int type = native->u.syment.n_type; int n_sclass = (int) native->u.syment.n_sclass; + asection *output_section = symbol->section->output_section + ? symbol->section->output_section + : symbol->section; void * buf; bfd_size_type symesz; @@ -933,7 +936,7 @@ coff_write_symbol (bfd *abfd, else native->u.syment.n_scnum = - symbol->section->output_section->target_index; + output_section->target_index; coff_fix_symbol_name (abfd, symbol, native, string_size_p, debug_string_section_p, debug_string_size_p); @@ -990,6 +993,9 @@ coff_write_alien_symbol (bfd *abfd, { combined_entry_type *native; combined_entry_type dummy; + asection *output_section = symbol->section->output_section + ? symbol->section->output_section + : symbol->section; native = &dummy; native->u.syment.n_type = T_NULL; @@ -1015,12 +1021,11 @@ coff_write_alien_symbol (bfd *abfd, } else { - native->u.syment.n_scnum = - symbol->section->output_section->target_index; + native->u.syment.n_scnum = output_section->target_index; native->u.syment.n_value = (symbol->value + symbol->section->output_offset); if (! obj_pe (abfd)) - native->u.syment.n_value += symbol->section->output_section->vma; + native->u.syment.n_value += output_section->vma; /* Copy the any flags from the file header into the symbol. FIXME: Why? */ |