diff options
author | Richard Henderson <rth@redhat.com> | 1998-01-27 13:33:54 +0000 |
---|---|---|
committer | Richard Henderson <rth@redhat.com> | 1998-01-27 13:33:54 +0000 |
commit | c3b27a64b4e948791421c78d462de240cdba9ced (patch) | |
tree | f65c9b3b30d3c8cc0bf801f169afce0bdb3957f0 /gas/as.h | |
parent | f3329c1a648a247c79b18675bb57ad79751c3b96 (diff) | |
download | gdb-c3b27a64b4e948791421c78d462de240cdba9ced.zip gdb-c3b27a64b4e948791421c78d462de240cdba9ced.tar.gz gdb-c3b27a64b4e948791421c78d462de240cdba9ced.tar.bz2 |
* as.c (parse_args): Add --keep-locals alias for -L.
Add --strip-local-absolute.
(show_usage): Update.
* as.h (flag_strip_local_absolute): New flag.
* symbols.c (S_IS_LOCAL): Use it.
* config/obj-aout.h (S_IS_LOCAL): Likewise.
* config/obj-bout.h (S_IS_LOCAL): Likewise.
* config/obj-coff.h (S_IS_LOCAL): Likewise.
PR 14689
Diffstat (limited to 'gas/as.h')
-rw-r--r-- | gas/as.h | 96 |
1 files changed, 5 insertions, 91 deletions
@@ -394,95 +394,6 @@ typedef unsigned int relax_substateT; Could be a problem, cross-assembling for 64-bit machines. */ typedef addressT relax_addressT; - -/* frags.c */ - -/* - * A code fragment (frag) is some known number of chars, followed by some - * unknown number of chars. Typically the unknown number of chars is an - * instruction address whose size is yet unknown. We always know the greatest - * possible size the unknown number of chars may become, and reserve that - * much room at the end of the frag. - * Once created, frags do not change address during assembly. - * We chain the frags in (a) forward-linked list(s). The object-file address - * of the 1st char of a frag is generally not known until after relax(). - * Many things at assembly time describe an address by {object-file-address - * of a particular frag}+offset. - - BUG: it may be smarter to have a single pointer off to various different - notes for different frag kinds. See how code pans - */ - -struct frag -{ - /* Object file address. */ - addressT fr_address; - /* Chain forward; ascending address order. Rooted in frch_root. */ - struct frag *fr_next; - - /* (Fixed) number of chars we know we have. May be 0. */ - offsetT fr_fix; - /* (Variable) number of chars after above. May be 0. */ - offsetT fr_var; - /* For variable-length tail. */ - struct symbol *fr_symbol; - /* For variable-length tail. */ - offsetT fr_offset; - /* Points to opcode low addr byte, for relaxation. */ - char *fr_opcode; - -#ifndef NO_LISTING - struct list_info_struct *line; -#endif - - /* What state is my tail in? */ - relax_stateT fr_type; - relax_substateT fr_subtype; - - union { - /* These are needed only on the NS32K machines. But since we don't - include targ-cpu.h until after this structure has been defined, - we can't really conditionalize it. This code should be - rearranged a bit to make that possible. */ - struct { - struct frag *fr_opcode_fragP; - unsigned int fr_opcode_offset; - char fr_bsr; - } fr_ns32k; -#ifdef USING_CGEN - /* Don't include this unless using CGEN to keep frag size down. */ - struct { - const struct cgen_insn *insn; - unsigned char opindex, opinfo; - } cgen; -#endif - } fr_targ; - - /* Where the frag was created, or where it became a variant frag. */ - char *fr_file; - unsigned int fr_line; - - /* Data begins here. */ - char fr_literal[1]; -}; - -#define SIZEOF_STRUCT_FRAG \ -((char *)zero_address_frag.fr_literal-(char *)&zero_address_frag) -/* We want to say fr_literal[0] above. */ - -typedef struct frag fragS; - -/* Current frag we are building. This frag is incomplete. It is, - however, included in frchain_now. The fr_fix field is bogus; - instead, use frag_now_fix (). */ -COMMON fragS *frag_now; -extern int frag_now_fix PARAMS ((void)); - -/* For foreign-segment symbol fixups. */ -COMMON fragS zero_address_frag; -/* For local common (N_BSS segment) fixups. */ -COMMON fragS bss_address_frag; - /* main program "as.c" (command arguments etc) */ COMMON unsigned char flag_no_comments; /* -f */ @@ -513,9 +424,11 @@ COMMON int flag_no_warnings; /* -W */ COMMON unsigned char flag_always_generate_output; /* -Z */ /* This is true if the assembler should output time and space usage. */ - COMMON unsigned char flag_print_statistics; +/* True if local absolute symbols are to be stripped. */ +COMMON int flag_strip_local_absolute; + /* name of emitted object file */ COMMON char *out_file_name; @@ -538,7 +451,7 @@ extern int listing; enum debug_info_type { DEBUG_NONE, DEBUG_STABS, DEBUG_ECOFF }; extern enum debug_info_type debug_type; - + /* Maximum level of macro nesting. */ extern int max_macro_nest; @@ -646,6 +559,7 @@ struct expressionS; struct fix; struct symbol; struct relax_type; +typedef struct frag fragS; #ifdef BFD_ASSEMBLER /* literal.c */ |