Generic header defect observed on both x86 and x86_64 Missing "#pragma GCC visibility push(default)" and "#pragma GCC visibility pop" directives wrapped around the versions of <stdexcept> and <string> that ship with GCC 4.0 - 4.2. See for example <new> or <exception>, which are properly encased. Add #pragma GCC visibility push(default) and #pragma GCC visibility pop(default) to string and stdexcept From new ... #pragma GCC visibility push(default) extern "C++" { ... } // extern "C++" #pragma GCC visibility pop .... Workaround: create a include directory with files 'string' and 'stdexcept' and alter your include path to ssearch this directory first. string: #pragma GCC system_header #pragma GCC visibility push(default) #include_next <string> #pragma GCC visibility pop
Actually this is fixed in 4.2.0, see PR 19664. *** This bug has been marked as a duplicate of 19664 ***