From: jefftep@cs.utexas.edu (Jeffrey Grills)
Newsgroups: comp.os.linux
Subject: Re: GCC 2.2.2d problems
Date: 7 Sep 1992 21:26:21 -0500
Organization: CS Dept, University of Texas at Austin
NNTP-Posting-Host: ozona.cs.utexas.edu

jablo@diku.dk (Jacob Martin Bohn Lorensen) writes:
>Recently I got GCC 2.2.2d. I even used the install.2.x shell
>script with no problems. :-)
>
>But when I try to compile the kernel, or any program bigger than
>"hello world", cpp gets a signal 11 (SIGSEGV ?) and dumps core.
>
>Any suggestions?
>
>Mange venlige hilsener,
>Jacob.
>-- 
>No signature yet !


Ah, that problem.  Sorry I don't have a fix for you.  No one ever found
a proper solution for me when I had that problem.  I will tell you (and
everyone else) what I have done.

I *FINALLY* got the kernel compiled, after 5 weeks of trying!!!

You don't mention what version of the kernel you are using.  I've
found GCC2.2.2d likes me a lot more under 0.97pl2.  I haven't tried
anything later yet.

Anyways, while attempting to make the kernel, gcc would eventually
SIGSEGV (from cc1), dump core, and die.  Then, afterwards, *any* program
I would try to compile would cause gcc to die.  No idea why.  So, I
reboot whenever this happens to me (still does).

I managed to get gcc to compile through to the chr_dev directories
while making the kernel.  It died on console.c.  I rebooted, and tried
to compile that file by hand, it died, I rebooted, and tried to compile
it by hand without the -O6 option (which I assume is optimize).  It died
a more spectacular (and informative) death.  This is a recreation of
what happened (since I couldn't find script anywhere):

  % gcc -Wall -O6 -fomit-frame-pointer -c console.c
  Segmentation fault (core dumped)

Here I rebooted.

  % gcc -Wall -fomit-frame-pointer -c console.c
  console.c: In function 'scrup'
  console.c:360: fixed or forbidden register was spilled.
    this may be due to a compiler bug or to impossible asm statements

Well, I found that interesting.  I don't know quite what to make of that,
but it reaffirmed my believe that the problem was in GGC.

I rebooted.  I tried to make again.
It failed on console.c again.  I rebooted.  I compiled console.c again
by hand, as in the first example.  To my suprised, it worked.  I
tried make again.  Finally, after a little more tweaking in this
manner, the kernel compiled.

I don't believe it was ever an install problem, because I don't think
I could have gotten through the kernel at all.  It seems like a
particularly obtrusive bug in gcc.  Last time I complained about
this here, I got very few suggestions, but I did have about 10
people mail me, telling me they had the same problem.  I don't think
this is a very widespread problem, but I believe enough of us have
it to warrent fixing it.

Here's my setup, so you people know:

  intel 386 33 64k cache
  ami 05/05/91 bios
  maxtor 7213a 200mb ide hd
  tseng 4000 1mb video
  linux 0.97pl2
  rootimage 0.97.1
  (in dos: dr dos 6.0 pl april 92)

I took the 'touch config.h' (or whatever) out of the Makefile to
reduce the amount of work I had to do when recompiling.  I
have tried diabling the cache.  I have tried running in non-turbo
mode.  I have tried compiling on another motherboard (same HD
and HD controller).  None of these were particularly sucessful....

Now, to patch to pl4, recompile (hopefully!), install X, and then
I can start to work on more useful stuff, like slip and/or qic80 
support...  (Smile)

Hope this helps you a little.  It's about the best advice I've seen
on this problem.

-- 
-------------------------+--------------------------------------------------
jeff grills              | "Sometimes i see myself so clearly, because I
jefftep@cs.utexas.edu    |   see nothing at all.  This feeling of emptiness
Undergrad Lab, UT Austin |   flees my soul, leaving even less behind."  -me
Newsgroups: comp.os.linux