LINUX.ORG.RU

gentoo, LTO

 , , , ,


0

2

Кто и как относится к этой волшебной опции компилятора?
Кто собирает GCC с ‘-flto’?
Кто сидит на Clang с ‘-flto=thin’?

А вы знали, что Fedora полностью собирается с этой опцией с 2021 года? А Debian Bookworm на финишной прямой?

https://fedoraproject.org/wiki/LTOByDefault
https://lists.opensuse.org/archives/list/factory@lists.opensuse.org/message/UT2YVWPZK2IZ5EUHMSHNCW3Q72CMPWCJ/

Если взять один из гиковских дистрибутивов, Crux:
https://crux.nu/ports/crux-3.7/xorg/xorg-server/Pkgfile
то многие пакеты собираются с опцией ‘-D b_lto=true’

Ваши предложения и рекомендации?

Ответ на: комментарий от Neuromagus

У меня не иксы и не интел (amdgpu всё ещё лучше modesetting). Нет, всё на gcc кроме тех у кого nolto, clang или flto в package.env. -mabm это оптимизация типа -mavx. Новый линковщик mold ещё не готов, кое-что не собираются (mesa, telegram).

thorus_dv
()
Ответ на: комментарий от thorus_dv

mold ждём. Спасибо за ответ. Если у меня skl и стоит -native, эти флаги учитываются (-mabm) или стоит добавить?

Ну и в ebuild FFmpeg

# LTO support, bug #566282, bug #754654, bug #772854
	[[ ${ABI} != x86 ]] && is-flagq "-flto*" && myconf+=( "--enable-lto" )
	filter-lto
Neuromagus
() автор топика
Последнее исправление: Neuromagus (всего исправлений: 1)
Ответ на: комментарий от alex1101

Могут быть проблемы с тем, чтобы накатить сам апдейт, в генте один из самых сложных ПМ, но если что-то не скомпилилось, оно не оставляет систему в сломаном состоянии.

goingUp ★★★★★
()
Ответ на: комментарий от cobold

Этот флаг требуется включать как при компиляции, так и при линковке.
1. С lto кодогенерация происходит в процессе линковке и собранный без правильных флагов при линковке бинарь не будет оптимизироваться или вообще развалится.
2. Собранные с lto static либы будут содержать не полноценные объектники, а mixed код, вызывая разнообразные проблемы

mittorn ★★★★★
()