Package: g++-4.4
Version: 4.4.5-8
Severity: normal
Tags: upstream
There is a bug in GCC/G++ 4.4 which leads to segfaults in random places
of the C++ library. The only place it seems to pop up is in Audacious,
which is a C program (linked with gcc) that loads C++ plugins at
run-time (linked with g++). Compiling Audacious and the plugins with
CC=gcc-4.3 and CXX=g++-4.3 eliminates the problem. According to reports
from Ubuntu and Gentoo users, the problem is also fixed by using GCC
4.5. So, it would be nice if the change that produced this problem in
4.4 could be reverted, or if the change that fixed it in 4.5 could be
backported.
Reports of this same bug outside Debian, with several different backtraces:
http://jira.atheme.org/browse/AUDPLUG-241
https://lists.fedoraproject.org/pipermail/devel/2010-July/139490.html
https://bugs.launchpad.net/ubuntu/+source/audacious-plugins/+bug/640732
http://jira.atheme.org/browse/AUD-264
(In the Ubuntu report, the claim is made that linking the plugins with
g++ and not gcc is a workaround. I do not know the grounds for this
claim; however, at least in upstream Audacious source, C++ plugins have
always been linked with g++, and the problem still occurs.)
My backtrace (the crash occurred, after enabling the ProjectM
visualization plugin and closing Audacious, on the next startup):
Program received signal SIGSEGV, Segmentation fault.
0x00007fffeb5b2079 in std::uncaught_exception() () from /usr/lib/libstdc++.so.6
(gdb) bt
#0 0x00007fffeb5b2079 in std::uncaught_exception() ()
from /usr/lib/libstdc++.so.6
#1 0x00007fffeb58534d in std::basic_ostream<char, std::char_traits<char> >&
std::__ostream_insert<char, std::char_traits<char> >(std::basic_ostream<char,
std::char_traits<char> >&, char const*, long) () from /usr/lib/libstdc++.so.6
#2 0x00007fffeb81cb9f in projectM::initPresetTools(int, int) ()
from /usr/lib/libprojectM.so.2
#3 0x00007fffeb81d46d in projectM::projectM_init(int, int, int, int, int, int)
() from /usr/lib/libprojectM.so.2
#4 0x00007fffeb81dfcf in projectM::readConfig(std::string const&) ()
from /usr/lib/libprojectM.so.2
#5 0x00007fffeb81e563 in projectM::projectM(std::string, int) ()
from /usr/lib/libprojectM.so.2
#6 0x00007fffeca0795c in _gtk_projectm_realize_impl (widget=0x83c9f0,
data=0x839c30) at gtk_projectm_impl.cxx:140
#7 0x00007ffff484947e in IA__g_closure_invoke (closure=0x8761a0,
return_value=0x0, n_param_values=1, param_values=0x72b180,
invocation_hint=0x7fffffffe020)
at /scratch/build-area/glib2.0-2.24.2/gobject/gclosure.c:767
-- John Lindgren
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 2.6.32-5-amd64 (SMP w/2 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages g++-4.4 depends on:
ii gcc-4.4 4.4.5-8 The GNU C compiler
ii gcc-4.4-base 4.4.5-8 The GNU Compiler Collection (base
ii libc6 2.11.2-7 Embedded GNU C Library: Shared lib
ii libgmp3c2 2:4.3.2+dfsg-1 Multiprecision arithmetic library
ii libmpfr4 3.0.0-2 multiple precision floating-point
ii libstdc++6-4.4-dev 4.4.5-8 The GNU Standard C++ Library v3 (d
g++-4.4 recommends no packages.
Versions of packages g++-4.4 suggests:
pn g++-4.4-multilib <none> (no description available)
pn gcc-4.4-doc <none> (no description available)
pn libstdc++6-4.4-dbg <none> (no description available)
-- no debconf information