]> CyberLeo.Net >> Repos - FreeBSD/stable/8.git/commit
MFC r196512:
authorbz <bz@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 27 Aug 2009 17:34:13 +0000 (17:34 +0000)
committerbz <bz@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Thu, 27 Aug 2009 17:34:13 +0000 (17:34 +0000)
commit30478f914c3b886fe2d87d2d3208384c59dee877
tree55abdd10f25e5c7ff7a0fad90c31fdce38e8b9f8
parentddbdfe923bbdd87027945926f9d4cdb491681803
MFC r196512:

  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
Approved by: re (kensmith)

git-svn-id: svn://svn.freebsd.org/base/stable/8@196601 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/amd64/amd64/elf_machdep.c
sys/amd64/amd64/trap.c
sys/amd64/linux32/linux32_sysvec.c
sys/compat/ia32/ia32_sysvec.c
sys/i386/i386/elf_machdep.c
sys/i386/i386/trap.c
sys/i386/linux/linux_sysvec.c
sys/kern/imgact_elf.c
sys/sys/imgact_elf.h