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