Multilibs in stage-1
Matthias Klose
doko@ubuntu.com
Thu May 7 10:33:08 GMT 2020
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.guenther@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
More information about the Gcc
mailing list