]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable
authorPeter Wemm <peter@FreeBSD.org>
Sat, 20 Jul 2002 02:56:12 +0000 (02:56 +0000)
committerPeter Wemm <peter@FreeBSD.org>
Sat, 20 Jul 2002 02:56:12 +0000 (02:56 +0000)
commit3ebc124838799d79bb81993028066939255edfbf
tree442882c197085f1177ad99039e6387b24c60e44a
parent382f95d332eb42a6a06ef585d2855b536978a48d
Infrastructure tweaks to allow having both an Elf32 and an Elf64 executable
handler in the kernel at the same time.  Also, allow for the
exec_new_vmspace() code to build a different sized vmspace depending on
the executable environment.  This is a big help for execing i386 binaries
on ia64.   The ELF exec code grows the ability to map partial pages when
there is a page size difference, eg: emulating 4K pages on 8K or 16K
hardware pages.

Flesh out the i386 emulation support for ia64.  At this point, the only
binary that I know of that fails is cvsup, because the cvsup runtime
tries to execute code in pages not marked executable.

Obtained from:  dfr (mostly, many tweaks from me).
50 files changed:
sys/alpha/alpha/elf_machdep.c
sys/alpha/linux/linux_sysvec.c
sys/alpha/osf1/imgact_osf1.c
sys/amd64/amd64/elf_machdep.c
sys/amd64/ia32/ia32.h [new file with mode: 0644]
sys/amd64/ia32/ia32_misc.c [new file with mode: 0644]
sys/amd64/ia32/ia32_sysvec.c [new file with mode: 0644]
sys/amd64/ia32/ia32_util.h [new file with mode: 0644]
sys/amd64/ia32/syscalls.master
sys/compat/freebsd32/freebsd32.h [new file with mode: 0644]
sys/compat/freebsd32/freebsd32_misc.c [new file with mode: 0644]
sys/compat/freebsd32/freebsd32_util.h [new file with mode: 0644]
sys/compat/freebsd32/syscalls.master
sys/compat/ia32/ia32_sysvec.c [new file with mode: 0644]
sys/compat/ia32/ia32_util.h [new file with mode: 0644]
sys/compat/pecoff/imgact_pecoff.c
sys/compat/svr4/imgact_svr4.c
sys/compat/svr4/svr4_sysvec.c
sys/conf/files
sys/conf/files.ia64
sys/i386/i386/elf_machdep.c
sys/i386/ibcs2/imgact_coff.c
sys/i386/linux/imgact_linux.c
sys/i386/linux/linux_sysvec.c
sys/ia64/ia32/ia32.h [new file with mode: 0644]
sys/ia64/ia32/ia32_misc.c [new file with mode: 0644]
sys/ia64/ia32/ia32_signal.c [new file with mode: 0644]
sys/ia64/ia32/ia32_sysvec.c [new file with mode: 0644]
sys/ia64/ia32/ia32_util.h [new file with mode: 0644]
sys/ia64/ia32/imgact_ia32.c [deleted file]
sys/ia64/ia32/imgact_ia32.h [deleted file]
sys/ia64/ia32/syscalls.master
sys/ia64/ia64/elf_machdep.c
sys/ia64/include/elf.h
sys/kern/imgact_aout.c
sys/kern/imgact_elf.c
sys/kern/imgact_elf32.c [new file with mode: 0644]
sys/kern/imgact_elf64.c [new file with mode: 0644]
sys/kern/imgact_elfN.c [new file with mode: 0644]
sys/kern/imgact_gzip.c
sys/kern/init_main.c
sys/kern/kern_exec.c
sys/powerpc/powerpc/elf_machdep.c
sys/sparc64/sparc64/elf_machdep.c
sys/sys/elf_generic.h
sys/sys/imgact.h
sys/sys/imgact_elf.h
sys/sys/sysent.h
sys/vm/vm_extern.h
sys/vm/vm_map.c