Michael,
Per our previous discussion, here are the updates to the execve(2)
manpage resulting from the variable length argument support patch in
linux-2.6.23-rc1. The execve API is unmodified. However, the
following should be noted in the "Notes" section.
Prior to linux-2.6.23, the memory used to store the environment and
argument list strings was limited to 32 (MAX_ARG_PAGES) pages. On
most architectures, the page size is 4kB, leading to a maximum size of
128kB.
In linux-2.6.23 and later, most architectures support a size limit
derived from the current RLIMIT_STACK setting (see getrlimit(2)). For
these architectures, the total size is limited to 1/4 the allowed
stack size, the limit per string is 32 pages (MAX_ARG_STRLEN), and the
maximum number of strings is 0x7FFFFFFF. Architectures with no memory
management unit are excepted: they maintain the pre-2.6.23 limit.