[devel] I: LTO in %optflags by default

Dmitry V. Levin ldv на altlinux.org
Пт Авг 27 03:37:45 MSK 2021


On Thu, Aug 26, 2021 at 10:33:49PM +0300, Andrey Savchenko wrote:
> On Thu, 26 Aug 2021 02:54:20 +0300 Dmitry V. Levin wrote:
> > On Wed, Aug 25, 2021 at 10:27:49PM +0300, Andrey Savchenko wrote:
> > > On Wed, 25 Aug 2021 11:37:46 +0400 Alexey Sheplyakov wrote:
> > > > Здравствуйте!
> > > > 
> > > > On 24.08.2021 22:20, Dmitry V. Levin wrote:
> > > > 
> > > > > Пришло время включить в Сизифе LTO (link-time optimization).
> > > > 
> > > > Поскольку LTO ломает сборку сотен пакетов, причем не каких попало,
> > > > а gcc, glibc, и т.п. - то время включать LTO как раз таки НЕ пришло.
> > > > 
> > > > А если кому-то всё равно очень хочется - надо сначала доработать пакеты
> > > > (на которые повлияет LTO), а потом уж включать. И нет, это не сопровождающие
> > > > пакетов должны заниматься этой глупостью, а именно этот "кто-то", кому
> > > > понадобилась LTO (или ещё какая модная фенечка).
> > > 
> > > Это давняя проблема. У нас есть правило: «кто сломал, тот
> > > и чинит» (я не нашёл такую политику, возможно, это джентельменское
> > > соглашение). Однако, на практике оно работает лишь для простых
> > > смертных, а с ключевыми компонентами системы — тем же тулчейном —
> > > всё наоборот: чинят мейнтенеры пакетов, которых обычно никто не
> > > справшивает и просто ставят перед фактом.
> > > 
> > > С одной стороны, такой подход можно понять, т.к. когда сломанных
> > > пакетов слишком много, авторы изменений просто физически не могут
> > > без помощи остальных всё исправить. С другой стороны он
> > > несправедлив по отношению к мейнтенерам других сложных подсистем
> > > (питон, джава, telive, cmake).
> > > 
> > > Давайте искать в этом вопросе золотую середину, чтоб всё было по
> > > справедливости. Возможно, следует сделать лимит на количество
> > > затронутых пакетов, после которого следует подключать сообщество
> > > к исправлению проблем. Другие предложения приветствуются.
> > 
> > Мы обсуждали обновления тулчейна в конце марта - начале апреля в этом треде:
> > https://lore.altlinux.org/devel/20210330142347.GA29398@altlinux.org/T/#u
> > И даже договорились, насколько я понимаю:
> > https://lore.altlinux.org/devel/20210404201605.GC15347@altlinux.org/
> 
> И где же в этих обсуждениях анонс повсеместного включения LTO?
> Я что-то не вижу по ссылкам.

Что толку в анонсе LTO, пока нет списка последствий.
А когда есть список последствий, что толку откладывать неизбежное.
Обсуждать имеет смысл, когда есть выбор, включать LTO или нет.

Единственная тема, которую можно было бы обсудить - это что делать
сначала, обновлять тулчейн или включать LTO.  Но и тут всё просто:
что готово первым, то и внедряется первым.

> Недовольство у сообщества оттого, что людей никто не спрашивал,
> публичного обсуждения не было, а в закрытом кругу было принято
> решение и остальных лишь поставили перед фактом: мы сделали так,
> живите с этим как хотите.

Люди, как правило, не замечают пользы, но замечают дополнительную работу,
которую приходится делать, пусть даже тривиальную.
Кроме того, люди хотят, чтобы им всё объяснили и спросили их мнения даже
тогда, когда выбора по сути нет.
Такое поведение людей сложно назвать рациональным.


-- 
ldv


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