[devel] Статические библиотеки и thin LTO
Arseny Maslennikov
arseny на altlinux.org
Пн Авг 30 12:50:01 MSK 2021
On Mon, Aug 30, 2021 at 12:18:18PM +0300, Dmitry V. Levin wrote:
> On Sun, Aug 29, 2021 at 10:34:49AM +0400, Alexey Sheplyakov wrote:
> > On 28.08.2021 02:18, Vitaly Chikunov wrote:
> > > 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" - а как понять, таки нужно, или не нужно?
>
> Предлагаю компромиссный вариант: в диагностике написать короткую формально
> корректную фразу для скриптов, которая будет меняться редко, после которой
> длинный текст для людей с описанием, которое может меняться чаще.
Логично.
Не лучше ли к каждой строчке длинного текста дописать, какой компонент
его породил, как и к формальному сообщению? И вообще взять за правило
приписывать префикс к выводу.
Например, так:
> process-lto: ERROR: ./usr/lib64/libfoo.a: contains __gnu_lto_slim
> process-lto: Most likely this file contains GIMPLE bytecode that should NOT be packaged
> process-lto: since its format can change between GCC versions.
> process-lto: Use -ffat-lto-objects option to package machine code in static libraries, e.g.
> process-lto: %{?optflags_lto:%global optflags_lto %optflags_lto -ffat-lto-objects}
> process-lto: Alternatively, you might want to stop packaging static libraries.
Сборочный лог является продуктом более десятка компонентов, читателю
будет удобнее пропускать ненужное.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : signature.asc
Тип : application/pgp-signature
Размер : 833 байтов
Описание: отсутствует
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20210830/9a5e7cf5/attachment-0001.bin>
Подробная информация о списке рассылки Devel