вкратце:
после очередного добавления пакета в package.env
с no-lto
решил разобраться чего ж ему не хватает для сборки
после гугления и курения манов стало ясно что добавления -flto
в CFLAGS
не достаточно
и даже -flto -fuse-linker-plugin
не достаточно
оно то работает, но работает «через Ж»:
man gcc
When -fuse-linker-plugin is not enabled then, when a file is compiled with -flto, the generated object file is larger than a regular object file because it contains GIMPLE bytecodes and the usual final code (see -ffat-lto-objects).
кароче что-то где-то когда-то пошло не так, и этот самый linker-plugin не подхватывается автоматом
гугль говорит:
* сделать руками симлинки в дефолтную директорию плагинов
* переключить дефолтный плагин линкера через binutils-config --linker ld.gold
* юзать врапперы gcc-ar
, gcc-nm
, gcc-ranlib
(что, собсна, я для себя и выбрал, чтоб рулить этим всем в no-lto)
добавил в make.conf:
AR=/usr/bin/gcc-ar
NM=/usr/bin/gcc-nm
RANLIB=/usr/bin/gcc-ranlib
также решил проверить на недавно собранной «старым» методом либе:
-flto:
$ equery s -b dev-cpp/gtkmm
* dev-cpp/gtkmm-2.24.4-r2
Total files : 458
Total size : 7672046
$ equery s -b dev-cpp/gtkmm
* dev-cpp/gtkmm-2.24.4-r2
Total files : 458
Total size : 7663334
$ equery s -b dev-cpp/gtkmm
* dev-cpp/gtkmm-2.24.4-r2
Total files : 458
Total size : 8836542
з.ы.
https://wiki.gentoo.org/wiki/Gold
Warning
The gold linker was known to cause breakage of grub2, causing the system to become unbootable. Proceed with caution.