http://gcc.gnu.org/bugzilla/show_bug.cgi?id=46072
--- Comment #1 from Daniel Richard G. <skunk at iskunk dot org> 2010-10-19 21:51:44 UTC --- I'd like to add: We've been able to work around this issue in our C codebase simply by ensuring that every static variable is initialized with a value. The bug behavior makes the uninitialized ones easy to track down as a matter of course. However, we can't do the same for our C++ codebase. There is at least one static declaration (std::__ioinit) in the C++ header files that we can't touch, so unless we turn off debug information altogether, there's not much of a way to avoid the linker error.