mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 09:58:19 +08:00
gas_init
Rename gas_late_init to plain gas_init, to reinforce the idea that this is where the bulk of gas initialisation belongs. Also reorder some initialisation. * as.c (gas_init): Rename from gas_late_init. Open output file and arrange for dump_statistics to be called here rather than in main. Create .gasversion. local symbol earlier, because we can.
This commit is contained in:
39
gas/as.c
39
gas/as.c
@ -1314,10 +1314,10 @@ gas_early_init (int *argcp, char ***argvp)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Init things that might depend on program args. */
|
/* The bulk of gas initialisation. This is after args are parsed. */
|
||||||
|
|
||||||
static void
|
static void
|
||||||
gas_late_init (void)
|
gas_init (void)
|
||||||
{
|
{
|
||||||
symbol_begin ();
|
symbol_begin ();
|
||||||
frag_init ();
|
frag_init ();
|
||||||
@ -1334,9 +1334,22 @@ gas_late_init (void)
|
|||||||
|
|
||||||
dwarf2_init ();
|
dwarf2_init ();
|
||||||
|
|
||||||
/* Somewhat arbitrary division into initialisation above that
|
local_symbol_make (".gasversion.", absolute_section,
|
||||||
doesn't need stdoutput open (even though it is open), and below
|
&predefined_address_frag, BFD_VERSION / 10000UL);
|
||||||
where things might be put on stdoutput memory, eg. symbols. */
|
|
||||||
|
/* Note: Put new initialisation calls that don't depend on stdoutput
|
||||||
|
being open above this point. stdoutput must be open for anything
|
||||||
|
that might use stdoutput objalloc memory, eg. calling bfd_alloc
|
||||||
|
or creating global symbols (via bfd_make_empty_symbol). */
|
||||||
|
xatexit (output_file_close);
|
||||||
|
output_file_create (out_file_name);
|
||||||
|
gas_assert (stdoutput != 0);
|
||||||
|
|
||||||
|
/* Must be called before output_file_close. xexit calls the xatexit
|
||||||
|
list in reverse order. */
|
||||||
|
if (flag_print_statistics)
|
||||||
|
xatexit (dump_statistics);
|
||||||
|
|
||||||
PROGRESS (1);
|
PROGRESS (1);
|
||||||
|
|
||||||
dot_symbol_init ();
|
dot_symbol_init ();
|
||||||
@ -1347,9 +1360,6 @@ gas_late_init (void)
|
|||||||
|
|
||||||
itbl_init ();
|
itbl_init ();
|
||||||
|
|
||||||
local_symbol_make (".gasversion.", absolute_section,
|
|
||||||
&predefined_address_frag, BFD_VERSION / 10000UL);
|
|
||||||
|
|
||||||
/* Now that we have fully initialized, and have created the output
|
/* Now that we have fully initialized, and have created the output
|
||||||
file, define any symbols requested by --defsym command line
|
file, define any symbols requested by --defsym command line
|
||||||
arguments. */
|
arguments. */
|
||||||
@ -1381,7 +1391,7 @@ main (int argc, char ** argv)
|
|||||||
gas_early_init (&argc, &argv);
|
gas_early_init (&argc, &argv);
|
||||||
PROGRESS (1);
|
PROGRESS (1);
|
||||||
|
|
||||||
/* Call parse_args before gas_late_init so that switches like
|
/* Call parse_args before gas_init so that switches like
|
||||||
--hash-size can be honored. */
|
--hash-size can be honored. */
|
||||||
parse_args (&argc, &argv);
|
parse_args (&argc, &argv);
|
||||||
|
|
||||||
@ -1424,16 +1434,7 @@ main (int argc, char ** argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* It has to be called after dump_statistics (). */
|
gas_init ();
|
||||||
xatexit (output_file_close);
|
|
||||||
|
|
||||||
if (flag_print_statistics)
|
|
||||||
xatexit (dump_statistics);
|
|
||||||
|
|
||||||
output_file_create (out_file_name);
|
|
||||||
gas_assert (stdoutput != 0);
|
|
||||||
|
|
||||||
gas_late_init ();
|
|
||||||
|
|
||||||
PROGRESS (1);
|
PROGRESS (1);
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user