LWN.net Logo

Building the Debian archive with GCC 4.4

From:  Martin Michlmayr <tbm-AT-cyrius.com>
To:  gcc-AT-gcc.gnu.org, debian-gcc-AT-lists.debian.org
Subject:  Status of GCC 4.4 (Debian)
Date:  Sat, 13 Sep 2008 17:24:19 +0300
Message-ID:  <20080913142419.GA2026@deprecation.cyrius.com>

Given that GCC moved to stage 3 recently, I decided to build the Debian
archive to identify new issues before GCC 4.4 is released.  I compiled
the entire Debian archive (just under 8000 packages that need to be
compiled) on x86_64, ia64 and powerpc, and about 1800 packages on arm
(EABI).  I also wanted to test GCC on alpha, mips and sparc but ran
into compiler errors during bootstrap.

In total, I filed 28 new bugs and ran into 7 known issues.  64% of the
bugs I filed have already been fixed and many of those that are still
open have already received some attention.  I'd like to thank the GCC
community for such an oustanding job dealing with incoming bug reports
and fixing compiler regressions.

Here's the complete list of issues I ran into:

New bugs, fixed already: 18

 - PR37342: same canonical type node for different types void...
 - PR37343: ICE in expand_expr_real_1, at expr.c:7290
 - PR37345: Segfault in decl_function_context (TYPE_MAIN_VARIANT)
 - PR37346: insns needed body finalized, verify_cgraph_node failed
 - PR37353: ICE: vector VEC(gimple,base) push domain error, in tree_call_cdce at
tree-call-cdce.c:890
 - PR37354: ICE in find_func_aliases, at tree-ssa-structalias.c:3906
 - PR37356: ICE in gsi_insert_seq_nodes_after, at gimple-iterator.c:222
 - PR37368: ICE: in make_decl_rtl, at varasm.c:1297
 - PR37382: ICE in extract_insn, at recog.c:2027
 - PR37385: ICE in set_mem_alias_set, at emit-rtl.c:1789
 - PR37387: ICE in extract_range_from_binary_expr, at tree-vrp.c:2145
 - PR37393: error: EH edge 10->12 is missing
 - PR37417: error: type mismatch in binary expression, verify_gimple failed
 - PR37419: memory corruption
 - PR37432: ICE in VN_INFO, at tree-ssa-sccvn.c:180
 - PR37433: tree check: expected function_decl, have string_cst in ccp_fold, at
tree-ssa-ccp.c:1050
 - PR37434: ICE in extract_insn, at recog.c:2027
 - PR37474: vect_supported_slp_permutation_p memory corruption

New bugs, not fixed yet: 10

 - PR37344: sparc bootstrap fails with Bus error in libgcc2.c
 - PR37349: bootstrap broken on Alpha: undefined reference to _Jv_RegisterClasses
 - PR37381: ICE in ia64_speculate_insn, at config/ia64/ia64.c:6902
 - PR37392: Segfault in verify_ssa: !gimple_nop_p (stmt)
 - PR37394: Segfault in ia64_variable_issue with -O -fschedule-insns2
 - PR37395: mips bootstrap problem
 - PR37418: error: type mismatch in address expression, verify_gimple failed
 - PR37461: ICE in find_or_generate_expression, at tree-ssa-pre.c:2691
 - PR37482: definition in block 51 follows the use for SSA_NAME with -maltivec
 - PR37483: Segfault in noce_try_sign_mask (ifcvt.c): b_unconditional

Known bugs, fixed already: 4

 - PR37296: bootstrap failure compiling libgcc (e.g. on arm)
 - PR37333: sqlscan.c:2068: internal compiler error: in ira_flattening, at ira-build.c:2146
 - PR37357: undefined referenced when linking C++ code
 - PR37358: IPA-CP generates duplicated symbols at -O3

Known bugs, not fixed yet: 3

 - PR37146: secqstring.cpp:426: error: non-trivial conversion at assignment
 - PR37285: ICE in purge_dead_edges, at cfgrtl.c:2327
 - PR37456: ICE: verify_flow_info failed: control flow in the middle of
            basic block, BB 3 can not throw but has EH edges

The testing was done on an EM64T system donated to Debian by Intel and
hosted by Stephen Frost, an IA64 hosted by the Gelato Federation, an
IBM OpenPower hosted at the University of Augsburg and a Marvell 78x00
development board hosted by Voipio Riku.

Affected packages:

 - PR37146: secqstring.cpp:426: error: non-trivial conversion at assignment
   - pinentry_0.7.5-2
   - qt-x11-free

 - PR37285: ICE in purge_dead_edges, at cfgrtl.c:2327
   - prelink

 - PR37333: sqlscan.c:2068: internal compiler error: in ira_flattening, at ira-build.c:2146
   - orafce
   - wireshark
   - libapache2-mod-python

 - PR37342: same canonical type node for different types void...
   - atlas-cpp
   - centerim
   - pasmo
   - oprofile
   - libsigc++-2.0
   - tagpy
   - avogadro
   - bisonc++
   - mior
   - vlc

 - PR37343: ICE in expand_expr_real_1, at expr.c:7290
   - lopster
   - pilrc
   - xserver-xorg-video-openchrome
   - vrweb
   - gprolog
   - scheme48
   - dmucs
   - goocanvas
   - openbabel
   - jpilot
   - gpredict
   - paraview
   - freetds
   - vtk
   - emacs22
   - cacao-oj6
   - asterisk-oh323
   - openjdk-6
   - tpm-tools

 - PR37345: Segfault in decl_function_context (TYPE_MAIN_VARIANT)
   - mkvtoolnix
   - orpheus
   - vnc
   - cultivation
   - libccscript3
   - stellarium
   - vdr
   - fluxbox
   - vdr-plugin-epgsearch
   - muse
   - rlplot
   - libghemical
   - gravitation
   - tora
   - doxygen
   - libgnomeuimm2.6
   - tomatoes
   - kscope
   - krusader
   - epos

 - PR37346: insns needed body finalized, verify_cgraph_node failed
   - libgenome

 - PR37353: ICE: vector VEC(gimple,base) push domain error, in tree_call_cdce at
tree-call-cdce.c:890
   - qucs

 - PR37354: ICE in find_func_aliases, at tree-ssa-structalias.c:3906
   - traverso
   - sidplay-libs

 - PR37356: ICE in gsi_insert_seq_nodes_after, at gimple-iterator.c:222
   - pokerth
   - ace
   - quantlib-swig
   - quantlib

 - PR37357: undefined referenced when linking C++ code
   - a lot of packages

 - PR37358: IPA-CP generates duplicated symbols at -O3
   - a lot of packages

 - PR37368: ICE: in make_decl_rtl, at varasm.c:1297
   - xserver-xorg-video-mga
   - gtkpod
   - gnupg2
   - pymol
   - vertex
   - wmi
   - gnupg
   - obconf
   - abiword

 - PR37385: ICE in set_mem_alias_set, at emit-rtl.c:1789
   - libsdl-erlang

 - PR37387: ICE in extract_range_from_binary_expr, at tree-vrp.c:2145
   - gap

 - PR37393: error: EH edge 10->12 is missing
   - qtpfsgui

 - PR37417: error: type mismatch in binary expression, verify_gimple failed
   - asc
   - magnus

 - PR37419: memory corruption
   - gutenprint

 - PR37432: ICE in VN_INFO, at tree-ssa-sccvn.c:180
   - postgis

 - PR37433: tree check: expected function_decl, have string_cst in ccp_fold, at
tree-ssa-ccp.c:1050
   - odt2txt
   - kvm

 - PR37434: ICE in extract_insn, at recog.c:2027
   - framewave

 - PR37381: ICE in ia64_speculate_insn, at config/ia64/ia64.c:6902
   - wmtv
   - stalin
   - genesis
   - imagemagick
   - wxwidgets2.6
   - qscintilla
   - mtpaint
   - anjuta
   - gphpedit
   - tightvnc
   - asterisk
   - graphicsmagick

 - PR37382: ICE in extract_insn, at recog.c:2027
   - hamlib

 - PR37392: Segfault in verify_ssa: !gimple_nop_p (stmt)
   - lcdf-typetools
   - libimager-perl
   - soundmodem

 - PR37394: Segfault in ia64_variable_issue with -O -fschedule-insns2
   - pfstmo

 - PR37418: error: type mismatch in address expression, verify_gimple failed
   - dovecot
   - elfutils
   - clisp
   - syslinux
   - chicken
   - openswan

 - PR37456: ICE: verify_flow_info failed: control flow in the middle of
            basic block, BB 3 can not throw but has EH edges
   - psi

 - PR37461: ICE in find_or_generate_expression, at tree-ssa-pre.c:2691
   - linux-2.6

 - PR37474: vect_supported_slp_permutation_p memory corruption
   - gst-plugins-base0.10

 - PR37482: definition in block 51 follows the use for SSA_NAME with -maltivec
   - mednafen

 - PR37483: Segfault in noce_try_sign_mask (ifcvt.c): b_unconditional
   - gdc-4.1
   - gdc-4.2
   - prima

-- 
Martin Michlmayr
http://www.cyrius.com/



(Log in to post comments)

Building the Debian archive with GCC 4.4

Posted Sep 15, 2008 22:43 UTC (Mon) by JoeBuck (subscriber, #2330) [Link]

Martin's been doing this kind of work for some time, and it helps greatly in making sure that GCC, when released, is of high quality. Building nearly 10k packages on multiple platforms and documenting all of the bugs found is a huge task, and we're all lucky that he's been willing to take it on.

The bug level he's finding is normal for this stage of GCC development (early in stage 3, the bug fix phase); by the time there's a GCC 4.4.0 release, you can expect these problems to be fixed.

Building the Debian archive with GCC 4.4

Posted Sep 15, 2008 22:46 UTC (Mon) by rahulsundaram (subscriber, #21946) [Link]

Are you getting similar feedback from Fedora maintainers on the rawhide branch as well?

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 0:02 UTC (Tue) by JoeBuck (subscriber, #2330) [Link]

I haven't seen anyone other than Martin regularly post reports of the form "we tried to build a complete distro with a bleeding-edge unreleased GCC, here's what happened".

In practice, once you can build all of Debian on many platforms, the same's likely to be true of other GNU/Linux distros. It would be useful to get reports like this from the BSD distros; often GCC support under BSD suffers because we don't get as much early testing.

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 1:09 UTC (Tue) by cyrus (guest, #36858) [Link]

I think at least the FreeBSD Project decided not to switch to a GPLv3 compiler. Right now, they're sticking with GCC 4.2.x, so it's unlikely that we'll see any report about upcomming GCC versions from them.

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 3:32 UTC (Tue) by JoeBuck (subscriber, #2330) [Link]

Any user is free to contribute tests, even if the distro itself chooses (for whatever reason) to stick with an older compiler version.

Doing so will make life easier when people change their minds in a couple of years (especially people who need a C++0x compiler).

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 7:37 UTC (Tue) by coriordan (guest, #7544) [Link]

hmmm. Got a link to where the FreeBSD folk discussed this or where the decision was announced?

Thanks.

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 16:41 UTC (Tue) by sbergman27 (guest, #10767) [Link]

"""
Got a link to where the FreeBSD folk discussed this or where the decision was announced?
"""

A link would be interesting. But talk is cheap. What compiler is currently in the FreeBSD 8 cvs tree?

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 18:58 UTC (Tue) by bkoz (guest, #4027) [Link]

FWIW, Here's an example of one user (Gerald Pfeifer) testing GCC-head on more-recent FreeBSD (6.3.x).

http://gcc.gnu.org/ml/gcc-testresults/2008-09/msg01375.html

The GCC team is accepting patches that improve GCC support on new BSDs. I have no visibility into the FreeBSD toolchain discussions.

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 23:54 UTC (Tue) by JoeBuck (subscriber, #2330) [Link]

Gerald's not only a user, he's a long-time GCC developer, SC member and gcc.gnu.org webmaster, and he's been giving the BSDs a lot of love despite working for a Linux-based org during the day.

But running GCC's regression test suite, while useful and important, isn't as big a job as using the compiler to build an entire distribution (including ports trees). That's what Martin's been doing for Debian. Volunteers welcome.

Building the Debian archive with GCC 4.4

Posted Sep 20, 2008 14:38 UTC (Sat) by mdomsch (subscriber, #5920) [Link]

Note: Jakub Jelinek did a full Fedora Rawhide rebuild using prerelease gcc 4.3 back in January 2008, looking for compiler bugs, source changes needed due to stricter C++ and/or bits rearranged in header files, and resultant packaging changes.

https://www.redhat.com/archives/fedora-devel-list/2008-Ja...

Of those failures, 4 were GCC internal compiler errors, which he filed bugs in gcc's tracker and noted the bugs in his report.

Building the Debian archive with GCC 4.4

Posted Sep 16, 2008 9:07 UTC (Tue) by sylware (guest, #35259) [Link]

If the gcc/binutils/glibc folks could synchronized themselves in order to let us be able to setup a cross toolchain (for instance HOST=x86_64 and TARGET=i686) with their stable releases, that would be nice... because right now, it's a patching battlefield!
Thank you very much.
:)

Copyright © 2008, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds