bob@dhw68k.cts.com (Bob Best) (05/26/89)
I have managed to compile the Evans protected mode minix kernel using the 1.1 compiler binaries. I had major problems with /lib/cpp on the *.x files which I finally processed using Xenix. Unfortunately, although the kernel boots and runs, it eventually panics and aborts with a 'panic - MM can't reply' message. While the system is running, I am receiving messages of the form 'tty_reply return status is ...' Bruce, if you or any other hacker out there has a clue, please post your suggestions. I don't trust the code generated by the 1.1 compiler, but I have used it to compile all previous versions of Minix. All the sources used were verified successfully against the crc lists. -- Bob Best uucp: {spsd, zardoz, felix}!dhw68k!bob InterNet: bob@dhw68k.cts.com
bob@dhw68k.cts.com (Bob Best) (05/28/89)
In article <23213@dhw68k.cts.com> I wrote: >I have managed to compile the Evans protected mode minix kernel >using the 1.1 compiler binaries. I had major problems with /lib/cpp >on the *.x files which I finally processed using Xenix. The problem is that 1.1 cpp does not remove C comments from the output. If you use this binary, you should remove the comments from the .x files before processing. >Unfortunately, >although the kernel boots and runs, it eventually panics and aborts >with a 'panic - MM can't reply' message. While the system is running, >I am receiving messages of the form 'tty_reply return status is ...' >Bruce, if you or any other hacker out there has a clue, please post >your suggestions. I don't trust the code generated by the 1.1 compiler, >but I have used it to compile all previous versions of Minix. The problem is in the p2_s_call and s_call functions in mpx286.x and mpx88.x, respectively. I will be posting unofficial patches, but the fix requires saving the si register prior to 'call _sys_call' in both of these procedures. The 1.1 compiler was NOT preserving the si register on function calls. For example, use the following: push si push bx push ax push cx call _sys_call add sp,#6 pop si mov AXREG(si),ax The moral of all of this is quite simple: Using the 1.1 compiler is bound to leave you chasing bugs that don't exist. -- Bob Best uucp: {spsd, zardoz, felix}!dhw68k!bob InterNet: bob@dhw68k.cts.com