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..
*/
--