Hi Aaron,

On Mon, Aug 04, 2025 at 11:24:36PM -0400, Aaron Merey wrote:
> Signed-off-by: Aaron Merey <ame...@redhat.com>
> ---
> v2: mark elf_getshnum as obsolete in SYNOPSIS. Describe extended section
> headers breifly. Clarify that elf can be NULL, dst cannot be NULL.
> Mention reason for elf_getshnum deprication and introduction of
> elf_getshdrnum in HISTORY.
> 
>  doc/Makefile.am      |  2 +
>  doc/elf_getshdrnum.3 | 89 ++++++++++++++++++++++++++++++++++++++++++++
>  doc/elf_getshnum.3   |  1 +
>  3 files changed, 92 insertions(+)
>  create mode 100644 doc/elf_getshdrnum.3
>  create mode 100644 doc/elf_getshnum.3
> 
> diff --git a/doc/Makefile.am b/doc/Makefile.am
> index 122a712f..d6e3062d 100644
> --- a/doc/Makefile.am
> +++ b/doc/Makefile.am
> @@ -71,6 +71,8 @@ notrans_dist_man3_MANS= elf32_checksum.3 \
>                       elf_getident.3 \
>                       elf_getphdrnum.3 \
>                       elf_getscn.3 \
> +                     elf_getshdrnum.3 \
> +                     elf_getshnum.3 \
>                       elf_hash.3 \
>                       elf_kind.3 \
>                       elf_memory.3 \

OK.

> diff --git a/doc/elf_getshdrnum.3 b/doc/elf_getshdrnum.3
> new file mode 100644
> index 00000000..fffca5d4
> --- /dev/null
> +++ b/doc/elf_getshdrnum.3
> @@ -0,0 +1,89 @@
> +.TH ELF_GETSHDRNUM 3 2025-06-30 "Libelf" "Libelf Programmer's Manual"
> +
> +.SH NAME
> +elf_getshdrnum, elf_getshnum \- retrieve the number of section headers in an 
> ELF file
> +.SH SYNOPSIS
> +.nf
> +#include <libelf.h>
> +
> +.B int elf_getshdrnum("Elf *elf", "size_t *dst");
> +.B int elf_getshnum("Elf *elf", "size_t *dst"); (deprecated)
> +.fi

OK.

> +.SH DESCRIPTION
> +The
> +.BR elf_getshdrnum ()
> +function stores the number of section headers (sections) associated with the
> +ELF descriptor
> +.I elf
> +into the variable pointed to by
> +.IR dst .
> +
> +It transparently handles both standard and extended section header counts.
> +If the number of section headers exceeds the representable range of the
> +.I e_shnum
> +field in the ELF header, the ELF specification allows encoding the true
> +count in section header 0’s
> +.I sh_size
> +field, and sets
> +.I e_shnum
> +to 0. This function transparently handles that case.
> +
> +The function
> +.BR elf_getshnum ()
> +is a deprecated alias for
> +.BR elf_getshdrnum ()
> +and should not be used in new code (see HISTORY).

OK.

> +.SH PARAMETERS
> +.TP
> +.I elf
> +A pointer to an
> +.B Elf
> +descriptor opened with
> +.BR elf_begin (3).
> +The descriptor must represent a file of kind
> +.B ELF_K_ELF .
> +If NULL, the function returns \-1 without setting elf_errno.
> +
> +.TP
> +.I dst
> +Pointer to a
> +.B size_t
> +variable. On success, the number of section headers is written here.
> +Must not be NULL.

OK.

> +.SH RETURN VALUE
> +Returns 0 on success and stores the result in
> +.IR dst .
> +Returns \-1 on failure.
> +
> +.SH SEE ALSO
> +.BR elf32_getshdr (3),
> +.BR elf64_getshdr (3),
> +.BR libelf (3),
> +.BR elf (5)

OK.

> +.SH ATTRIBUTES
> +.TS
> +allbox;
> +lbx lb lb
> +l l l.
> +Interface    Attribute       Value
> +T{
> +.na
> +.nh
> +.BR elf_getshdrnum (),\~elf_getshnum()
> +T}   Thread safety   MT-Safe
> +.TE
> +
> +.SH REPORTING BUGS
> +Report bugs to <elfutils-devel@sourceware.org> or 
> https://sourceware.org/bugzilla/.

OK

> +.SH HISTORY
> +.B elf_getshdrnum
> +first appeared in elfutils 0.142.  This function was added due to 
> elf_getshnum
> +return value inconsistencies between different libelf implementations.
> +.B elf_getshdrnum
> +was introduced to ensure that 0 is returned on success across all libelf
> +implementations.

Nice.

> diff --git a/doc/elf_getshnum.3 b/doc/elf_getshnum.3
> new file mode 100644
> index 00000000..bc84abc2
> --- /dev/null
> +++ b/doc/elf_getshnum.3
> @@ -0,0 +1 @@
> +.so man3/elf_getshdrnum.3

OK.

Thanks,

Mark

Reply via email to