Bug 5512 - libsoup-2.4: gcc internal compiler error: in dwarf2out_var_location, at dwarf2out.c:20810
Summary: libsoup-2.4: gcc internal compiler error: in dwarf2out_var_location, at dwarf...
Status: RESOLVED FIXED
Alias: None
Product: OE-Core
Classification: Build System, Metadata & Runtime
Component: devtools / tool chain (show other bugs)
Version: 1.6
Hardware: x86 Multiple
: Medium normal
Target Milestone: 1.6 M5
Assignee: Hongxu Jia
QA Contact:
URL:
Whiteboard:
Depends on:
Blocks:
 
Reported: 2013-11-11 08:14 UTC by Wenzong.Fan
Modified: 2014-03-27 02:00 UTC (History)
8 users (show)

See Also:
OS type for building Yocto: ---
Type of Regression: ---
Verified:
Documentation change: Don't know


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Wenzong.Fan 2013-11-11 08:14:10 UTC
Test steps:

1) Edit local.conf with:

    + MACHINE ?= "qemumips"
    + DEBUG_BUILD = "1"

2) Run 'bitbake libsoup-2.4'

Errors:

| /buildarea/wfan/yocto/libsoup-2.4-ICE/tmp/work/mips32-poky-linux/libsoup-2.4/2.42.1-r0/libsoup-2.42.1/tests/header-parsing.c:1263:1: internal compiler error: in dwarf2out_var_location, at dwarf2out.c:20810
|  }
|  ^
| Please submit a full bug report,
| with preprocessed source if appropriate.
| See <http://gcc.gnu.org/bugs.html> for instructions.
| {standard input}: Assembler messages:
| {standard input}: Warning: missing .end at end of assembly
| {standard input}: Error: open CFI at the end of file; missing .cfi_endproc directive
| make[3]: *** [header-parsing.o] Error 1
| make[3]: *** Waiting for unfinished jobs....

Workaround:

Build libsoup-2.4 with CFLAGS += "-O2"

This is something error about mips-gcc optimization, while the DEBUG_OPTIMIZATION enabled, '-O' could cause this ICE.
Comment 2 Richard Purdie 2014-01-17 11:55:53 UTC
Assigning to Robert since I believe some WindRiver people are going to take a look at this.
Comment 3 Hongxu Jia 2014-03-10 09:14:39 UTC
Hi Laurentiu,

I did a search on the gcc 4.8.2 in yocto, and the
suggested fixes have already been merged, how about
use Wenzong's Workaround fix?

//Hongxu

> http://gcc.gnu.org/bugzilla/show_bug.cgi?id=48214
vim gcc/ChangeLog-2011:
34612 2011-03-21  Uros Bizjak  <ubizjak@gmail.com>
34613 
34614     PR debug/48214
34615     * config/alpha/alpha.c (alpha_pad_noreturn): Do not emit an unop
34616     between a call and its CALL_ARG_LOCATION note.

> 
> which suggests some fixes done for other targets:
> http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=171193
vim gcc/ChangeLog-2011:
34801 2011-03-20  Ramana Radhakrishnan  <ramana.radhakrishnan@linaro.org>
34802 
34803     PR debug/48023
34804     * config/arm/arm.c (create_fix_barrier): Do not emit a minipool
34805     between a call and its CALL_ARG_LOCATION note.

> http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=171185
vim gcc/ChangeLog-2011:
34807 2011-03-19  Kaz Kojima  <kkojima@gcc.gnu.org>
34808 
34809     PR debug/48178
34810     * config/sh/sh.c (find_barrier): Don't emit a constant pool
34811     between a call and its corresponding CALL_ARG_LOCATION note.

> http://gcc.gnu.org/viewcvs/gcc?view=revision&revision=171156
vim gcc/ChangeLog-2011:
34847 2011-03-18  Andreas Krebbel  <Andreas.Krebbel@de.ibm.com>
34848 
34849     * config/s390/s390.c (s390_chunkify_start): Prevent literal pool
34850     splitting between a call and its corresponding CALL_ARG_LOCATION note.