Hi Aaron, On Mon, 2025-06-09 at 12:24 -0400, Aaron Merey wrote: > Signed-off-by: Aaron Merey <ame...@redhat.com> > --- > doc/Makefile.am | 1 + > doc/elf_getaroff.3 | 55 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 56 insertions(+) > create mode 100644 doc/elf_getaroff.3 > > diff --git a/doc/Makefile.am b/doc/Makefile.am > index fbfebfe0..6451ffab 100644 > --- a/doc/Makefile.am > +++ b/doc/Makefile.am > @@ -55,6 +55,7 @@ notrans_dist_man3_MANS= elf32_checksum.3 \ > elf_errmsg.3 \ > elf_errno.3 \ > elf_fill.3 \ > + elf_getaroff.3 \ > elf_getbase.3 \ > elf_getdata.3 \ > elf_getscn.3 \
Ack. > diff --git a/doc/elf_getaroff.3 b/doc/elf_getaroff.3 > new file mode 100644 > index 00000000..05072ad5 > --- /dev/null > +++ b/doc/elf_getaroff.3 > @@ -0,0 +1,55 @@ > +.TH ELF_GETAROFF 3 2025-06-06 "Libelf" "Libelf Programmer's Manual" > + > +.SH NAME > +elf_getaroff \- retrieve the offset of an archive member I would add "header" at the end. > + > +.SH SYNOPSIS > +.nf > +.B #include <libelf.h> > + > +.BI "int64_t elf_getaroff(Elf *" elf ");" > +.fi > +.SH DESCRIPTION > +Return the file offset, in bytes, of the archive member currently > +referred to by an ELF descriptor. Again add header. "the archive member header" Also mention this is the offset in the (parent) archive elf. Which can be used with elf_rand. > + > +.SH PARAMETERS > +.TP > +.I elf > +Elf descriptor referring to a member of an archive file. header > +.SH RETURN VALUE > +Return the file offset, in bytes, of the archive member referred to by > +.IR elf . > +If > +.I elf > +is NULL or is not a member of an archive, > +return > +.BR ELF_C_NULL . ehe, yes, that is true, although confusing... It also isn't what other implementations seem to do, which return -1. And it looks like we actually expect -1 ourselves in ar.c and ranlib.c Groan :{ Might this really be a bug that nobody noticed before? Should we fix it? Or is there a big risk we have users that rely on it returning ELF_C_NULL instead of -1? > + > +.SH SEE ALSO > +.BR elf_begin (3), > +.BR elf_next (3), > +.BR libelf (3), > +.BR elf (5) Add elf_rand? > +.SH ATTRIBUTES > +.TS > +allbox; > +lbx lb lb > +l l l. > +Interface Attribute Value > +T{ > +.na > +.nh > +.BR elf_getaroff () > +T} Thread safety MT-Safe > +.TE > + > +.SH REPORTING BUGS > +Report bugs to <elfutils-devel@sourceware.org> or > https://sourceware.org/bugzilla/. > + > +.SH HISTORY > +.B elf_getaroff > +first appeared in elfutils 0.114. This elfutils libelf function may not be > +found in other libelf implementations. Yeah, interesting.