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 | 88e5939496319c9169fffee2d24f4b6e928d06a6 (patch) | |
tree | bba70e66bdee11792bde6a3bd31c1811f06ee6c5 /bfd | |
parent | 310fd250b9bdab1eae5303f363577e30b2932a77 (diff) | |
download | gdb-88e5939496319c9169fffee2d24f4b6e928d06a6.zip gdb-88e5939496319c9169fffee2d24f4b6e928d06a6.tar.gz gdb-88e5939496319c9169fffee2d24f4b6e928d06a6.tar.bz2 |
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.
Diffstat (limited to 'bfd')
-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 eb055ea..10255da 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 fc82d57..b0c2c62 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? */ |