Re: Keeping track of rs6000-coff archive element pointers
authorAlan Modra <amodra@gmail.com>
Fri, 28 Apr 2023 01:41:09 +0000 (11:11 +0930)
committerAlan Modra <amodra@gmail.com>
Fri, 28 Apr 2023 05:49:59 +0000 (15:19 +0930)
commit143a12bd5a5402231bde748cbbdc22bb3984a522
treec01adab6f7c00166fadbcd1f211173715c4ddb0b
parent4cb2aab8ab9e18d9dfdd8fa362715d70cc2d1109
Re: Keeping track of rs6000-coff archive element pointers

Commit de7b90610e9e left a hole in the element checking, explained by
the comment added to _bfd_xcoff_openr_next_archived_file.  While
fixing this, tidy some types used to hold unsigned values so that
casts are not needed to avoid signed/unsigned comparison warnings.
Also tidy a few things in xcoff.h.

bfd/
* coff-rs6000.c (_bfd_xcoff_openr_next_archived_file): Check
that we aren't pointing back at the last element.  Make
filestart a ufile_ptr.  Update for xcoff_artdata change.
(_bfd_strntol, _bfd_strntoll): Return unsigned values.
(_bfd_xcoff_slurp_armap): Make off a ufile_ptr.
(add_ranges): Update for xcoff_artdata change.
* libbfd-in.h (struct artdata): Make first_file_filepos a
ufile_ptr.
* libbfd.h: Regenerate.
include/
* coff/xcoff.h (struct xcoff_artdata): Replace min_elt with
ar_hdr_size.
(xcoff_big_format_p): In the !SMALL_ARCHIVE case return true
for anything but a small archive.
bfd/coff-rs6000.c
bfd/libbfd-in.h
bfd/libbfd.h
include/coff/xcoff.h