NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/51700 CVS commit: src/lib/libc
The following reply was made to PR kern/51700; it has been noted by GNATS.
From: "Kamil Rytarowski" <kamil%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/51700 CVS commit: src/lib/libc
Date: Tue, 7 Feb 2017 19:29:40 +0000
Module Name: src
Committed By: kamil
Date: Tue Feb 7 19:29:40 UTC 2017
Modified Files:
src/lib/libc/gen: Makefile.inc
src/lib/libc/sys: Makefile.inc
Added Files:
src/lib/libc/gen: exect.c
Removed Files:
src/lib/libc/arch/aarch64/sys: exect.S
src/lib/libc/arch/alpha/sys: exect.S
src/lib/libc/arch/arm/sys: exect.S
src/lib/libc/arch/hppa/sys: exect.S
src/lib/libc/arch/i386/sys: exect.S
src/lib/libc/arch/ia64/sys: exect.S
src/lib/libc/arch/m68k/sys: exect.S
src/lib/libc/arch/mips/sys: exect.S
src/lib/libc/arch/or1k/sys: exect.S
src/lib/libc/arch/powerpc/sys: exect.S
src/lib/libc/arch/powerpc64/sys: exect.S
src/lib/libc/arch/riscv/sys: exect.S
src/lib/libc/arch/sh3/sys: exect.S
src/lib/libc/arch/sparc/sys: exect.S
src/lib/libc/arch/sparc64/sys: exect.S
src/lib/libc/arch/vax/sys: exect.S
src/lib/libc/arch/x86_64/sys: exect.S
src/lib/libc/sys: Lint_exect.c
Log Message:
Mark exect(3) obsolete and bind it to plain execve(2) on all platforms
The original exect(2) from BSD4.2 was enabling bit for tracing
(single-step mode) and calling execve(2). The purpose of it was to generate
a signal for a tracer once the application will change its image to a new
program.
This approach no longer works as:
- exect(2) traces (single-steps) libc and it requires hundreds or
thousands steps before entering a new image
- it's vax and x86 specific code
- this functionality has been moved to the kernel - once a process is
traced it will generate SIGTRAP with si_code TRAP_EXEC and route it to
its debugger
- the side effects and unportability make this interface unusable
- there are no known users of this interface
- it apparently never worked better since day0 of NetBSD ("day0 bug")
Users are requested to move to other execve(2) variants. Calling current
execve(2) as it is the most similar behavior to this one from BSD4.2.
Discussed several times on mailing lists and in PR/51700.
Add warning to exect(3) telling about marking this function obsolete.
This function is prepared to be removed in next libc major bump.
Sponsored by <The NetBSD Foundation>
To generate a diff of this commit:
cvs rdiff -u -r1.1 -r0 src/lib/libc/arch/aarch64/sys/exect.S
cvs rdiff -u -r1.3 -r0 src/lib/libc/arch/alpha/sys/exect.S
cvs rdiff -u -r1.4 -r0 src/lib/libc/arch/arm/sys/exect.S
cvs rdiff -u -r1.2 -r0 src/lib/libc/arch/hppa/sys/exect.S
cvs rdiff -u -r1.15 -r0 src/lib/libc/arch/i386/sys/exect.S
cvs rdiff -u -r1.2 -r0 src/lib/libc/arch/ia64/sys/exect.S
cvs rdiff -u -r1.8 -r0 src/lib/libc/arch/m68k/sys/exect.S
cvs rdiff -u -r1.10 -r0 src/lib/libc/arch/mips/sys/exect.S
cvs rdiff -u -r1.1 -r0 src/lib/libc/arch/or1k/sys/exect.S
cvs rdiff -u -r1.3 -r0 src/lib/libc/arch/powerpc/sys/exect.S
cvs rdiff -u -r1.1 -r0 src/lib/libc/arch/powerpc64/sys/exect.S
cvs rdiff -u -r1.1 -r0 src/lib/libc/arch/riscv/sys/exect.S
cvs rdiff -u -r1.5 -r0 src/lib/libc/arch/sh3/sys/exect.S
cvs rdiff -u -r1.3 -r0 src/lib/libc/arch/sparc/sys/exect.S
cvs rdiff -u -r1.2 -r0 src/lib/libc/arch/sparc64/sys/exect.S
cvs rdiff -u -r1.6 -r0 src/lib/libc/arch/vax/sys/exect.S
cvs rdiff -u -r1.4 -r0 src/lib/libc/arch/x86_64/sys/exect.S
cvs rdiff -u -r1.197 -r1.198 src/lib/libc/gen/Makefile.inc
cvs rdiff -u -r0 -r1.1 src/lib/libc/gen/exect.c
cvs rdiff -u -r1.2 -r0 src/lib/libc/sys/Lint_exect.c
cvs rdiff -u -r1.231 -r1.232 src/lib/libc/sys/Makefile.inc
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index