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. Сборочный лог является продуктом более десятка компонентов, читателю будет удобнее пропускать ненужное.