From ea0fabbc4fcb15d10fbcaad14c405826d5eefea3 Mon Sep 17 00:00:00 2001 From: "Tim J. Robbins" Date: Mon, 16 Aug 2004 07:55:06 +0000 Subject: Add preliminary support for running 32-bit Linux binaries on amd64, enabled with the COMPAT_LINUX32 option. This is largely based on the i386 MD Linux emulations bits, but also builds on the 32-bit FreeBSD and generic IA-32 binary emulation work. Some of this is still a little rough around the edges, and will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel. --- sys/conf/files.amd64 | 35 ++++++++++++++++++++++++++++++++++- 1 file changed, 34 insertions(+), 1 deletion(-) (limited to 'sys/conf/files.amd64') diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 0af15c038891..4fad97d4c355 100644 --- a/sys/conf/files.amd64 +++ b/sys/conf/files.amd64 @@ -7,7 +7,19 @@ # limitations in config: backslash-newline doesn't work in strings, and # dependency lines other than the first are silently ignored. # - +# +linux32_genassym.o optional compat_linux32 \ + dependency "$S/amd64/linux32/linux32_genassym.c" \ + compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ + no-obj no-implicit-rule \ + clean "linux32_genassym.o" +# +linux32_assym.h optional compat_linux32 \ + dependency "$S/kern/genassym.sh linux32_genassym.o" \ + compile-with "sh $S/kern/genassym.sh linux32_genassym.o > ${.TARGET}" \ + no-obj no-implicit-rule before-depend \ + clean "linux32_assym.h" +# ia32_genassym.o standard \ dependency "$S/compat/ia32/ia32_genassym.c" \ compile-with "${CC} ${CFLAGS:N-fno-common} -c ${.IMPSRC}" \ @@ -156,3 +168,24 @@ compat/freebsd32/freebsd32_syscalls.c optional ia32 compat/freebsd32/freebsd32_sysent.c optional ia32 compat/ia32/ia32_sysvec.c optional ia32 kern/imgact_elf32.c optional ia32 +# +# Linux/i386 binary support +# +amd64/linux32/linux32_dummy.c optional compat_linux32 +amd64/linux32/linux32_locore.s optional compat_linux32 \ + dependency "linux32_assym.h" +amd64/linux32/linux32_machdep.c optional compat_linux32 +amd64/linux32/linux32_sysent.c optional compat_linux32 +amd64/linux32/linux32_sysvec.c optional compat_linux32 +compat/linux/linux_file.c optional compat_linux32 +compat/linux/linux_getcwd.c optional compat_linux32 +compat/linux/linux_ioctl.c optional compat_linux32 +compat/linux/linux_ipc.c optional compat_linux32 +compat/linux/linux_mib.c optional compat_linux32 +compat/linux/linux_misc.c optional compat_linux32 +compat/linux/linux_signal.c optional compat_linux32 +compat/linux/linux_socket.c optional compat_linux32 +compat/linux/linux_stats.c optional compat_linux32 +compat/linux/linux_sysctl.c optional compat_linux32 +compat/linux/linux_uid16.c optional compat_linux32 +compat/linux/linux_util.c optional compat_linux32 -- cgit v1.2.3