https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87858
Bug ID: 87858 Summary: Building old multilib bootstrap GCC: stage1 32-bit libstdc++ fails to build after building 64-bit libstdc++ Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: mkrupcale at matthewkrupcale dot com Target Milestone: --- Created attachment 44944 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44944&action=edit Makefile.tpl patch portion which allowed me to build GCC 4.8.3 using GCC 8.1 This is related to building multilib bootstrap GCC version 4.8.3 using GCC 8.1. Particularly, the stage1 host module cc1plus would fail to load libstdc++ after building the target 64-bit libstdc++ because this was placed in LD_LIBRARY_PATH, but stage1 cc1plus depends on the newer build libstdc++, and the older target libstdc++ does not provide the required version definitions. I suspect this issue is not specific to these versions or even to building old GCC with new GCC because the stage1 host modules will always depend on the build libstdc++ and therefore should not try to use the target libstdc++ built during stage1. Attached are two patches: 1) gcc48-stage1-build-libstdc++.patch: Makefile.tpl patch portion which allowed me to build GCC 4.8.3 using GCC 8.1 2) gcc82-stage1-build-libstdc++.patch: analogous patch for GCC 8.2 potentially allowing future GCC to build GCC 8.2 (untested). What they do is add the target libstdc++ to the target exports LD_LIBRARY_PATH only after stage1. Additional information / mailing list patches: [1] https://gcc.gnu.org/ml/gcc-patches/2018-09/msg00176.html [2] https://gcc.gnu.org/ml/gcc-patches/2018-10/msg01978.html