[devel] Статические библиотеки и thin LTO

Alexey Sheplyakov asheplyakov на basealt.ru
Вс Авг 29 09:34:49 MSK 2021


Здравствуйте!

On 28.08.2021 02:18, Vitaly Chikunov wrote:
> Hi,
> 
> On Fri, Aug 27, 2021 at 11:43:17PM +0400, Alexey Sheplyakov wrote:
>> Добрый вечер!
>>
>> On 24.08.2021 22:22, Dmitry V. Levin wrote:
>>> On Tue, Aug 24, 2021 at 09:20:50PM +0300, Dmitry V. Levin wrote:
>>>> * 382 пакета перестанут пересобираться с диагностикой следующего вида:
>>>> process-lto: ERROR: ./usr/lib64/libtcb.a: contains __gnu_lto_slim only.
>>>> Perhaps, you need to %define optflags_lto %optflags_lto -ffat-lto-objects
>>
>> Странно это. GCC прекрасно умеет создавать и использовать архивы
>> из thin LTO объектов:
> 
> Нельзя запаковывать GIMPLE в репозиторий, так как он не переносимый
> между версиями GCC. Иначе после каждого обновления GCC пришлось бы
> пересобирать все эти пакеты.

Тогда почему бы не написать об этом прямо, например:

process-lto: ERROR: ./usr/lib64/libfoo.a: contains GIMPLE bytecode only.
Bytecode should NOT be packaged since its format can change between GCC versions.
To package the machine code in static libraries use -ffat-lto-objects option:
%define optflags_lto %optflags_lto -ffat-lto-object
Alternatively you might want to stop packaging static libraries.

А не говорить загадками -- "contains __gnu_lto_slim only".
"Perhaps you need" - а как понять, таки нужно, или не нужно?


Подробная информация о списке рассылки Devel