Re: 9.0-CURRENT r220692 && cc1: internal compiler error: Segmentation fault: 11

From: David Woodhouse <dwmw2_at_infradead.org>
Date: Tue, 26 Apr 2011 10:22:21 +0100
On Tue, 2011-04-26 at 10:04 +0200, Matthias Apitz wrote:
> 
> Hello,
> 
> I'm trying to compile /usr/ports/mail/evolution-exchange/ and the gcc
> crashes with:
> 
> [root_at_vm-9Current /usr/ports/mail/evolution-exchange]#  LANG=C make
> ===>  Building for evolution-exchange-2.32.1_1
> gmake  all-recursive
> gmake[1]: Entering directory
> `/usr/ports/mail/evolution-exchange/work/evolution-exchange-2.32.1'
> Making all in server
> gmake[2]: Entering directory
> `/usr/ports/mail/evolution-exchange/work/evolution-exchange-2.32.1/server'
> Making all in xntlm
> gmake[3]: Entering directory
> `/usr/ports/mail/evolution-exchange/work/evolution-exchange-2.32.1/server/xntlm'
>   CC     libxntlm_la-xntlm.lo
> cc1: internal compiler error: Segmentation fault: 11
> 
> Some notes about this: 
> - the system runs in a VMworkstation 7.x
> - it has already compliled kernel, userland and ~1000 ports without any
>   crash, i.e. it is *not* the typical hardware related crash;
> - the above mentioned version evolution-exchange-2.32.1_1 is a fake, in
>   real it is compiling the original evolution-exchange-2.32.3 sources;
> - it is fully reproduceable
> 
> What next?
> (David, should it be posted to evolution_at_gnome.org as well?)

Looks like a compiler bug, so probably not. 

What version of GCC? You probably want to file a PR at gcc.gnu.org.

Run 'make V=1' so you can see the compiler command line being used, and
then you can run it manually from the command line.

Then try to cut the test case down as much as possible. Your task is to
delete as *much* code as you can from xntlm.c, and still reproduce the
problem. Try removing (or comment out the body of) one function at a
time, working backwards from the end of the file. Ideally you'll be left
with just a *single* function that triggers the compiler bug — and then
you can remove lines of code from *that* to make it simpler, too. It
doesn't matter that it will no longer *work*, as long as it still makes
the compiler barf (and is still valid C code). The smaller your test
case is, the better.

Finally, run the compiler with '-dD -save-temps' added to the command
line. It'll save its intermediate files, including a '.i' file that is
completely preprocessed source. It contains everything it needed from
the header files on your system, so it can be compiled *anywhere*.

Then you can go to gcc.gnu.org/bugzilla and file a PR.

In the meantime, however, if you don't need evolution-exchange then you
can just ignore this problem and get on with the other things you were
trying to test?


-- 
David Woodhouse                            Open Source Technology Centre
David.Woodhouse_at_intel.com                              Intel Corporation
Received on Tue Apr 26 2011 - 07:22:24 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:13 UTC