summaryrefslogtreecommitdiff
path: root/elksemu/Kernel_patch
blob: 20b6add9702a90e7081f9c839454f7ad467ec869 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
This kernel patch allows you to run Linux-8086 executables transparently
on a Linux-i386 (1.2.13) system.
It requires V0.0.2 or better of elksemu in the file "/lib/elksemu".

If you are using kernel 1.3.* or later try the module: binfmt_elks.o
If you are using 2.0.36, 2.1.43 or 2.2.0  and later use binfmt_misc.

--- orig-13/fs/exec.c	Sun Sep 24 13:22:37 1995
+++ linux/fs/exec.c	Sun Feb 11 20:11:47 1996
@@ -615,6 +615,12 @@
 	set_fs(old_fs);
 	if (retval < 0)
 		goto exec_error2;
+#ifndef NO_ELKSEMU
+	/* What a horrible hack! :-) */
+	if ((bprm.buf[0] == 1)    && (bprm.buf[1] == 3) && 
+	    (bprm.buf[2] == 0x20 || bprm.buf[2] == 0x10) && (bprm.buf[3] == 4))
+		memcpy(bprm.buf, "#!/lib/elksemu\n", 16);
+#endif
 	if ((bprm.buf[0] == '#') && (bprm.buf[1] == '!') && (!sh_bang)) {
 		/*
 		 * This section does the #! interpretation.