http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36104
--- Comment #15 from Benjamin Kosnik <bkoz at gcc dot gnu.org> 2011-01-28 09:51:23 UTC --- Patches 1-3 restore gcc-4.2 behavior. Configure works, the library builds, most all of the tests pass regression, etc. Unfortunately, this is still annoyingly wrong on close inspection. Namespaces nested within std containing definitions will be mis-versioned. Using versioning + modes fails. The inline namespace code, which unfortunately includes most of the macros used to define namespaces in every libstdc++ header, was done as part of the initial work for this feature, nee namespace association. Then changes were made, nesting was made de rigeur, and the original macros were pushed and squeezed into submission. Yet more modes were added: parallel, profile. Yet another level of nesting was added for versioning, overloading the namespace macros with another condition. C++0x support starts to partition the std:: namespace into finer bits: chrono, regex, etc. All of these nested namespaces + current macros are wrong. Patch 4 fixes these issues, and provides a saner infrastructure for future debug/profile/parallel work.