On 5/7/20 9:02 AM, Jonathan Wakely wrote: > On Thu, 7 May 2020 at 07:28, Uros Bizjak via Gcc <gcc@gcc.gnu.org> wrote: >> >> On Thu, May 7, 2020 at 8:16 AM Richard Biener >> <richard.guent...@gmail.com> wrote: >>> >>> On May 6, 2020 11:15:08 PM GMT+02:00, Uros Bizjak via Gcc <gcc@gcc.gnu.org> >>> wrote: >>>> Hello! >>>> >>>> I wonder, if the build process really needs to build all multilibs in >>>> stage-1 bootstrap build. IIRC, stage-1 uses system compiler to build >>>> stage-1 gcc, so there is no need for multilibs, apart from library >>>> that will be used by stage-1 gcc during compilation of stage-2 >>>> compiler. >>> >>> Correct. Only stage3 needs those. But IIRC we already avoid building them? >>> Likewise we avoid building libsanitizer and friends in stage 1/2 unless >>> ubsan bootstrap is enabled. >> >> Looking at: >> >> [gcc-build]$ ls stage1-x86_64-pc-linux-gnu/32/ >> libgcc libgomp libstdc++-v3 >> >> it seems that 32bit multilibs are built anyway, also in stage2: >> >> [gcc-build]$ ls prev-x86_64-pc-linux-gnu/32/ >> libgcc libgomp libstdc++-v3 > > Debian have a local patch to skip those: > https://gcc.gnu.org/legacy-ml/libstdc++/2015-11/msg00164.html
Sorry, I never looked at Richi's suggestion there: """I think the more natural way would be to bootstrap the host libstdc++ and only build the target libstdc++ for all multilibs.""" I assume you would need to do that for all of libgcc, libgomp, libatomic and the sanitizer libs. For non-multilib builds that would an extra build for those libs, building the final target libs? Matthias