|
|
1.1 ! root 1: Return-Path: <[email protected]> ! 2: Date: Mon, 10 Apr 89 10:13:45 +0300 ! 3: From: Jyrki Kuoppala <[email protected]> ! 4: Sender: [email protected] ! 5: To: [email protected] ! 6: Subject: Kernel fix needed for Altos 3068 to get coff-encapsulation working right ! 7: Organization: Helsinki University of Technology, Finland. ! 8: ! 9: Here's a description how to fix a kernel bug in Altos 3068 and get ! 10: gcc-compiled programs working. ! 11: ! 12: Author: Jyrki Kuoppala ([email protected]) ! 13: Last modified: Mon Apr 10 09:28:40 1989 ! 14: ! 15: There's a bug in the Altos 3068 kernel that causes gcc-compiled ! 16: programs to fail in certain situations when the machine has a heavy ! 17: load and also in some other situations. The bug exists at least in ! 18: SVR 2.2 1.0gT1 and SVR 2.2 1.0e. ! 19: ! 20: If you have source code to your system, apply the following change to ! 21: os/exec.c (function gethead): ! 22: ! 23: Change the lines containing ! 24: ! 25: u.u_exdata.ux_tstart = sizeof(struct naout) + ! 26: sizeof(struct filhd) + (ep->ef.nscns * sizeof(struct scnhdr)); ! 27: ! 28: to ! 29: ! 30: u.u_exdata.ux_tstart = u.u_exdata.ux_txtorg; ! 31: ! 32: If you only have binary, use sdb to find out the address of the ! 33: previous lines (on our system it's gethead+0x140) and use your ! 34: favourite binary editor to change the bytes '3036 0162 fffc 0002 0280 ! 35: 0000' to '23f9 01fb f4ca 01fb f4c2 6016'. This may or may not work in ! 36: your case, depending on the version of the operating system and the ! 37: phase of the moon. ! 38: ! 39: Here's what is just before gethead+0x140 to ease finding out the right place: ! 40: ! 41: 0x9224 (gethead+0x122): 23f9 01fb f4ca 01fb f4ce mov.l &0x1fbf4ca.L,&0 ! 42: x1fbf4ce.L [] ! 43: 0x922e (gethead+0x12c): 23f9 01fb f4c6 01fb f4ca mov.l &0x1fbf4c6.L,&0 ! 44: x1fbf4ca.L [] ! 45: 0x9238 (gethead+0x136): 23f9 01fb f4c2 01fb f4c6 mov.l &0x1fbf4c2.L,&0 ! 46: x1fbf4c6.L [] ! 47: ! 48: Good luck ! ! 49: ! 50: //Jyrki ! 51: ! 52: [email protected] ! 53:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.