#
346838 |
|
28-Apr-2019 |
dchagin |
MFC r345469, r345470:
Linux between 4.18 and 5.0 split IPC system calls. In preparation for doing this in the Linuxulator modify our linux_shmat() to match actual Linux shmat() system call.
|
#
346812 |
|
28-Apr-2019 |
dchagin |
MFC r328890 (by emaste@):
Linuxolator whitespace cleanup
A version of each of the MD files by necessity exists for each CPU architecture supported by the Linuxolator. Clean these up so that new architectures do not inherit whitespace issues.
Clean up shared Linuxolator files while here.
|
#
332031 |
|
04-Apr-2018 |
emaste |
MFC r330356 (eadler): sys/linux: Fix a few potential infoleaks in Linux IPC
admbugs: 765, 812, 813, 814 Submitted by: Domagoj Stolfa <domagoj.stolfa@gmail.com> Reported by: Ilja Van Sprundel <ivansprundel@ioactive.com> Reported by: Vlad Tsyrklevich
|
#
330997 |
|
15-Mar-2018 |
emaste |
MFC r329370, r330239: Rationalize license text on Linuxolator files
Many licenses on Linuxolator files contained small variations from the standard FreeBSD license text. To avoid license proliferation switch to the standard 2-clause FreeBSD license for those files where I have permission from each of the listed copyright holders.
Approved by: dchagin, kan, marcel, rdivacky, sos Sponsored by: The FreeBSD Foundation
|
#
316965 |
|
15-Apr-2017 |
dchagin |
MFC r316599:
Prevent ushort values overflow when convert new Linux 64-bit ipc struct to the old Linux ipc struct.
|
#
316964 |
|
15-Apr-2017 |
dchagin |
MFC r314868:
Linux semop system call return EINVAL in case when the invalid nsops or semid values specified.
|
#
316963 |
|
15-Apr-2017 |
dchagin |
MFC r314867:
Linux kernel does not export to the user space ipc_perm.mode values other than S_IRWXUGO (0777).
|
#
316962 |
|
15-Apr-2017 |
dchagin |
MFC r314866:
Reduce code duplication between MD Linux code by moving SYSV IPC 64-bit related struct definitions out into the MI path.
Invert the native ipc structs to the Linux ipc structs convesion logic. Since 64-bit variant of ipc structs has more precision convert native ipc structs to the 64-bit Linux ipc structs and then truncate 64-bit values into the non 64-bit if needed. Unlike Linux, return EOVERFLOW if the values do not fit.
Fix SYSV IPC for 64-bit Linuxulator which never sets IPC_64 bit.
|
#
316961 |
|
15-Apr-2017 |
dchagin |
MFC r314648:
Style(9).
|
#
316960 |
|
15-Apr-2017 |
dchagin |
MFC r314647:
Remove attribute __packed from some IPC struct definition since Linuxulator is x86 only. The only notable differences in algnment for an LP64 64-bit system when compared to a 32-bit system is an eight or large byte types alignment.
|
#
302408 |
|
07-Jul-2016 |
gjb |
Copy head@r302406 to stable/11 as part of the 11.0-RELEASE cycle. Prune svn:mergeinfo from the new branch, as nothing has been merged here.
Additional commits post-branch will follow.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
283416 |
|
24-May-2015 |
dchagin |
x86_64 Linux do not use multiplexing on ipc system calls. Move struct ipc_perm definition to the MD path as it differs for 64 and 32 bit platform.
Differential Revision: https://reviews.freebsd.org/D1068 Reviewed by: trasz
|
#
230132 |
|
15-Jan-2012 |
uqs |
Convert files to UTF-8
|
#
225617 |
|
16-Sep-2011 |
kmacy |
In order to maximize the re-usability of kernel code in user space this patch modifies makesyscalls.sh to prefix all of the non-compatibility calls (e.g. not linux_, freebsd32_) with sys_ and updates the kernel entry points and all places in the code that use them. It also fixes an additional name space collision between the kernel function psignal and the libc function of the same name by renaming the kernel psignal kern_psignal(). By introducing this change now we will ease future MFCs that change syscalls.
Reviewed by: rwatson Approved by: re (bz)
|
#
224123 |
|
17-Jul-2011 |
bz |
Remove the 'either' from the comment as it'll be less obvious that we removed semmap in a bit of time from now. Re-wrap.
Suggested by: jhb
|
#
224016 |
|
14-Jul-2011 |
bz |
Remove semaphore map entry count "semmap" field and its tuning option that is highly recommended to be adjusted in too much documentation while doing nothing in FreeBSD since r2729 (rev 1.1).
ipcs(1) needs to be recompiled as it is accessing _KERNEL private variables.
Reviewed by: jhb (before comment change on linux code) Sponsored by: Sandvine Incorporated
|
#
219558 |
|
12-Mar-2011 |
dchagin |
Style(9) fixes. No functional changes.
MFC after: 2 Week
|
#
198945 |
|
05-Nov-2009 |
netchild |
Fix typo in kernel message. The fix is based upon the patch in the PR.
PR: kern/140279 Submitted by: Alexander Best <alexbestms@math.uni-muenster.de> MFC after: 1 week
|
#
194910 |
|
24-Jun-2009 |
jhb |
Change the ABI of some of the structures used by the SYSV IPC API: - The uid/cuid members of struct ipc_perm are now uid_t instead of unsigned short. - The gid/cgid members of struct ipc_perm are now gid_t instead of unsigned short. - The mode member of struct ipc_perm is now mode_t instead of unsigned short (this is merely a style bug). - The rather dubious padding fields for ABI compat with SV/I386 have been removed from struct msqid_ds and struct semid_ds. - The shm_segsz member of struct shmid_ds is now a size_t instead of an int. This removes the need for the shm_bsegsz member in struct shmid_kernel and should allow for complete support of SYSV SHM regions >= 2GB. - The shm_nattch member of struct shmid_ds is now an int instead of a short. - The shm_internal member of struct shmid_ds is now gone. The internal VM object pointer for SHM regions has been moved into struct shmid_kernel. - The existing __semctl(), msgctl(), and shmctl() system call entries are now marked COMPAT7 and new versions of those system calls which support the new ABI are now present. - The new system calls are assigned to the FBSD-1.1 version in libc. The FBSD-1.0 symbols in libc now refer to the old COMPAT7 system calls. - A simplistic framework for tagging system calls with compatibility symbol versions has been added to libc. Version tags are added to system calls by adding an appropriate __sym_compat() entry to src/lib/libc/incldue/compat.h. [1]
PR: kern/16195 kern/113218 bin/129855 Reviewed by: arch@, rwatson Discussed with: kan, kib [1]
|
#
185337 |
|
26-Nov-2008 |
rdivacky |
Document that all the other commands are either identical to the FreeBSD ones or rejected by kern_msgctl().
Found with: Coverity Prevent(tm) CID: 3456 Approved by: kib (mentor)
|
#
166008 |
|
14-Jan-2007 |
netchild |
MFp4 (112379): Implement SETALL/GETALL IPC primitives. This fixes some LTP testcases and LabView is able to proceed a little bit further.
Submitted by: rdivacky
|
#
165407 |
|
20-Dec-2006 |
jkim |
MFP4: 110179
Add rudimentary IPC_INFO/MSG_INFO command support for linux_msgctl() to pacify Linux ipcs(1). While I am here, add more bound checks for linux_msgsnd() and linux_msgrcv().
|
#
165404 |
|
20-Dec-2006 |
jkim |
MFP4: (part of) 110058
Use new kern_msgsnd()/kern_msgrcv() to fix linux32 emulation on amd64.
|
#
163217 |
|
10-Oct-2006 |
jhb |
Don't pass unused bufsz to kern_shmctl().
|
#
163216 |
|
10-Oct-2006 |
jhb |
Only try to copyin a msqid for the IPC_SET command to msgctl(). Other commands (such as IPC_RMID) were bogusly failing with EFAULT.
Tested by: jkim
|
#
163215 |
|
10-Oct-2006 |
jhb |
Remove unnecessary casts before PTRIN().
|
#
160187 |
|
08-Jul-2006 |
jhb |
Rework kern_semctl a bit to always assume the UIO_SYSSPACE case. This mostly consists of pushing a few copyin's and copyout's up into __semctl() as all the other callers were already doing the UIO_SYSSPACE case. This also changes kern_semctl() to set the return value in a passed in pointer to a register_t rather than td->td_retval[0] directly so that callers can only set td->td_retval[0] if all the various copyout's succeed.
As a result of these changes, kern_semctl() no longer does copyin/copyout (except for GETALL/SETALL) so simplify the locking to acquire the semakptr mutex before the MAC check and hold it all the way until the end of the big switch statement. The GETALL/SETALL cases have to temporarily drop it while they do copyin/malloc and copyout. Also, simplify the SETALL case to remove handling for a non-existent race condition.
|
#
159991 |
|
27-Jun-2006 |
jhb |
- Add a kern_semctl() helper function for __semctl(). It accepts a pointer to a copied-in copy of the 'union semun' and a uioseg to indicate which memory space the 'buf' pointer of the union points to. This is then used in linux_semctl() and svr4_sys_semctl() to eliminate use of the stackgap. - Mark linux_ipc() and svr4_sys_semsys() MPSAFE.
|
#
156874 |
|
19-Mar-2006 |
ru |
Unbreak COMPAT_LINUX32 option support on amd64.
Broken by: netchild
|
#
156850 |
|
18-Mar-2006 |
netchild |
Fixup some problems in my previous commit (COMPAT_43).
Pointyhat to: netchild
|
#
148540 |
|
29-Jul-2005 |
jhb |
Move MODULE_DEPEND() statements for SYSVIPC dependencies to linux_ipc.c so that they aren't duplicated 3 times and are also in the same file as the code that depends on the SYSVIPC modules.
|
#
141691 |
|
11-Feb-2005 |
sobomax |
Semctl with IPC_STAT command should return zero in case of success.
PR: 73778 Submitted by: Andriy Gapon <avg@icyb.net.ua> MFC after: 2 weeks
|
#
141471 |
|
07-Feb-2005 |
jhb |
- Tweak kern_msgctl() to return a copy of the requested message queue id structure in the struct pointed to by the 3rd argument for IPC_STAT and get rid of the 4th argument. The old way returned a pointer into the kernel array that the calling function would then access afterwards without holding the appropriate locks and doing non-lock-safe things like copyout() with the data anyways. This change removes that unsafeness and resulting race conditions as well as simplifying the interface. - Implement kern_foo wrappers for stat(), lstat(), fstat(), statfs(), fstatfs(), and fhstatfs(). Use these wrappers to cut out a lot of code duplication for freebsd4 and netbsd compatability system calls. - Add a new lookup function kern_alternate_path() that looks up a filename under an alternate prefix and determines which filename should be used. This is basically a more general version of linux_emul_convpath() that can be shared by all the ABIs thus allowing for further reduction of code duplication.
|
#
140839 |
|
25-Jan-2005 |
sobomax |
Split out kernel side of msgctl(2) into two parts: the first that pops data from the userland and pushes results back and the second which does actual processing. Use the latter to eliminate stackgap in the linux wrapper of that syscall.
MFC after: 2 weeks
|
#
140214 |
|
14-Jan-2005 |
obrien |
Match the LINUX32's style with existing style Submitted by: Jung-uk Kim <jkim@niksun.com>
Use positive, not negative logic.
|
#
133816 |
|
16-Aug-2004 |
tjr |
Changes to MI Linux emulation code necessary to run 32-bit Linux binaries on AMD64, and the general case where the emulated platform has different size pointers than we use natively: - declare certain structure members as l_uintptr_t and use the new PTRIN and PTROUT macros to convert to and from native pointers. - declare some structures __packed on amd64 when the layout would differ from that used on i386. - include <machine/../linux32/linux.h> instead of <machine/../linux/linux.h> if compiling with COMPAT_LINUX32. This will need to be revisited before 32-bit and 64-bit Linux emulation support can coexist in the same kernel. - other small scattered changes.
This should be a no-op on i386 and Alpha.
|
#
122088 |
|
04-Nov-2003 |
fjoe |
Back out the following revisions:
1.36 +73 -60 src/sys/compat/linux/linux_ipc.c 1.83 +102 -48 src/sys/kern/sysv_shm.c 1.8 +4 -0 src/sys/sys/syscallsubr.h
That change was intended to support vmware3, but wantrem parameter is useless because vmware3 uses SYSV shared memory to talk with X server and X server is native application. The patch worked because check for wantrem was not valid (wantrem and SHMSEG_REMOVED was never checked for SHMSEG_ALLOCATED segments).
Add kern.ipc.shm_allow_removed (integer, rw) sysctl (default 0) which when set to 1 allows to return removed segments in shm_find_segment_by_shmid() and shm_find_segment_by_shmidx().
MFC after: 1 week
|
#
116173 |
|
10-Jun-2003 |
obrien |
Use __FBSDID().
|
#
114724 |
|
05-May-2003 |
mbr |
Change the semantics of sysv shm emulation to take a additional argument to the functions shm{at,ctl}1 and shm_find_segment_by_shmid{x}. The BSD semantics didn't allow the usage of shared segment after being marked for removal through IPC_RMID.
The patch involves the following functions: - shmat - shmctl - shm_find_segment_by_shmid - shm_find_segment_by_shmidx - linux_shmat - linux_shmctl
Submitted by: Orlando Bassotto <orlando.bassotto@ieo-research.it> Reviewed by: marcel
|
#
114216 |
|
29-Apr-2003 |
kan |
Deprecate machine/limits.h in favor of new sys/limits.h. Change all in-tree consumers to include <sys/limits.h>
Discussed on: standards@ Partially submitted by: Craig Rodrigues <rodrigc@attbi.com>
|
#
111798 |
|
03-Mar-2003 |
des |
Clean up whitespace and remove register keyword.
|
#
111797 |
|
03-Mar-2003 |
des |
More caddr_t removal, in conjunction with copy{in,out}(9) this time. Also clean up some egregious casts and incorrect use of sizeof.
|
#
108541 |
|
02-Jan-2003 |
alfred |
Add function linux_msg() for regulating output from the linux emulation code, make the emulator use it.
Rename unsupported_msg() to unimplemented_syscall(). Rename some arguments for clarity
Fixup grammar.
Requested by: bde
|
#
104893 |
|
11-Oct-2002 |
sobomax |
- Add support for IPC_64 extensions into shmctl(2), semctl(2) and msgctl(2); - add wrappers for mmap2(2) and ftruncate64(2) system calls; - don't spam console with printf's when VFAT_READDIR_BOTH ioctl(2) is invoked; - add support for SOUND_MIXER_READ_STEREODEVS ioctl(2); - make msgctl(IPC_STAT) and IPC_SET actually working by converting from BSD msqid_ds to Linux and vice versa; - properly return EINVAL if semget(2) is called with nsems being negative.
Reviewed by: marcel Approved by: marcel Tested with: LSB runtime test
|
#
97748 |
|
02-Jun-2002 |
schweikh |
Fix typo in the BSD copyright: s/withough/without/
Spotted and suggested by: des MFC after: 3 weeks
|
#
96840 |
|
18-May-2002 |
marcel |
In msgrcv(), set msgtyp correctly. Hardwiring 0 as the message type yields incorrect behaviour. The hardwiring was present in the very first commit that implemented msgrcv() (revision 1.4) and hasn't been changed since. The native implementation was complete at that time, so there doesn't seem to be a reason for the hardwiring from a technical point of view.
Submitted by: Reinier Bezuidenhout <rbezuide@yahoo.com>
|
#
85623 |
|
28-Oct-2001 |
mr |
Introduce [IPC|SHM]_[INFO|STAT] to shmctl to make `/compat/linux/usr/bin/ipcs -m` happy.
|
#
84067 |
|
27-Sep-2001 |
marcel |
Swap the src and dst arguments of the bcopy added in the previous commit. It ain't memcpy... *cough*
|
#
83955 |
|
26-Sep-2001 |
marcel |
The arg parameter is passed by value in Linux, but not in FreeBSD. We still have to account for a copyin. Make sure the copyin will succeed by passing the FreeBSD syscall a pointer to userspace, albeit one that's automagically mapped into kernel space.
Reported by: mr, Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Tested by: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org>
|
#
83501 |
|
15-Sep-2001 |
mr |
Implement LINUX_[SEM|IPC]_[STAT|INFO] to make /compat/linux/usr/bin/ipcs -s happy.
PR: kern/29698 (part) Reviewed by: audit
|
#
83366 |
|
12-Sep-2001 |
julian |
KSE Milestone 2 Note ALL MODULES MUST BE RECOMPILED make the kernel aware that there are smaller units of scheduling than the process. (but only allow one thread per process at this time). This is functionally equivalent to teh previousl -current except that there is a thread associated with each process.
Sorry john! (your next MFC will be a doosie!)
Reviewed by: peter@freebsd.org, dillon@freebsd.org
X-MFC after: ha ha ha ha
|
#
83221 |
|
08-Sep-2001 |
marcel |
Round of cleanups and enhancements. These include (in random order):
o Introduce private types for use in linux syscalls for two reasons: 1. establish type independence for ease in porting and, 2. provide a visual queue as to which syscalls have proper prototypes to further cleanup the i386/alpha split. Linuxulator types are prefixed by 'l_'. void and char have not been "virtualized".
o Provide dummy functions for all syscalls and remove dummy functions or implementations of truely obsolete syscalls.
o Sanitize the shm*, sem* and msg* syscalls.
o Make a first attempt to implement the linux_sysctl syscall. At this time it only returns one MIB (KERN_VERSION), but most importantly, it tells us when we need to add additional sysctls :-)
o Bump the kenel version up to 2.4.2 (this is not the same as the KERN_VERSION MIB, BTW).
o Implement new syscalls, of which most are specific to i386. Our syscall table is now up to date with Linux 2.4.2. Some highlights: - Implement the 32-bit uid_t and gid_t bases syscalls. - Implement a couple of 64-bit file size/offset bases syscalls.
o Fix or improve numerous syscalls and prototypes.
o Reduce style(9) violations while I'm here. Especially indentation inconsistencies within the same file are addressed. Re-indenting did not obfuscate actual changes to the extend that it could not be combined.
NOTE: I spend some time testing these changes and found that if there were regressions, they were not caused by these changes AFAICT. It was observed that installing a RH 7.1 runtime environment did make matters worse. Hangs and/or reboots have been observed with and without these changes, so when it failed to make life better in cases it doesn't look like it made it worse.
|
#
69539 |
|
02-Dec-2000 |
marcel |
Don't auto-generate the syscalls.
|
#
68583 |
|
10-Nov-2000 |
marcel |
Revert auto-generation. The Alpha port is broken. Syncing with it is wrong.
|
#
68519 |
|
09-Nov-2000 |
marcel |
Sync with Alpha: Do not use sysent.c, proto.h and syscall.h in source tree; use auto-generated versions.
|
#
68214 |
|
01-Nov-2000 |
gallatin |
Support for the linux ipc syscalls on the alpha, where each one has its own syscall rather than going through a demux function like linux_ipc() on i386
|
#
68201 |
|
01-Nov-2000 |
obrien |
The MI/MD split wasn't perfect and the MI files need hacks for the AlphaLinux compat bits. This will be better cleaned up soon.
Agreed to what ever was necessary by: marcel
|
#
64906 |
|
21-Aug-2000 |
marcel |
Update include directives.
Make the sem*, msg* and shm* function non-static as they are called from MD code.
Move linux_ipc to MD code.
|
#
51602 |
|
23-Sep-1999 |
marcel |
Linux doesn't complain if you remove a msg queue that doesn't exist (given the proper permissions).
|
#
50477 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
36587 |
|
02-Jun-1998 |
jkh |
".. x11amp appears to be calling shmctl(id, IPC_RMID, 0) and the emulation layer does not like the null shmid_ds buffer pointer. The emulation layer returned an error without ever calling FreeBSD's shmctl, so the segments were not being deleted when the reference count went to zero."
Submitted by: Kevin Street <street@iname.com>
|
#
30994 |
|
06-Nov-1997 |
phk |
Move the "retval" (3rd) parameter from all syscall functions and put it in struct proc instead.
This fixes a boatload of compiler warning, and removes a lot of cruft from the sources.
I have not removed the /*ARGSUSED*/, they will require some looking at.
libkvm, ps and other userland struct proc frobbing programs will need recompiled.
|
#
30804 |
|
28-Oct-1997 |
kato |
Implement linux_semop, linux_semget and linux_semctl.
PR: 4355
|
#
28039 |
|
10-Aug-1997 |
sos |
Ops the arguments to copyin was in the wrong order.. This has survived since the first version, sigh.
|
#
22975 |
|
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
16322 |
|
12-Jun-1996 |
gpalmer |
Clean up -Wunused warnings.
Reviewed by: bde
|
#
14331 |
|
02-Mar-1996 |
peter |
Mega-commit for Linux emulator update.. This has been stress tested under netscape-2.0 for Linux running all the Java stuff. The scrollbars are now working, at least on my machine. (whew! :-)
I'm uncomfortable with the size of this commit, but it's too inter-dependant to easily seperate out.
The main changes:
COMPAT_LINUX is *GONE*. Most of the code has been moved out of the i386 machine dependent section into the linux emulator itself. The int 0x80 syscall code was almost identical to the lcall 7,0 code and a minor tweak allows them to both be used with the same C code. All kernels can now just modload the lkm and it'll DTRT without having to rebuild the kernel first. Like IBCS2, you can statically compile it in with "options LINUX".
A pile of new syscalls implemented, including getdents(), llseek(), readv(), writev(), msync(), personality(). The Linux-ELF libraries want to use some of these.
linux_select() now obeys Linux semantics, ie: returns the time remaining of the timeout value rather than leaving it the original value.
Quite a few bugs removed, including incorrect arguments being used in syscalls.. eg: mixups between passing the sigset as an int, vs passing it as a pointer and doing a copyin(), missing return values, unhandled cases, SIOC* ioctls, etc.
The build for the code has changed. i386/conf/files now knows how to build linux_genassym and generate linux_assym.h on the fly.
Supporting changes elsewhere in the kernel:
The user-mode signal trampoline has moved from the U area to immediately below the top of the stack (below PS_STRINGS). This allows the different binary emulations to have their own signal trampoline code (which gets rid of the hardwired syscall 103 (sigreturn on BSD, syslog on Linux)) and so that the emulator can provide the exact "struct sigcontext *" argument to the program's signal handlers.
The sigstack's "ss_flags" now uses SS_DISABLE and SS_ONSTACK flags, which have the same values as the re-used SA_DISABLE and SA_ONSTACK which are intended for sigaction only. This enables the support of a SA_RESETHAND flag to sigaction to implement the gross SYSV and Linux SA_ONESHOT signal semantics where the signal handler is reset when it's triggered.
makesyscalls.sh no longer appends the struct sysentvec on the end of the generated init_sysent.c code. It's a lot saner to have it in a seperate file rather than trying to update the structure inside the awk script. :-)
At exec time, the dozen bytes or so of signal trampoline code are copied to the top of the user's stack, rather than obtaining the trampoline code the old way by getting a clone of the parent's user area. This allows Linux and native binaries to freely exec each other without getting trampolines mixed up.
|
#
13334 |
|
08-Jan-1996 |
peter |
reran makesyscalls
Always call the SYSV ipc functions, stubs will take their place if necessary.
|
#
13264 |
|
05-Jan-1996 |
wollman |
The Linux emulator depends on SYSV IPC but doesn't actually reference the options.
|
#
13111 |
|
29-Dec-1995 |
sos |
My first shot at get sound to work on the emulator. Inspired by the work Amancio Hasty has done, but implemented somewhat differently.
|
#
12867 |
|
15-Dec-1995 |
peter |
Update linux_ipc.c to use the now generated prototypes for the shm* calls it makes while emulating the linux equivalents.
|
#
12458 |
|
22-Nov-1995 |
bde |
Completed function declarations and added prototypes.
Removed some unnecessary #includes.
Fixed warnings about nested externs.
|
#
9313 |
|
25-Jun-1995 |
sos |
First incarnation of our Linux emulator or rather compatibility code. This first shot only incorporaties so much functionality that DOOM can run (the X version), signal handling is VERY weak, so is many other things. But it meets my milestone number one (you guessed it - running DOOM).
Uses /compat/linux as prefix for loading shared libs, so it won't conflict with our own libs.
Kernel must be compiled with "options COMPAT_LINUX" for this to work.
|