aboutsummaryrefslogtreecommitdiff
path: root/gas/as.h
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>1998-01-27 13:33:54 +0000
committerRichard Henderson <rth@redhat.com>1998-01-27 13:33:54 +0000
commitc3b27a64b4e948791421c78d462de240cdba9ced (patch)
treef65c9b3b30d3c8cc0bf801f169afce0bdb3957f0 /gas/as.h
parentf3329c1a648a247c79b18675bb57ad79751c3b96 (diff)
downloadgdb-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.h96
1 files changed, 5 insertions, 91 deletions
diff --git a/gas/as.h b/gas/as.h
index 46b58a8..e599190 100644
--- a/gas/as.h
+++ b/gas/as.h
@@ -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 */