dosemu & newer kernels

Steven N. Hirsch (hirsch@uvm-gen.emba.uvm.edu)
Fri, 19 Apr 1996 12:07:41 -0400


As of 1.3.89 (or so) my old, trusty, non-emumodule dosemu-0.60.4 stopped working
:-(. Strace suggests that this is the culprit:

-- mmap(0, 1048576, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_FIXED|0x20,
4294967295, 0) = 0
brk(0x813d000) = 0x813d000
shmget(IPC_PRIVATE, 65520, 0x1ed|0644) = 6
shmget(IPC_PRIVATE, 65520, 0x1ed|0644) = 7
shmat(7, 0x1, SHM_REMAP|SHM_RND) = 0
shmat(7, 0x100000, SHM_REMAP) = 0x100000
shmat(6, 0x812a228, SHM_REMAP) = -1 EINVAL (Invalid argument)
^^^^^^^^^^^^^^^^---- Here be dragons..
rmdir("/tmp/dosem00117aaa") = 0
setitimer(ITIMER_REAL, {it_interval={0, 0}, it_value={0, 0}}, NULL) = 0
sigaction(SIGALRM, {0x804bd20, [ALRM], SA_RESTART}, NULL) = 0
sigaction(SIGSEGV, {0x804bd20, [ALRM], SA_RESTART}, NULL) = 0
sigaction(SIGILL, {0x804bd20, [ALRM], SA_RESTART}, NULL) = 0
sigaction(SIGFPE, {0x804bd20, [ALRM], SA_RESTART}, NULL) = 0
sigaction(SIGTRAP, {0x804bd20, [ALRM], SA_RESTART}, NULL) = 0
close(0) = 0
close(0) = -1 EBADF (Bad file number)
close(0) = -1 EBADF (Bad file number)
unlink("") = -1 ENOENT (No such file or directory)
_exit(45) = ?

Question is, why does shmat fail? I'm far from an expert on the Linux mm system,
but perhaps a problem now exists. Again, perhaps dosemu's behavior was taking
advantage of something that had actually been broken until recently :-)..

Any takers? Which is it?

- Steve

_________________________________________________________
|Steven N. Hirsch "Anything worth doing is worth |
|University of Vermont overdoing.." - Hunter S. Thompson |
|Computer Science / EE |
------------------------------------------------------------