Hi Aaron,
On Mon, Aug 04, 2025 at 11:24:40PM -0400, Aaron Merey wrote:
> Signed-off-by: Aaron Merey <[email protected]>
> ---
> v2: fix function declaration in SYNOPSIS. Clarify that the null
> section is added automatically if absent and never returned.
> Remove comment about requiring ELF_C_WRITE or ELF_C_RDWR.
>
> doc/Makefile.am | 1 +
> doc/elf_newscn.3 | 88 ++++++++++++++++++++++++++++++++++++++++++++++++
> 2 files changed, 89 insertions(+)
> create mode 100644 doc/elf_newscn.3
>
> diff --git a/doc/Makefile.am b/doc/Makefile.am
> index 217c2da1..103f9d05 100644
> --- a/doc/Makefile.am
> +++ b/doc/Makefile.am
> @@ -81,6 +81,7 @@ notrans_dist_man3_MANS= elf32_checksum.3 \
> elf_memory.3 \
> elf_ndxscn.3 \
> elf_newdata.3 \
> + elf_newscn.3 \
> elf_nextscn.3 \
> elf_rawfile.3 \
> elf_scnshndx.3 \
OK.
> diff --git a/doc/elf_newscn.3 b/doc/elf_newscn.3
> new file mode 100644
> index 00000000..85cf27aa
> --- /dev/null
> +++ b/doc/elf_newscn.3
> @@ -0,0 +1,88 @@
> +.TH ELF_NEWSCN 3 2025-06-30 "Libelf" "Libelf Programmer's Manual"
> +
> +.SH NAME
> +elf_newscn \- create a new section for an ELF descriptor
> +
> +.SH SYNOPSIS
> +.nf
> +#include <libelf.h>
> +
> +.BI "Elf_Scn *elf_newscn(Elf * "elf");"
OK.
> +.SH DESCRIPTION
> +The
> +.BR elf_newscn ()
> +function creates a new section descriptor for the ELF descriptor
> +.I elf.
> +
> +Each call to
> +.BR elf_newscn ()
> +appends a new section to the internal list of sections for the
> +ELF descriptor. It also creates a corresponding empty section header,
> +which is zero-initialized and marked dirty. If
> +.I elf
> +does not have any sections yet then
> +.B elf_newscn
> +will also create the null section with
> +.I sh_type
> +.B SHT_NULL
> +at section index 0.
> +
> +A newly created section has no name or type and must be properly initialized
> +before calling
> +.BR elf_update ().
> +Use
> +.BR elf32_getshdr ()
> +or
> +.BR elf64_getshdr ()
> +to obtain the section header structure, then populate the required fields.
> +Use
> +.BR elf_newdata ()
> +to associate one or more data buffers with the new section.
> +
> +The section with index 0 (the null section) is reserved and cannot have
> +data added to it.
> +.BR elf_newscn ()
> +will never return this section.
OK.
> +.SH PARAMETERS
> +.TP
> +.I elf
> +An ELF descriptor that must at least have an
> +.I Elf32_Ehdr
> +or
> +.I Elf64_Ehdr
> +associated with it.
OK.
> +.SH RETURN VALUE
> +On success,
> +.BR elf_newscn ()
> +returns a pointer to a new section descriptor. On failure, it returns NULL
> +and sets elf_errno. If
> +.I elf
> +is NULL, then NULL is returned without setting elf_errno.
OK.
> +.SH SEE ALSO
> +.BR elf32_getshdr (3),
> +.BR elf64_getshdr (3),
> +.BR elf_getdata (3),
> +.BR elf_newdata (3),
> +.BR elf_update (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_newscn ()
> +T} Thread safety MT-Safe
> +.TE
> +
> +.SH REPORTING BUGS
> +Report bugs to <[email protected]> or
> https://sourceware.org/bugzilla/.
OK.
Thanks,
Mark