HomeFreeBSD

Replace MD assembly exect() with a portable version.

Description

Replace MD assembly exect() with a portable version.

Originally, on the VAX exect() enable tracing once the new executable
image was loaded. This was possible because tracing was controllable
through user space code by setting the PSL_T flag. The following
instruction is a system call that activated tracing (as all
instructions do) by copying PSL_T to PSL_TP (trace pending). The
first instruction of the new executable image would trigger a trace
fault.

This is not portable to all platforms and the behavior was replaced with
ptrace(PT_TRACE_ME, ...) since FreeBSD forked off of the CSRG repository.
Platforms either incorrectly call execve(), trigger trace faults inside
the original executable, or do contain an implementation of this
function.

The exect() interfaces is deprecated or removed on NetBSD and OpenBSD.

Submitted by: Ali Mashtizadeh <ali@mashtizadeh.com>
Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D14989

Details

Provenance
brooksAuthored on
Reviewer
kib
Differential Revision
D14989: Replace exect() with a portable version
Parents
rS332442: Bump .Dd value (forgot to do this in r332439)
Branches
Unknown
Tags
Unknown