+ if (stype == '2' || stype == '6')
+ new_symbol->symbol.section = bfd_abs_section_ptr;
+ else if (stype == '3' || stype == '7')
+ {
+ if ((section->flags & SEC_DATA) == 0)
+ section->flags |= SEC_CODE;
+ else
+ {
+ if (alt_section == NULL)
+ alt_section
+ = bfd_get_next_section_by_name (NULL, section);
+ if (alt_section == NULL)
+ alt_section = bfd_make_section_anyway_with_flags
+ (abfd, section->name,
+ (section->flags & ~SEC_DATA) | SEC_CODE);
+ if (alt_section == NULL)
+ return FALSE;
+ new_symbol->symbol.section = alt_section;
+ }
+ }
+ else if (stype == '4' || stype == '8')
+ {
+ if ((section->flags & SEC_CODE) == 0)
+ section->flags |= SEC_DATA;
+ else
+ {
+ if (alt_section == NULL)
+ alt_section
+ = bfd_get_next_section_by_name (NULL, section);
+ if (alt_section == NULL)
+ alt_section = bfd_make_section_anyway_with_flags
+ (abfd, section->name,
+ (section->flags & ~SEC_CODE) | SEC_DATA);
+ if (alt_section == NULL)
+ return FALSE;
+ new_symbol->symbol.section = alt_section;
+ }
+ }
+ if (!getvalue (&src, &val, src_end))