+2010-05-21 Tristan Gingold <gingold@adacore.com>
+
+ * vms-alpha.c (_bfd_vms_slurp_eisd): Set SEC_HAS_CONTENTS and
+ SEC_LOAD if isect has data.
+ (vms_get_symbol_info): Refine the condition for 'T' type.
+
2010-05-18 Tristan Gingold <gingold@adacore.com>
* vms-alpha.c (_bfd_vms_write_emh): New function.
what's in each section without examining the data. This is
especially true of DWARF debug sections. */
bfd_flags = SEC_ALLOC;
+ if (vbn != 0)
+ bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
if (flags & EISD__M_EXE)
- bfd_flags |= SEC_CODE | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_CODE;
if (flags & EISD__M_NONSHRADR)
- bfd_flags |= SEC_DATA | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (!(flags & EISD__M_WRT))
bfd_flags |= SEC_READONLY;
bfd_flags |= SEC_DATA;
if (flags & EISD__M_FIXUPVEC)
- bfd_flags |= SEC_DATA | SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (flags & EISD__M_CRF)
- bfd_flags |= SEC_HAS_CONTENTS | SEC_LOAD;
+ bfd_flags |= SEC_DATA;
if (flags & EISD__M_GBL)
{
ret->type = 'U';
else if (bfd_is_ind_section (sec))
ret->type = 'I';
- else if (bfd_get_section_flags (abfd, sec) & SEC_CODE)
+ else if ((symbol->flags & BSF_FUNCTION)
+ || (bfd_get_section_flags (abfd, sec) & SEC_CODE))
ret->type = 'T';
else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
ret->type = 'D';