diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-05-02 02:32:52 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-05-02 02:32:52 +0000 |
commit | 7681eb9df7f4c5e9b057c9c2e168a973b728536b (patch) | |
tree | 5a7eeb05fa2e9773af1987c0080b6c0f3e6d0ff4 /gas/subsegs.h | |
parent | e8f3bb64b57920133a43a8ed5dea4369bf356667 (diff) | |
download | gdb-7681eb9df7f4c5e9b057c9c2e168a973b728536b.zip gdb-7681eb9df7f4c5e9b057c9c2e168a973b728536b.tar.gz gdb-7681eb9df7f4c5e9b057c9c2e168a973b728536b.tar.bz2 |
* subsegs.h (segment_info_type): If MANY_SEGMENTS and not
BFD_ASSEMBLER, add name field.
* config/obj-coff.c (coff_header_append): Handle long section
names.
(crawl_symbols): Just use the name field for the symbol name,
without worrying about null byte termination.
(w_strings): Handle long section names.
(write_object_file): Likewise. Also, use the name field, rather
than scnhdr.s_name.
(obj_coff_add_segment): Permit long section names.
(obj_coff_init_stab_section): Use the name field, rather than
scnhdr.s_name.
(adjust_stab_section): Likewise.
* config/te-pe.h (COFF_LONG_SECTION_NAMES): Define.
Diffstat (limited to 'gas/subsegs.h')
-rw-r--r-- | gas/subsegs.h | 23 |
1 files changed, 19 insertions, 4 deletions
diff --git a/gas/subsegs.h b/gas/subsegs.h index 2d3a100..7d71e8b 100644 --- a/gas/subsegs.h +++ b/gas/subsegs.h @@ -16,7 +16,7 @@ You should have received a copy of the GNU General Public License along with GAS; see the file COPYING. If not, write to - the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ + the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* * For every sub-segment the user mentions in the ASsembler program, @@ -37,6 +37,8 @@ * represent code fragments, for that sub-segment, forward chained. */ +#include "obstack.h" + struct frchain /* control building of a frag chain */ { /* FRCH = FRagment CHain control */ struct frag *frch_root; /* 1st struct frag in chain, or NULL */ @@ -49,6 +51,7 @@ struct frchain /* control building of a frag chain */ fixS *fix_tail; /* Last fixup for this subsegment. */ #endif struct obstack frch_obstack; /* for objects in this frag chain */ + fragS *frch_frag_now; /* frag_now for this subsegment */ }; typedef struct frchain frchainS; @@ -56,7 +59,7 @@ typedef struct frchain frchainS; /* All subsegments' chains hang off here. NULL means no frchains yet. */ extern frchainS *frchain_root; -/* Frchain we are assembling into now That is, the current segment's +/* Frchain we are assembling into now. That is, the current segment's frag chain, even if it contains no (complete) frags. */ extern frchainS *frchain_now; @@ -64,14 +67,14 @@ extern frchainS *frchain_now; typedef struct { frchainS *frchainP; - int hadone : 1; + unsigned int hadone : 1; /* This field is set if this is a .bss section which does not really have any contents. Once upon a time a .bss section did not have any frags, but that is no longer true. This field prevent the SEC_HAS_CONTENTS flag from being set for the section even if there are frags. */ - int bss : 1; + unsigned int bss : 1; int user_stuff; @@ -82,7 +85,10 @@ typedef struct #if defined (MANY_SEGMENTS) && !defined (BFD_ASSEMBLER) struct internal_scnhdr scnhdr; + enum linkonce_type linkonce; + const char *name; #endif + symbolS *dot; struct lineno_list *lineno_list_head; @@ -131,6 +137,15 @@ extern segment_info_type segment_info[]; extern frchainS *data0_frchainP; extern frchainS *bss0_frchainP; +/* Dummy so stuff can compile. Should never be used. */ +struct seg_info_trash { + struct { + unsigned stab_string_size : 1; + } stabu; + unsigned hadone : 1; +}; +#define seg_info(S) (abort (), (struct seg_info_trash *) 0) + #endif #endif /* ! BFD_ASSEMBLER */ |