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

Dmitry V. Levin ldv на altlinux.org
Пн Авг 30 12:39:54 MSK 2021


On Mon, Aug 30, 2021 at 12:30:00PM +0300, Andrey Savchenko wrote:
> On Mon, 30 Aug 2021 12:18:18 +0300 Dmitry V. Levin wrote:
> > On Sun, Aug 29, 2021 at 10:34:49AM +0400, Alexey Sheplyakov wrote:
[...]
> > > Тогда почему бы не написать об этом прямо, например:
> > > 
> > > 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" - а как понять, таки нужно, или не нужно?
> > 
> > Предлагаю компромиссный вариант: в диагностике написать короткую формально
> > корректную фразу для скриптов, которая будет меняться редко, после которой
> > длинный текст для людей с описанием, которое может меняться чаще.
> > Например, так:
> > 
> > process-lto: ERROR: ./usr/lib64/libfoo.a: contains __gnu_lto_slim
> > Most likely this file contains GIMPLE bytecode that should NOT be packaged
> > since its format can change between GCC versions.
> > Use -ffat-lto-objects option to package machine code in static libraries, e.g.
> > %{?optflags_lto:%global optflags_lto %optflags_lto -ffat-lto-objects}
> > Alternatively, you might want to stop packaging static libraries.
> 
> s/to stop packaging static libraries/to disable LTO for this package/

Или обе альтернативы, например:
Alternatively, you might want to stop packaging static libraries
or disable link-time optimization for this package.


-- 
ldv


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