mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-12-05 07:59:23 +00:00
a4cd5630b0
non-i386, non-unix, and generatable files have been trimmed, but can easily be added in later if needed. gcc-2.7.2.1 will follow shortly, it's a very small delta to this and it's handy to have both available for reference for such little cost. The freebsd-specific changes will then be committed, and once the dust has settled, the bmakefiles will be committed to use this code.
56 lines
1.8 KiB
Plaintext
56 lines
1.8 KiB
Plaintext
Since COFF-encapsulation is obsolete, this may not be needed anymore.
|
|
|
|
Return-Path: <jkp@sauna.hut.fi>
|
|
Date: Mon, 10 Apr 89 10:13:45 +0300
|
|
From: Jyrki Kuoppala <jkp@sauna.hut.fi>
|
|
Sender: jkp@sauna.hut.fi
|
|
To: info-gcc@prep.ai.mit.edu
|
|
Subject: Kernel fix needed for Altos 3068 to get coff-encapsulation working right
|
|
Organization: Helsinki University of Technology, Finland.
|
|
|
|
Here's a description how to fix a kernel bug in Altos 3068 and get
|
|
gcc-compiled programs working.
|
|
|
|
Author: Jyrki Kuoppala (jkp@cs.hut.fi)
|
|
Last modified: Mon Apr 10 09:28:40 1989
|
|
|
|
There's a bug in the Altos 3068 kernel that causes gcc-compiled
|
|
programs to fail in certain situations when the machine has a heavy
|
|
load and also in some other situations. The bug exists at least in
|
|
SVR 2.2 1.0gT1 and SVR 2.2 1.0e.
|
|
|
|
If you have source code to your system, apply the following change to
|
|
os/exec.c (function gethead):
|
|
|
|
Change the lines containing
|
|
|
|
u.u_exdata.ux_tstart = sizeof(struct naout) +
|
|
sizeof(struct filhd) + (ep->ef.nscns * sizeof(struct scnhdr));
|
|
|
|
to
|
|
|
|
u.u_exdata.ux_tstart = u.u_exdata.ux_txtorg;
|
|
|
|
If you only have binary, use sdb to find out the address of the
|
|
previous lines (on our system it's gethead+0x140) and use your
|
|
favourite binary editor to change the bytes '3036 0162 fffc 0002 0280
|
|
0000' to '23f9 01fb f4ca 01fb f4c2 6016'. This may or may not work in
|
|
your case, depending on the version of the operating system and the
|
|
phase of the moon.
|
|
|
|
Here's what is just before gethead+0x140 to ease finding out the right place:
|
|
|
|
0x9224 (gethead+0x122): 23f9 01fb f4ca 01fb f4ce mov.l &0x1fbf4ca.L,&0
|
|
x1fbf4ce.L []
|
|
0x922e (gethead+0x12c): 23f9 01fb f4c6 01fb f4ca mov.l &0x1fbf4c6.L,&0
|
|
x1fbf4ca.L []
|
|
0x9238 (gethead+0x136): 23f9 01fb f4c2 01fb f4c6 mov.l &0x1fbf4c2.L,&0
|
|
x1fbf4c6.L []
|
|
|
|
Good luck !
|
|
|
|
//Jyrki
|
|
|
|
jkp@cs.hut.fi
|
|
|