aboutsummaryrefslogtreecommitdiff
path: root/gas/write.c
diff options
context:
space:
mode:
authorDavid MacKenzie <djm@cygnus>1994-06-03 20:59:20 +0000
committerDavid MacKenzie <djm@cygnus>1994-06-03 20:59:20 +0000
commitdef66e248c4dff4e2d5095a9a7739a06adf3fa78 (patch)
treea9805265c3579ce5aaeba3e7316412b15dbfa314 /gas/write.c
parent26997f44ba11f70b8420b8f0da1e64dbaf31edd0 (diff)
downloadfsf-binutils-gdb-def66e248c4dff4e2d5095a9a7739a06adf3fa78.zip
fsf-binutils-gdb-def66e248c4dff4e2d5095a9a7739a06adf3fa78.tar.gz
fsf-binutils-gdb-def66e248c4dff4e2d5095a9a7739a06adf3fa78.tar.bz2
* as.h: Replace flagseen with separate variables.
* as.c (parse_args): Set them. Don't accept -1 option, or -v explicitly (it's a synonym for --version). * as.c, input-scrub.c, messages.c, read.c, symbols.c, write.c, config/obj-aout.c, config/obj-aout.h, config/obj-bout.c, config/obj-bout.h, config/obj-coff.c, config/obj-coff.h, config/obj-vms.c, config/tc-hppa.c, config/tc-i386.c, config/tc-i960.c, config/tc-m68k.c, config/tc-mips.c, config/tc-vax.c: Use the new flag variables instead of flagseen. * config/tc-vax.c [OBJ_VMS]: Recognize -+, -1, -v, and document in usage.
Diffstat (limited to 'gas/write.c')
-rw-r--r--gas/write.c22
1 files changed, 14 insertions, 8 deletions
diff --git a/gas/write.c b/gas/write.c
index 000e790..7964934 100644
--- a/gas/write.c
+++ b/gas/write.c
@@ -1042,7 +1042,7 @@ write_object_file ()
n_errs = had_errors ();
/* The -Z flag indicates that an object file should be generated,
regardless of warnings and errors. */
- if (flagseen['Z'])
+ if (flag_always_generate_output)
{
if (n_warns || n_errs)
as_warn ("%d error%s, %d warning%s, generating bad object file.\n",
@@ -1128,7 +1128,7 @@ write_object_file ()
data frags into the text segment. Do this before relaxing so
we know to take advantage of -R and make shorter addresses. */
#if !defined (OBJ_AOUT) || defined (BFD_ASSEMBLER)
- if (flagseen['R'])
+ if (flag_readonly_data_in_text)
{
merge_data_into_text ();
}
@@ -1485,6 +1485,16 @@ write_object_file ()
}
}
+ /* Now do any format-specific adjustments to the symbol table, such
+ as adding file symbols. */
+#ifdef obj_adjust_symtab
+ obj_adjust_symtab ();
+#endif
+
+ /* Now that all the sizes are known, and contents correct, we can
+ start writing to the file. */
+ set_symtab ();
+
/* If *_frob_file changes the symbol value at this point, it is
responsible for moving the changed value into symp->bsym->value
as well. Hopefully all symbol value changing can be done in
@@ -1496,10 +1506,6 @@ write_object_file ()
obj_frob_file ();
#endif
- /* Now that all the sizes are known, and contents correct, we can
- start writing to the file. */
- set_symtab ();
-
bfd_map_over_sections (stdoutput, write_relocs, (char *) 0);
bfd_map_over_sections (stdoutput, write_contents, (char *) 0);
@@ -1679,7 +1685,7 @@ relax_segment (segment_frag_root, segment)
+ S_GET_VALUE (lie->sub)));
if (offset <= -32768 || offset >= 32767)
{
- if (flagseen['K'])
+ if (flag_warn_displacement)
{
char buf[50];
sprint_value (buf, (addressT) lie->addnum);
@@ -2161,7 +2167,7 @@ fixup_segment (fixP, this_segment_type)
/* Warn if a .word value is too large when treated as a signed
number. We already know it is not too negative. This is to
catch over-large switches generated by gcc on the 68k. */
- if (!flagseen['J']
+ if (!flag_signed_overflow_ok
&& size == 2
&& add_number > 0x7fff)
as_bad_where (fixP->fx_file, fixP->fx_line,