diff options
Diffstat (limited to 'bfd/coffcode.h')
-rw-r--r-- | bfd/coffcode.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 6f9685b..62eeb20 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -670,7 +670,9 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags) /* FIXME: There is no gas syntax to specify the debug section flag. */ if (is_dbg) { - sec_flags &= (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD); + sec_flags &= (SEC_LINK_ONCE | SEC_LINK_DUPLICATES_DISCARD + | SEC_LINK_DUPLICATES_SAME_CONTENTS + | SEC_LINK_DUPLICATES_SAME_SIZE); sec_flags |= SEC_DEBUGGING | SEC_READONLY; } @@ -698,7 +700,11 @@ sec_to_styp_flags (const char *sec_name, flagword sec_flags) /* skip SORT */ if (sec_flags & SEC_LINK_ONCE) styp_flags |= IMAGE_SCN_LNK_COMDAT; - /* skip LINK_DUPLICATES */ + if ((sec_flags + & (SEC_LINK_DUPLICATES_DISCARD | SEC_LINK_DUPLICATES_SAME_CONTENTS + | SEC_LINK_DUPLICATES_SAME_SIZE)) != 0) + styp_flags |= IMAGE_SCN_LNK_COMDAT; + /* skip LINKER_CREATED */ if ((sec_flags & SEC_COFF_NOREAD) == 0) |