freebsd-dev/sys/compat/svr4
Konstantin Belousov 2f304845e2 Do not allocate struct statfs on kernel stack.
Right now size of the structure is 472 bytes on amd64, which is
already large and stack allocations are indesirable.  With the ino64
work, MNAMELEN is increased to 1024, which will make it impossible to have
struct statfs on the stack.

Extracted from:	ino64 work by gleb
Discussed with:	mckusick
Tested by:	pho
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
2017-01-05 17:19:26 +00:00
..
imgact_svr4.c Implement lockless resource limits. 2015-06-10 10:48:12 +00:00
Makefile Don't create pointless backups of generated files in "make sysent". 2016-07-28 21:29:04 +00:00
README
svr4_acl.h
svr4_dirent.h
svr4_errno.h
svr4_exec.h
svr4_fcntl.c
svr4_fcntl.h
svr4_filio.c Regen post r302096 and implement svr4_pipe(). 2016-06-23 00:30:09 +00:00
svr4_filio.h
svr4_fuser.h
svr4_hrt.h
svr4_ioctl.c
svr4_ioctl.h
svr4_ipc.c Allow to build svr4 module with SYSV support separatelly from the kernel build. 2016-04-23 20:31:18 +00:00
svr4_ipc.h
svr4_misc.c Do not allocate struct statfs on kernel stack. 2017-01-05 17:19:26 +00:00
svr4_mman.h
svr4_proto.h Regen post r302096 and implement svr4_pipe(). 2016-06-23 00:30:09 +00:00
svr4_resource.c Implement lockless resource limits. 2015-06-10 10:48:12 +00:00
svr4_resource.h
svr4_siginfo.h
svr4_signal.c
svr4_signal.h
svr4_socket.c Fix streams and svr4 module dependency. Both modules are complaining about 2016-04-23 20:29:55 +00:00
svr4_socket.h
svr4_sockio.c Partially revert r257696/r257713, which have an issue with writing to user 2016-07-24 10:10:09 +00:00
svr4_sockio.h
svr4_sockmod.h
svr4_stat.c
svr4_stat.h
svr4_statvfs.h
svr4_stream.c fd: remove filedesc argument from fdclose 2015-04-11 15:40:28 +00:00
svr4_stropts.h
svr4_syscall.h Regen post r302096 and implement svr4_pipe(). 2016-06-23 00:30:09 +00:00
svr4_syscallnames.c Regen post r302096 and implement svr4_pipe(). 2016-06-23 00:30:09 +00:00
svr4_sysconfig.h
svr4_sysent.c Regen post r302096 and implement svr4_pipe(). 2016-06-23 00:30:09 +00:00
svr4_systeminfo.h
svr4_sysvec.c Fix streams and svr4 module dependency. Both modules are complaining about 2016-04-23 20:29:55 +00:00
svr4_termios.c
svr4_termios.h
svr4_time.h
svr4_timod.h
svr4_types.h
svr4_ucontext.h
svr4_ulimit.h
svr4_ustat.h
svr4_util.h As <machine/vmparam.h> is included from <vm/vm_param.h>, there is no 2016-02-22 09:08:04 +00:00
svr4_utsname.h
svr4_wait.h
svr4.h
syscalls.conf
syscalls.master Declare a svr4 version of pipe() now that sys_pipe() is no more. 2016-06-23 00:29:03 +00:00
TO-DO

This is a SysVR4 emulator derived from work done as part of the NetBSD
Project by Christos Zoulas.  It has been ported to FreeBSD by Mark Newton.

To use it:

1.  Choose one of:
      a.  Add "device streams" to your kernel config file and rebuild,
          reboot; or
      b.  Build and install the streams module in /sys/modules/streams

2.  Build and install the svr4 module in /sys/modules/svr4

3.  Type "kldload svr4" to start it up.

4.  Grab compat_sol26.tar.gz or compat_svr4.tar.gz from
    http://www.freebsd.org/~newton/freebsd-svr4 and install them in
    /compat/svr4

5.  Run "sh SVR4_MAKEDEV all" in /compat/svr4/dev

6.  Mount a Solaris/x86 v2.6 or v7 CD-ROM on /cdrom (also works with 
    v2.4 and v2.5.1, but you need different symlinks in /compat/svr4)

7.  Brand any executables you want to run, and/or set the
    kern.fallback_elf_brand sysctl to 'SVR4' to establish this as the
    default emulator for unbranded executables.

8.  See if your SysVR4 programs work.

It's early days yet, folks -- You'll probably have trouble getting 100%
functionality out of most things (specifically, poll() on a socket doesn't
look like it works at the moment, so Netscape doesn't work (among other
things)).  Patches will be appreciated.

   - Mark Newton
     newton@atdot.dotat.org

$FreeBSD$