What do I need to run SCO bins under Linux?

What do I need to run SCO bins under Linux?

Post by Jim Nan » Thu, 16 Feb 1995 20:34:05




>    I've been told that I need some icbs (or ibcs) libraries, but I
> have yet to find them.  Where do I start?  If I need these libraries,
> where can I find them (site and dir, they're not on sunsite's
> INDEX.whole).

First they are broken for kernels after the early 1.1.80's so stick with
1.1.80 or prior.  You can get the module from tsx-11.mit.edu:/pub/linux/BETA/ibcs2.
Get the one with the latest date.  It is a loadable kernel module.  After you
compile it, you insert it into the kernel using the insmod program:

/sbin/insmod ./iBCS

Jim

 
 
 

What do I need to run SCO bins under Linux?

Post by Matthew Cummin » Fri, 17 Feb 1995 10:17:46


: First they are broken for kernels after the early 1.1.80's so stick with
: 1.1.80 or prior.  You can get the module from tsx-11.mit.edu:/pub/linux/BETA/ibcs2.

If you use this patch against the ibcs941209 it'll compile and work well.
There are no removed sockets and I know WP 5.1 works fine under X-windows
(xwp) and also the text wp works fine as well.

Part of these patches come from Brandon (the socket stuff, mine was flawed)
and the other problem was a missing include.

diff -u --recursive --new-file /root/tmp/ibcs/binfmt_elf.c /root/ibcs/binfmt_elf.c
--- /root/tmp/ibcs/binfmt_elf.c Thu Dec  8 05:56:31 1994

                mpnt->vm_task = current;
                mpnt->vm_start = PAGE_MASK & (unsigned long) p;
                mpnt->vm_end = TASK_SIZE;
-               mpnt->vm_page_prot = PAGE_PRIVATE|PAGE_DIRTY;
+/*             mpnt->vm_page_prot = PAGE_COPY; */
 #ifdef VM_STACK_FLAGS
                mpnt->vm_flags = VM_STACK_FLAGS;
                mpnt->vm_pte = 0;
diff -u --recursive --new-file /root/tmp/ibcs/bsdioctl.c /root/ibcs/bsdioctl.c
--- /root/tmp/ibcs/bsdioctl.c   Thu Dec  8 05:56:33 1994

 #include <ibcs/ibcs.h>
 #include <ibcs/bsd.h>
+#include <linux/mm.h>

 #ifdef IBCS_TRACE
 #include <ibcs/trace.h>
diff -u --recursive --new-file /root/tmp/ibcs/bsdstat.c /root/ibcs/bsdstat.c
--- /root/tmp/ibcs/bsdstat.c    Thu Dec  8 05:56:34 1994

 #include <linux/kernel.h>

 #include <ibcs/bsd.h>
+#include <linux/mm.h>
 #include <ibcs/ibcs.h>

diff -u --recursive --new-file /root/tmp/ibcs/ioctl.c /root/ibcs/ioctl.c
--- /root/tmp/ibcs/ioctl.c      Thu Dec  8 05:56:39 1994

 #include <ibcs/ibcs.h>
 #include <ibcs/bsd.h>
+#include <linux/mm.h>

 #ifdef IBCS_TRACE
 #include <ibcs/trace.h>
diff -u --recursive --new-file /root/tmp/ibcs/map.c /root/ibcs/map.c
--- /root/tmp/ibcs/map.c        Thu Dec  8 05:56:42 1994

 #include <ibcs/socket.h>
 #include <ibcs/map.h>
+#include <linux/errno.h>

 #ifndef NULL
 #define NULL   ((void *)0)
diff -u --recursive --new-file /root/tmp/ibcs/secureware.c /root/ibcs/secureware.c
--- /root/tmp/ibcs/secureware.c Thu Dec  8 05:56:44 1994

 #include <linux/kernel.h>
 #include <linux/sched.h>
 #include <ibcs/ibcs.h>
+#include <linux/errno.h>

 #ifdef IBCS_TRACE
 #include <ibcs/trace.h>
diff -u --recursive --new-file /root/tmp/ibcs/socksys.c /root/ibcs/socksys.c
--- /root/tmp/ibcs/socksys.c    Thu Dec  8 05:56:47 1994

 #include <ibcs/ibcs.h>
 #include <ibcs/map.h>
+#include <linux/mm.h>

 #ifndef CONFIG_BINFMT_IBCS

                        if ((error = verify_area(VERIFY_WRITE, (char *)arg, sizeof(struct sockaddr))))
                                return error;
-                       if (!inode->i_socket)
+                       if (!inode->i_sock)
                                return -ENOTSOCK;
                        old_fs = get_fs();
                        set_fs (get_ds());
-                       error = inode->i_socket->ops->getname(inode->i_socket,
+                       error = inode->u.socket_i.ops->getname(&inode->u.socket_i,
                                                        &uaddr, &uaddr_len, 1);
                        set_fs(old_fs);

 static void
 socksys_close(struct inode *ino, struct file *filep)
 {
-       if (ino && ino->i_socket)
+       if (ino && ino->i_sock)
                sock_close(ino, filep);

 #ifdef IBCS_TRACE
diff -u --recursive --new-file /root/tmp/ibcs/stat.c /root/ibcs/stat.c
--- /root/tmp/ibcs/stat.c       Thu Dec  8 05:56:47 1994

 #include <linux/fs.h>
 #include <linux/sched.h>
 #include <linux/kernel.h>
-
+#include <linux/mm.h>
 #include <ibcs/ibcs.h>
 /*
  * Believe it or not, the original stat structure is compatible with ibcs2.
diff -u --recursive --new-file /root/tmp/ibcs/xstat.c /root/ibcs/xstat.c
--- /root/tmp/ibcs/xstat.c      Thu Dec  8 05:56:54 1994

 #include <linux/sys.h>
 #include <ibcs/ibcs.h>
 #include <ibcs/abi4.h>
+#include <linux/mm.h>

 /*
  * The xstat interface is used by SVr4, and is effectively an extension
--


 
 
 

What do I need to run SCO bins under Linux?

Post by Matthew Cummin » Fri, 17 Feb 1995 12:12:02


: : First they are broken for kernels after the early 1.1.80's so stick with
: : 1.1.80 or prior.  You can get the module from tsx-11.mit.edu:/pub/linux/BETA/ibcs2.

: If you use this patch against the ibcs941209 it'll compile and work well.
: There are no removed sockets and I know WP 5.1 works fine under X-windows
: (xwp) and also the text wp works fine as well.

I forgot to say I'm using 1.1.92 currently with no problems.
--