alloc gas seginfo on notes obstack

Lots of memory used in gas should go on this obstack.  The patch also
frees all the gas obstacks on exit, which isn't a completely trivial
task.

	* subsegs.c (alloc_seginfo): New function.
	(subseg_change, subseg_get): Use it.
	(subsegs_end): New function.
	* as.h (subsegs_end): Declare.
	* output-file.c: Include subsegs.h
	(stash_frchain_obs): New function.
	(output_file_close): Save obstacks attached to output bfd before
	closing.  Call subsegs_end with the array of obstacks.
This commit is contained in:
Alan Modra
2022-07-04 12:45:47 +09:30
parent 0772daccb3
commit eeeaf705fe
3 changed files with 64 additions and 20 deletions

View File

@@ -476,6 +476,7 @@ void input_scrub_end (void);
void new_logical_line (const char *, int);
void new_logical_line_flags (const char *, int, int);
void subsegs_begin (void);
void subsegs_end (struct obstack **);
void subseg_change (segT, int);
segT subseg_new (const char *, subsegT);
segT subseg_force_new (const char *, subsegT);