Return value from linux_execve syscall now lost due following changes in rev. 1.46 src/sys/i386/linux/linux_machdep.c, and linux programs fail when use execvp(3) and executed binary not in first path elemen of $PATH : [ snip ] - bsd.fname = args->path; - bsd.argv = args->argp; - bsd.envv = args->envp; - return (execve(td, &bsd)); + error = exec_copyin_args(&eargs, newpath, UIO_SYSSPACE, + args->argp, args->envp); + free(newpath, M_TEMP); + if (error == 0) + kern_execve(td, &eargs, NULL); + exec_free_args(&eargs); + return (error); } [ ...] Fix: I'm use following patch locally : How-To-Repeat: Prepped some garbage to $PATH and try to run various linux progs. (tar make= ...)
Responsible Changed From-To: gnats-admin->freebsd-bugs Attemmpt to reformat and rescue this PR from the 'pending' category.
Responsible Changed From-To: freebsd-bugs->freebsd-emulation Bug in the emulation code.
Responsible Changed From-To: freebsd-emulation->emulation Canonicalize assignment.
State Changed From-To: open->closed Fix committed, thank you very much for submission!