freebsd-skq/sys/i386/linux
bz ba7b3afabc Fix handling of .note.ABI-tag section for GNU systems [1].
Handle GNU/Linux according to LSB Core Specification 4.0,
Chapter 11. Object Format, 11.8. ABI note tag.

Also check the first word of desc, not only name, according to
glibc abi-tags specification to distinguish between Linux and
kFreeBSD.

Add explicit handling for Debian GNU/kFreeBSD, which runs
on our kernels as well [2].

In {amd64,i386}/trap.c, when checking osrel of the current process,
also check the ABI to not change the signal behaviour for Linux
binary processes, now that we save an osrel version for all three
from the lists above in struct proc [2].

These changes make it possible to run FreeBSD, Debian GNU/kFreeBSD
and Linux binaries on the same machine again for at least i386 and
amd64, and no longer break kFreeBSD which was detected as GNU(/Linux).

PR:		kern/135468
Submitted by:	dchagin [1] (initial patch)
Suggested by:	kib [2]
Tested by:	Petr Salinger (Petr.Salinger seznam.cz) for kFreeBSD
Reviewed by:	kib
MFC after:	3 days
2009-08-24 16:19:47 +00:00
..
imgact_linux.c VOP_LOCK1() (and so VOP_LOCK()) and VOP_UNLOCK() are only used in 2008-01-13 14:44:15 +00:00
linux_dummy.c Implement robust futexes. Most of the code is modelled after 2008-05-13 20:01:27 +00:00
linux_genassym.c Segment registers are stored in the uc_mcontext member of the struct 2008-09-07 16:39:21 +00:00
linux_ipc64.h
linux_locore.s Change some movl's to mov's. Newer GAS no longer accept 'movl' instructions 2009-01-31 11:37:21 +00:00
linux_machdep.c Return ENOSYS instead of EINVAL for invalid function codes to match the 2009-06-26 19:39:33 +00:00
linux_proto.h Regenerate system call tables for r184789. 2008-11-09 10:48:06 +00:00
linux_ptrace.c - Move all of the PS_ flags into either p_flag or td_flags. 2007-09-17 05:31:39 +00:00
linux_support.s Move futex support code from <arch>/support.s into linux compat directory. 2007-05-23 08:33:06 +00:00
linux_syscall.h Regenerate system call tables for r184789. 2008-11-09 10:48:06 +00:00
linux_sysent.c Regenerate generated syscall files following changes to struct sysent in 2009-06-01 16:14:38 +00:00
linux_sysvec.c Fix handling of .note.ABI-tag section for GNU systems [1]. 2009-08-24 16:19:47 +00:00
linux.h Implement accept4 syscall. 2009-06-01 20:48:39 +00:00
Makefile
syscalls.conf - Remove unused sysvec variables from various syscalls.conf. 2006-08-15 17:25:55 +00:00
syscalls.master Mark uname(), getdomainname() and setdomainname() with COMPAT_FREEBSD4. 2008-11-09 10:45:13 +00:00