diff options
author | tjr <tjr@FreeBSD.org> | 2004-08-16 07:55:06 +0000 |
---|---|---|
committer | tjr <tjr@FreeBSD.org> | 2004-08-16 07:55:06 +0000 |
commit | 8a2532c4567e38e9bc8d8959387af72c4a855cee (patch) | |
tree | 8db1b1fe965caf91b81508b975442417a3f13b98 /sys/conf | |
parent | 4ba41b4c333176e4dd5368706f1bdbc11c9e6d86 (diff) | |
download | FreeBSD-src-8a2532c4567e38e9bc8d8959387af72c4a855cee.zip FreeBSD-src-8a2532c4567e38e9bc8d8959387af72c4a855cee.tar.gz |
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.
Diffstat (limited to 'sys/conf')
-rw-r--r-- | sys/conf/files.amd64 | 35 | ||||
-rw-r--r-- | sys/conf/options.amd64 | 1 |
2 files changed, 35 insertions, 1 deletions
diff --git a/sys/conf/files.amd64 b/sys/conf/files.amd64 index 0af15c0..4fad97d 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 diff --git a/sys/conf/options.amd64 b/sys/conf/options.amd64 index 097b622..a383137 100644 --- a/sys/conf/options.amd64 +++ b/sys/conf/options.amd64 @@ -12,6 +12,7 @@ PMAP_SHPGPERPROC opt_pmap.h # (see src/sys/conf/options), except for broken debugging options. #IBCS2 opt_dontuse.h #COMPAT_LINUX opt_dontuse.h +COMPAT_LINUX32 opt_compat.h #COMPAT_SVR4 opt_dontuse.h #DEBUG_SVR4 opt_svr4.h #NDISAPI opt_dontuse.h |