On Linux at least, execveat with a directory fd opened with O_CLOEXEC can't run programs that use #! such as shell scripts. So switch execvp back to allocating a buffer, using an mmap syscall so that it's safe to do in the child of a fork, and using plain execve.
On Linux at least,
execveat
with a directory fd opened withO_CLOEXEC
can't run programs that use#!
such as shell scripts. So switchexecvp
back to allocating a buffer, using anmmap
syscall so that it's safe to do in the child of a fork, and using plainexecve
.Also, implement
difftime
and__strncmp_chk
.