diff options
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r-- | bfd/coffcode.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h index cc7b148..301e5f7 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -445,6 +445,8 @@ sec_to_styp_flags (sec_name, sec_flags) #ifdef COFF_WITH_PE if (sec_flags & SEC_LINK_ONCE) styp_flags |= IMAGE_SCN_LNK_COMDAT; + if (sec_flags & SEC_SHARED) + styp_flags |= IMAGE_SCN_MEM_SHARED; #endif return (styp_flags); @@ -579,6 +581,9 @@ styp_to_sec_flags (abfd, hdr, name) if (styp_flags & IMAGE_SCN_LNK_REMOVE) sec_flags |= SEC_EXCLUDE; + if (styp_flags & IMAGE_SCN_MEM_SHARED) + sec_flags |= SEC_SHARED; + if (styp_flags & IMAGE_SCN_LNK_COMDAT) { sec_flags |= SEC_LINK_ONCE; @@ -3911,6 +3916,10 @@ coff_classify_symbol (abfd, syment) return COFF_SYMBOL_LOCAL; } +#if 0 + /* This is correct for Microsoft generated objects, but it + breaks gas generated objects. */ + if (syment->n_value == 0) { asection *sec; @@ -3923,6 +3932,7 @@ coff_classify_symbol (abfd, syment) == 0)) return COFF_SYMBOL_PE_SECTION; } +#endif return COFF_SYMBOL_LOCAL; } |