diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-03-29 21:33:59 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-03-29 21:33:59 +0000 |
commit | 5a28331f6dc965462a5380c381283b26edd283ca (patch) | |
tree | e63ec7fdb09e3dd1844229799eb0180d5d54e9fa /bfd/bfd-in2.h | |
parent | c31418c180236eb1aae59e3e415ab7578efb4d73 (diff) | |
download | gdb-5a28331f6dc965462a5380c381283b26edd283ca.zip gdb-5a28331f6dc965462a5380c381283b26edd283ca.tar.gz gdb-5a28331f6dc965462a5380c381283b26edd283ca.tar.bz2 |
* section.c (SEC_LINK_ONCE): Define.
(SEC_LINK_DUPLICATES): Define.
(SEC_LINK_DUPLICATES_DISCARD): Define.
(SEC_LINK_DUPLICATES_ONE_ONLY): Define.
(SEC_LINK_DUPLICATES_SAME_SIZE): Define.
(SEC_LINK_DUPLICATES_SAME_CONTENTS): Define.
* bfd-in2.h: Rebuild.
* coffcode.h (sec_to_styp_flags): If COFF_WITH_PE, turn
SEC_LINK_ONCE into IMAGE_SCN_LNK_COMDAT.
(styp_to_sec_flags): If COFF_WITH_PE, turn IMAGE_SCN_LNK_REMOVE
into SEC_EXCLUDE. If IMAGE_SCN_LNK_COMDAT is set, set
SEC_LINK_ONCE, and look through the symbol table for the setting
for SEC_LINK_DUPLICATES.
(coff_write_object_contents): If COFF_WITH_PE, if SEC_LINK_ONCE is
set for a section, find the section symbol in the symbol table,
and set the aux entry based on SEC_LINK_DUPLICATES.
* coffgen.c (coff_print_symbol): Add a space before "checksum".
* coff-arm.c (armcoff_big_vec): If COFF_WITH_PE is defined, add
SEC_LINK_ONCE and SEC_LINK_DUPLICATES to section_flags.
* coff-i386.c (i386coff_vec): Likewise.
* coff-ppc.c (TARGET_LITTLE_SYM, TARGET_BIG_SYM): Likewise.
Diffstat (limited to 'bfd/bfd-in2.h')
-rw-r--r-- | bfd/bfd-in2.h | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 148ee13..cd0f8d7 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -862,7 +862,7 @@ typedef struct sec sections. */ #define SEC_COFF_SHARED_LIBRARY 0x800 - /* The section is a common section (symbols may be defined + /* The section contains common symbols (symbols may be defined multiple times, the value of a symbol is the amount of space it requires, and the largest symbol value is the one used). Most targets have exactly one of these (which we @@ -891,6 +891,34 @@ typedef struct sec table. */ #define SEC_SORT_ENTRIES 0x80000 + /* When linking, duplicate sections of the same name should be + discarded, rather than being combined into a single section as + is usually done. This is similar to how common symbols are + handled. See SEC_LINK_DUPLICATES below. */ +#define SEC_LINK_ONCE 0x100000 + + /* If SEC_LINK_ONCE is set, this bitfield describes how the linker + should handle duplicate sections. */ +#define SEC_LINK_DUPLICATES 0x600000 + + /* This value for SEC_LINK_DUPLICATES means that duplicate + sections with the same name should simply be discarded. */ +#define SEC_LINK_DUPLICATES_DISCARD 0x0 + + /* This value for SEC_LINK_DUPLICATES means that the linker + should warn if there are any duplicate sections, although + it should still only link one copy. */ +#define SEC_LINK_DUPLICATES_ONE_ONLY 0x200000 + + /* This value for SEC_LINK_DUPLICATES means that the linker + should warn if any duplicate sections are a different size. */ +#define SEC_LINK_DUPLICATES_SAME_SIZE 0x400000 + + /* This value for SEC_LINK_DUPLICATES means that the linker + should warn if any duplicate sections contain different + contents. */ +#define SEC_LINK_DUPLICATES_SAME_CONTENTS 0x600000 + /* End of section flags. */ /* Some internal packed boolean fields. */ |