Subject: Re: Mapping 2 compat linux32 syscalls on a single native one
To: Divacky Roman <xdivac02@stud.fit.vutbr.cz>
From: Christos Zoulas <christos@zoulas.com>
List: tech-kern
Date: 01/30/2007 13:42:40
On Jan 30,  4:54pm, xdivac02@stud.fit.vutbr.cz (Divacky Roman) wrote:
-- Subject: Re: Mapping 2 compat linux32 syscalls on a single native one

| what I meant was that 2.4 and 2.6 semantic differs so for example exit_group()
| have to become
| 
| exit_group() 
| {
| 	if (linux_use26()) {
| 	   2.6 stuff with threads...
| 	}
| 	
| 	sys_exit();
| }
| 
| this way it works for both 2.6 and 2.4 emulation. Please note that user can set
| the prefered version of emulation via sysctl. And glibc changes its behaviour depending
| on the version set. So such dynamic behaviour determinining is a must.

It is does really depend on linux_use26(), it depends if the
process was using NPTL or not, on a process by process basis; like:

exit_group() 
{
	if (p->nptl) {
	   2.6 stuff with threads...
	}
	
	sys_exit();
}

You can have processes that use 2.4 and 2.6 active at the same time.

christos