The Unix standards do not provide an execvpe,
which is obvious "missing" functionality.
Java's subprocess implementation is one example of
software projects implementing their own execvpe.
For glibc, the implementation seems particularly easy
- copy posix/execvp.c to posix/execvpe.c, replacing references to
__environ with a reference to a user-provided envp.
It is hard for users to implement execvpe completely faithfully themselves,
because it is not so easy to find the default value of PATH,
or the right shell to use to run scripts in case of ENOEXEC,
in accordance with the standard practice on the platform.
If agreed, I would be willing to help work on implementation,
although I am not a glibc hacker.
Hopefully, execvpe would be added to a future revision of the Unix standards.
Add in git master.