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

Reply via email to