Move nm.c cached line number info to bfd usrdata
authorAlan Modra <amodra@gmail.com>
Mon, 6 Mar 2023 00:12:36 +0000 (10:42 +1030)
committerAlan Modra <amodra@gmail.com>
Mon, 6 Mar 2023 00:12:36 +0000 (10:42 +1030)
commite3f450f3933ddb9ca4ef405722706f3c793d295e
tree4d3febd0a61336384972fe415f386e9741b661fd
parenta734d906cc0e0d3f32705e67b72e7113c69890d6
Move nm.c cached line number info to bfd usrdata

Replace the static variables used by nm to cache line number info
with a struct attached to the bfd.  Cleaner, and it avoids any concern
that lineno_cache_bfd is somehow left pointing at memory for a closed
bfd and that memory is later reused for another bfd, not that I think
this is possible.  Also don't bomb via bfd_fatal on errors getting
the line number info, just omit the line numbers.

* nm.c (struct lineno_cache): Rename from get_relocs_info.
Add symcount.
(lineno_cache_bfd, lineno_cache_rel_bfd): Delete.
(get_relocs): Adjust for struct rename.  Don't call bfd_fatal
on errors.
(free_lineno_cache): New function.
(print_symbol): Use lineno_cache in place of statics.  Don't
call bfd_fatal on errors reading symbols, just omit the line
info.
(display_archive, display_file): Call free_lineno_cache.
binutils/nm.c