From: Qi Xia (qx@shire.math.columbia.edu)
Date: 11/21/92


From: qx@shire.math.columbia.edu (Qi Xia)
Subject: Re: How to upgrade to pl5?
Date: Sat, 21 Nov 1992 21:51:13 GMT


In article <1996@lysator.liu.se>, Jan Lien wrote
>I originally downloaded linux 0.97 and got it working from my hard
>disk, without much problems. I have upgraded to 0.98 pl1, by
>compiling it myself, and that works too. Now I have tried upgrading
>to 0.98pl4 and 0.98pl5, but with no success. I can recompile linux
>0.98-5 with no problems, when I boot with 0.98-1. I boot from
>floppy, so there is no lilo or shoelace or so involved.
>
>The problems start when I boot with 0.98-5. I can log in ok, but:
>
>- I can not compile anything. I use emacs 18.59 (Rick's version
>.........
>- mount does not work. I use mount from HJ Lu root disk. It says
>.........
>What is the recommended way to upgrade from one version to another?
>Must I do: repartition my hard disk, and install everything from
>pre-prepared root floppy disks again?

I had the similar experience. In my case, bash broken.
At first it seemed that make doesn't work properly.
I applied Evans' one line patch. Instead dumping core, 0.98.5 reports
which program write to code space. First bash was caught, then a
couple of others. I ftped bash from prep.ai.mit.edu, compiled with
patched 0.98.5. It works fine as a good citizen. bash doesn't been
compiled "out of box". One need modify many places, basicly, some
comflict definitions. One thing is crutial. Comment out initiation
of sys_siglist[]. This is what commit crime. After install newly made
bash, 0.98.5 doesn't complain much. When a couple of other one
recompiled, 0.98.5 seem happy. I will switch back to official 0.98.5
after a little more testing.

If you need patch for bash, send me email. Here is Evens' patch.
[Evans' patch (Doug Evans, dje@sspiff.cygnus.com)]--------------------

*** memory.c= Tue Nov 17 19:23:22 1992
--- memory.c Wed Nov 18 08:08:39 1992
***************
*** 467,473 ****
        if (tsk == current && tsk->executable && CODE_SPACE(address, current)) {
                /* don't send SIGSEGV when in kernel or v86 mode */
                if (user_esp)
! send_sig(SIGSEGV, tsk, 1);
                /* Note that we still do the copy-on-write: if the process catches
                 * SIGSEGV we want things to work..
                 */
--- 467,473 ----
        if (tsk == current && tsk->executable && CODE_SPACE(address, current)) {
                /* don't send SIGSEGV when in kernel or v86 mode */
                if (user_esp)
! printk("%s writes to code space\n", tsk->comm);
                /* Note that we still do the copy-on-write: if the process catches
                 * SIGSEGV we want things to work..
                 */

--