Subject: CVS commit: src/sys
To: None <>
From: Emmanuel Dreyfus <>
List: source-changes
Date: 08/23/2006 19:49:10
Module Name:	src
Committed By:	manu
Date:		Wed Aug 23 19:49:09 UTC 2006

Modified Files:
	src/sys/compat/linux/arch/amd64: linux_machdep.c
	src/sys/compat/linux/common: linux_emuldata.h linux_exec.c linux_exec.h
	    linux_machdep.h linux_sched.c
	src/sys/compat/linux32/common: linux32_exec.c linux32_exec.h
	src/sys/kern: kern_exit.c

Log Message:
1) Complete Linux exit_group() emulation
Members of the thread group must die without reporting to the parent and
without going to zombie stage. We do that by reparenting to init before
catching a SIGKILL. The parent will not see the child death.

The thread group leader must report the exit status, even if it exits
because of another thread calling exit_group(). We do that by storing the
exit status in struct linux_emuldata_shared, and the exit hook has the
duty of setting struct proc's p_xstat for the thread group leader.

2) For exit/fork/exec hooks, move the NPTL specific code to separate functions
that are shared between COMPAT_LINUX and COMPAT_LINUX32


To generate a diff of this commit:
cvs rdiff -r1.13 -r1.14 src/sys/compat/linux/arch/amd64/linux_machdep.c
cvs rdiff -r1.11 -r1.12 src/sys/compat/linux/common/linux_emuldata.h
cvs rdiff -r1.84 -r1.85 src/sys/compat/linux/common/linux_exec.c
cvs rdiff -r1.38 -r1.39 src/sys/compat/linux/common/linux_exec.h
cvs rdiff -r1.14 -r1.15 src/sys/compat/linux/common/linux_machdep.h
cvs rdiff -r1.33 -r1.34 src/sys/compat/linux/common/linux_sched.c
cvs rdiff -r1.2 -r1.3 src/sys/compat/linux32/common/linux32_exec.c \
cvs rdiff -r1.157 -r1.158 src/sys/kern/kern_exit.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.