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 -- Summary: No #pragma GCC visibility {push/pop} (default) in <stdexcept> and <string> Product: gcc Version: 4.1.1 Status: UNCONFIRMED Severity: minor Priority: P3 Component: c++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rjarrett at mathworks dot com GCC build triplet: x86_64-unknown-linux-gnu GCC host triplet: x86_64-unknown-linux-gnu GCC target triplet: x86_64-unknown-linux-gnu http://gcc.gnu.org/bugzilla/show_bug.cgi?id=31459