Some libstdc++ headers are installed in GPLUSPLUS_TOOL_INCLUDE_DIR, i.e. include/c++/version/target. These headers are derived from information configured separately for each multilib, and in general may differ between multilibs, so should go in a multilib directory (e.g. include/c++/version/target/multilib). The precompiled headers installed there, in particular, should be separately installed for each multilib in all cases, even if in some cases the actual text headers happen to be the same for each multilib.
One possible plan for fixing this is to add a flag to struct default_include meaning "add a multilib suffix to this include directory", then make the driver pass a -imultilib option to cc1plus which provides the suffix appended to GPLUSPLUS_TOOL_INCLUDE_DIR. libstdc++-v3 would then need to be taught to install the headers in the multilib subdirectory instead of directly in include/c++/version/target. (The build directory arrangement can stay the same, since each multilib gets built in its own directory.) -- Summary: libstdc++ headers should go in multilib directories Product: gcc Version: 4.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: jsm28 at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=25524