From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Thu, 26 Aug 2021 03:04:26 +0300 From: "Dmitry V. Levin" To: ALT Devel discussion list Message-ID: <20210826000426.GD26322@altlinux.org> References: <20210824182050.GA5179@altlinux.org> <20210825212439.GA24439@altlinux.org> <20210825231929.GC24439@altlinux.org> <20210826025454.b102820400d44bec325660e8@altlinux.org> MIME-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20210826025454.b102820400d44bec325660e8@altlinux.org> Subject: Re: [devel] I: LTO in %optflags by default X-BeenThere: devel@lists.altlinux.org X-Mailman-Version: 2.1.12 Precedence: list Reply-To: ALT Linux Team development discussions List-Id: ALT Linux Team development discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 26 Aug 2021 00:04:26 -0000 Archived-At: List-Archive: List-Post: On Thu, Aug 26, 2021 at 02:54:54AM +0300, Andrey Savchenko wrote: > On Thu, 26 Aug 2021 02:19:29 +0300 Dmitry V. Levin wrote: > > On Thu, Aug 26, 2021 at 02:07:49AM +0300, Aleksey Novodvorsky wrote: > > > чт, 26 авг. 2021 г. в 00:24, Dmitry V. Levin : > > > > > > > > On Tue, Aug 24, 2021 at 09:20:50PM +0300, Dmitry V. Levin wrote: > > > > > Hi, > > > > > > > > > > Пришло время включить в Сизифе LTO (link-time optimization). > > > > > > > > Поскольку мы в теме, нам это казалось очевидным и не требующим > > > > дополнительных пояснений, но, поскольку это ещё не всем очевидно, > > > > поясню, из каких соображений мы исходили: > > > > > > > > - LTO - это безусловно полезная оптимизация, об этом много написано, > > > > см. напр. [1] [2], поэтому ею хорошо было бы воспользоваться; > > > > > > > > - LTO - это уже широко распространённая оптимизация, её уже включили в > > > > openSUSE, Fedora, Ubuntu, Clearlinux, скоро Debian, там уже вытоптали > > > > основные грабли, большинство фиксов пакетов заапстримлено, поэтому ею > > > > уже можно пользоваться; > > > > > > > > - LTO - это уже настолько распространённая оптимизация, что скоро без LTO > > > > уже мало кто будет собирать, поэтому не пользоваться ею скоро будет себе > > > > дороже; > > > > > > > > - После бранчевания мы в начале нового цикла разработки, самое время > > > > включить LTO. > > > > > > > > - Исправление самой массовой сборочной ошибки "process-lto: ERROR:", > > > > вызванной включением LTO, тривиально. > > > > > > > > - Выключить LTO в пакете в случае необходимости - тривиально. > > > > > > > > [1] https://documentation.suse.com/sbp/all/html/SBP-GCC-10/index.html > > > > [2] https://wiki.ubuntu.com/ToolChain/LTO > > > > > > Это хорошо, но все ли наши архитектуры поддерживают LTO? > > > > Конечно, LTO поддерживается на всех наших архитектурах. > > Если мы говорим про все архитектуры, включая вторичные > сборочницы, то нет, на e2k не поддерживается. -flto игнорируется, > а вот более продвинутые опции приводят к ошибке: > > $ gcc -flto -ffat-lto-objects test.c -o test > lcc: error: unrecognized command line option "-ffat-lto-objects" А почему там -flto игнорируется, а -ffat-lto-objects не игнорируется? Это непоследовательно. Впрочем, мы ожидали чего-то подобного со стороны lcc, поэтому наша реализация это учитывает. Если все будут следовать нашим рекомендациям про %optflags_lto, то на e2k это практически не отразится, там просто не станут включать %optflags_lto в %optflags. -- ldv