Name mangling isn't the problem; vtable layout and templates are. In particular, templates are pretty much unsolvable without embedding all of C++ in the language.
Never mind working with other languages, it's a problem just linking between different compiler versions.