LINUX.ORG.RU

Gentoo и тулчейны.

 , , , ,


1

2

В связи с апгрейдом процессора, мне как бывшему гентушнику (не бывает бывших, ага) зажгло в одном месте покомпилять. Решил закинуть в чрут и посмотреть.

Что же я вижу? Вкорячили LLVM, а он тащит за собой Clang. А так как glibc не собирается шлангом, то и GCC в системе имеется. И мало того, Тянется 2 версии LLVM, потому что разным пакетам нужны разные версии.

Феерия компиляторов и примкнувших.

Хочу спросить уместных гентушников, если такие не перевелись, возможно ли выкусить LLVM из Месы (у меня интел и она ненужна) и можно ли убрать шланг и оставить одну версию LLVM?

Не срача ради, просто нехватка времени на эксперименты.

★★★★★

Вкорячили LLVM, а он тащит за собой Clang

Скорее всего clang нужен для некоторых драйверов, предоставляемых mesa. Ещё более вероятно, что для opencl - попробуй его отрубить.

выкусить LLVM из Месы (у меня интел и она ненужна)

Есть отдельный драйвер для intel?

Лучше приведи, с какими флагами у тебя mesa хочет ставиться.

grem ★★★★★
()

llvm уже не собирается без clang?
Я мог не заметить т.к clang мне нужен не в системе.
Но тем не менее по поводу llvm сложилось такое:
1. В llvm с 13.0.1 версии какая-то растомакака, не умеющая в логику зафорсила флаги всех платформ. Я их принудительно отрубаю и ничего не ломается, даже rust работает
2. rust я хоть в систему основную и ставлю, но замаскировал всё что от него зависит. rust используется в проектах в хомяке, в системе ему быть рано пока gccrs не может заменить rustc. Итого из проблемных зависимостей пришлось притащить старый (якобы уязвимый, хотя на самом деле бэкпорты обновлений безопасности были) сишный librsvg.
3. firefox не использую, вместо него pale moon. Тут уже было много срачей, да, он реально тормозит, но большинство сайтов в нём работают (проблемы были на старых версиях), а собирается он 5-10 минут без всяких llvm.
4. mesa без llvm конечно может работать, но не советую, если только не интеловская встройка. (хотя в новых версиях aco завезли в radeonsi, может быть она для него опциональна опциональна, я пока с этим не разбирался).
Собственно почему нежелательно mesa использовать без llvm?
некоторые драйвера mesa используют llvmpipe/softpipe для части задач. И если ты отрубаешь llvm, то начинает использоваться медленный softpipe. Пример, где это вызывало проблемы - драйвер i915g, который становится в десятки раз медленнее. Если ты точно уверен, что твой драйвер работает без softpipe/llvmpipe - то да, mesa можно собирать без llvm. Насколько я знаю, драйвера i965 (с brw компилятором) может без проблем использоваться без llvm и я так и делал, пока использовал её на ivy bridge.

mittorn ★★★★★
()

Тянется 2 версии LLVM, потому что разным пакетам нужны разные версии.

Где-то я подобное слышал от ‘истинного’ гентушника: :)

Раньше как было, за каждую опцию компилятора (gcc) было бурление, теперь же выкатили LLVM и Clang

мне portage говорит о том, что надо ему LLVM и Clang 14 и 15 версии!

Весёлые мейнтейнеры Gentoo

krasnh ★★★
()

возможно ли выкусить LLVM из Месы (у меня интел и она ненужна)

Можно.

можно ли убрать шланг

Если ты не собираешь браузер из исходников, то можно. Иначе нет.

и оставить одну версию LLVM?

Чаще всего можно.

eternal_sorrow ★★★★★
()
Последнее исправление: eternal_sorrow (всего исправлений: 1)
Ответ на: комментарий от mittorn

В llvm с 13.0.1 версии какая-то растомакака, не умеющая в логику зафорсила флаги всех платформ. Я их принудительно отрубаю

Было такое. На указание в маке.конф кладется болт. Как вы отрубали?

И да, у меня встройка хд4000

utanho ★★★★★
() автор топика
Ответ на: комментарий от grem

Лучше приведи, с какими флагами у тебя mesa хочет ставиться.

Там странная ситуация. Llvm вроде как USE и раньше его можно было вырубить, но теперь всё сложно. Меса тащит ллвм, с тот шланг.

utanho ★★★★★
() автор топика
Ответ на: комментарий от mittorn

Я как-то делал такое в профиле. С гтк2. Если с ллвм прокатит, то замечательно.

Осталось еще шланг выкинуть на мороз.

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)

У меня llvm в системе отсутствует. А поскольку без него зависимости не разрулить (у меня не получилось по крайней мере), то я просто тупо вписал его в package.provided, якобы он установлен, чтобы emerge мне мозг не выносил.

Как оно там разруливается - не знаю, но брат жив, и обновляется.

Chord ★★★
()
Последнее исправление: Chord (всего исправлений: 1)
Ответ на: комментарий от utanho

Или выяснить,что тянет 15-ю и размаскировать более свежую версию софтины.

Llvm и clang можно перед удалением сохранить собранными утилитой quickpkg, чтобы потом эту версию быстро восстановить, если что.

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

Да. Это частое переходное сотсояние в gentoo, когда появилась новая версия, но не всё её умеет. Я так релизы python пропускаю, маскируя новые версии пока вся система на них не мигрирует

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

Mesa-amber тянет Mesa, а та тянет LLVM. Но получилось собрать без излишеств.

Нашел я то, что тянет второй LLVM, 15й версии. Это gjs. К нему прибит spidermonkey, который и тянет это непотребство. Таким образом, в генте не получается установить гном без ненужно с ненужно. Хорошо, что вроде шланг не тянет Спидерманки уже из приличных дистров повыкидывали. А тут наоборот, прибили.

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 2)
Ответ на: комментарий от utanho

значит надо баг видимо репортить, это какая-то регрессия. Особенно с учётом того, что gentoo работает на архитектурах, на которых llvm просто не собирается

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

Проверил на чистом stage3. Действительно ебилд для amber прибит к mesa - они зачем-то решили собирать libGL от mesa, а dri драйвера от amber. Однако, никакого llvm не тянет, если правильно выставить флаги.

mittorn-zen ~ # VIDEO_CARDS="i965" USE=-llvm emerge -av mesa-amber

 * IMPORTANT: 13 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.67 s.

[ebuild  N     ] x11-base/xorg-proto-2023.2::gentoo  USE="-test" 742 KiB
[ebuild  N     ] dev-python/mako-1.2.4::gentoo  USE="-doc -test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 486 KiB
[ebuild  N     ] dev-python/pygments-2.16.1::gentoo  USE="-test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 4759 KiB
[ebuild  N     ] x11-libs/libxshmfence-1.3.2::gentoo  ABI_X86="(64) -32 (-x32)" 253 KiB
[ebuild  N     ] x11-libs/xtrans-1.5.0::gentoo  USE="-doc" 167 KiB
[ebuild  N     ] x11-libs/libXau-1.0.11::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 268 KiB
[ebuild  N     ] x11-libs/libXdmcp-1.1.4-r2::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 289 KiB
[ebuild  N     ] x11-base/xcb-proto-1.16.0::gentoo  PYTHON_TARGETS="python3_11 -python3_10 (-python3_12)" 149 KiB
[ebuild  N     ] dev-python/docutils-0.20.1-r1::gentoo  PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 2011 KiB
[ebuild  N     ] x11-libs/libxcb-1.16:0/1.12::gentoo  USE="xkb -doc (-selinux) -test" ABI_X86="(64) -32 (-x32)" 443 KiB
[ebuild  N     ] x11-libs/libdrm-2.4.116::gentoo  USE="-valgrind" ABI_X86="(64) -32 (-x32)" VIDEO_CARDS="-amdgpu (-exynos) (-freedreno) -intel -nouveau (-omap) -radeon (-tegra) (-vc4) (-vivante) -vmware" 463 KiB
[ebuild  N     ] x11-misc/compose-tables-1.8.7::gentoo  1816 KiB
[ebuild  N     ] x11-libs/libX11-1.8.7::gentoo  USE="-doc -test" ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild  N     ] x11-libs/libXext-1.3.5::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 333 KiB
[ebuild  N     ] x11-libs/libXfixes-6.0.1::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 260 KiB
[ebuild  N     ] x11-libs/libXrender-0.9.11::gentoo  ABI_X86="(64) -32 (-x32)" 296 KiB
[ebuild  N     ] media-libs/libglvnd-1.7.0::gentoo  USE="X -test" ABI_X86="(64) -32 (-x32)" 560 KiB
[ebuild  N     ] x11-libs/libXxf86vm-1.1.5::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 260 KiB
[ebuild  N     ] x11-libs/libXrandr-1.5.3::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 276 KiB
[ebuild  N     ] media-libs/mesa-23.1.8::gentoo  USE="X gles2 proprietary-codecs zstd -d3d9 -debug -gles1 -llvm -lm-sensors -opencl -osmesa (-selinux) -test -unwind -vaapi -valgrind -vdpau -vulkan -vulkan-overlay -wayland -xa -zink" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" VIDEO_CARDS="-d3d12 (-freedreno) -intel -lavapipe (-lima) -nouveau (-panfrost) -r300 -r600 -radeon -radeonsi (-v3d) (-vc4) -virgl (-vivante) -vmware" 18132 KiB
[ebuild  N     ] media-libs/mesa-amber-21.3.9-r1:amber::gentoo  USE="X gles2 zstd -debug -gles1 (-selinux) -test -valgrind -wayland" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" VIDEO_CARDS="i965 -i915 -intel -nouveau -r100 -r200 -radeon" 16219 KiB

Total: 21 packages (21 new), Size of downloads: 48172 KiB

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by media-libs/mesa-23.1.8::gentoo
# required by media-libs/mesa-amber-21.3.9-r1::gentoo
# required by mesa-amber (argument)
>=media-libs/libglvnd-1.7.0 X

Would you like to add these changes to your config files? [Yes/No]
mittorn ★★★★★
()
Ответ на: комментарий от utanho

Так же обычная mesa собирается без llvm

mittorn-zen ~ # VIDEO_CARDS="intel" USE=-llvm emerge -av mesa

 * IMPORTANT: 13 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.67 s.

[ebuild  N     ] sys-apps/hwdata-0.374::gentoo  2308 KiB
[ebuild  N     ] x11-base/xorg-proto-2023.2::gentoo  USE="-test" 742 KiB
[ebuild  N     ] dev-python/pygments-2.16.1::gentoo  USE="-test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 4759 KiB
[ebuild  N     ] dev-python/mako-1.2.4::gentoo  USE="-doc -test" PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 486 KiB
[ebuild  N     ] x11-libs/xtrans-1.5.0::gentoo  USE="-doc" 167 KiB
[ebuild  N     ] x11-libs/libxshmfence-1.3.2::gentoo  ABI_X86="(64) -32 (-x32)" 253 KiB
[ebuild  N     ] x11-libs/libXau-1.0.11::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 268 KiB
[ebuild  N     ] x11-libs/libXdmcp-1.1.4-r2::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 289 KiB
[ebuild  N     ] x11-base/xcb-proto-1.16.0::gentoo  PYTHON_TARGETS="python3_11 -python3_10 (-python3_12)" 149 KiB
[ebuild  N     ] x11-libs/libpciaccess-0.17-r1::gentoo  USE="zlib" ABI_X86="(64) -32 (-x32)" 324 KiB
[ebuild  N     ] dev-python/docutils-0.20.1-r1::gentoo  PYTHON_TARGETS="python3_11 (-pypy3) -python3_10 (-python3_12)" 2011 KiB
[ebuild  N     ] x11-libs/libxcb-1.16:0/1.12::gentoo  USE="xkb -doc (-selinux) -test" ABI_X86="(64) -32 (-x32)" 443 KiB
[ebuild  N     ] x11-libs/libdrm-2.4.116::gentoo  USE="-valgrind" ABI_X86="(64) -32 (-x32)" VIDEO_CARDS="intel -amdgpu (-exynos) (-freedreno) -nouveau (-omap) -radeon (-tegra) (-vc4) (-vivante) -vmware" 463 KiB
[ebuild  N     ] x11-misc/compose-tables-1.8.7::gentoo  1816 KiB
[ebuild  N     ] x11-libs/libX11-1.8.7::gentoo  USE="-doc -test" ABI_X86="(64) -32 (-x32)" 0 KiB
[ebuild  N     ] x11-libs/libXext-1.3.5::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 333 KiB
[ebuild  N     ] x11-libs/libXfixes-6.0.1::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 260 KiB
[ebuild  N     ] x11-libs/libXrender-0.9.11::gentoo  ABI_X86="(64) -32 (-x32)" 296 KiB
[ebuild  N     ] media-libs/libglvnd-1.7.0::gentoo  USE="X -test" ABI_X86="(64) -32 (-x32)" 560 KiB
[ebuild  N     ] x11-libs/libXxf86vm-1.1.5::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 260 KiB
[ebuild  N     ] x11-libs/libXrandr-1.5.3::gentoo  USE="-doc" ABI_X86="(64) -32 (-x32)" 276 KiB
[ebuild  N     ] media-libs/mesa-23.1.8::gentoo  USE="X gles2 proprietary-codecs zstd -d3d9 -debug -gles1 -llvm -lm-sensors -opencl -osmesa (-selinux) -test -unwind -vaapi -valgrind -vdpau -vulkan -vulkan-overlay -wayland -xa -zink" ABI_X86="(64) -32 (-x32)" CPU_FLAGS_X86="sse2" VIDEO_CARDS="intel -d3d12 (-freedreno) -lavapipe (-lima) -nouveau (-panfrost) -r300 -r600 -radeon -radeonsi (-v3d) (-vc4) -virgl (-vivante) -vmware" 18132 KiB

Total: 22 packages (22 new), Size of downloads: 34585 KiB

The following USE changes are necessary to proceed:
 (see "package.use" in the portage(5) man page for more details)
# required by media-libs/mesa-23.1.8::gentoo
# required by mesa (argument)
>=media-libs/libglvnd-1.7.0 X

Would you like to add these changes to your config files? [Yes/No]

iris видимо от llvm не зависит. Но даже то что с amber 2 месы будет собираться - не проблема, ведь с VIDEO_CARDS=-* она будет совсем маленькой - только обёртки api вокруг dri_xxx.so. Можно даже собрать обе и переключать драйвер по вкусу через MESA_LOADER_DRIVER_OVERRIDE

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

не уверен, что gjs заработает

Я нашёл способ проще - крыску собрал.

П.С. мне спидерманки в любом виде не нужна.

utanho ★★★★★
() автор топика
Последнее исправление: utanho (всего исправлений: 1)
Ответ на: комментарий от utanho
mittorn-zen /var/db/repos/gentoo/dev-lang/spidermonkey # emerge -av spidermonkey

 * IMPORTANT: 13 news items need reading for repository 'gentoo'.
 * Use eselect news read to view new items.


These are the packages that would be merged, in order:

Calculating dependencies... done!
Dependency resolution took 0.83 s.

[ebuild  NS    ] sys-devel/autoconf-2.13-r7:2.1::gentoo [2.71-r6:2.71::gentoo] USE="-test% (-emacs%)" 434 KiB
[ebuild  NS    ] dev-lang/python-2.7.18_p16-r1:2.7::gentoo [3.11.5:3.11::gentoo] USE="gdbm ncurses readline sqlite ssl xml%* (-berkdb) -bluetooth -build -examples -tk -valgrind -verify-sig -wininst% (-debug%) (-ensurepip%*) (-libedit%) (-lto%) (-pgo%) (-test%)" 12589 KiB
[ebuild  N     ] dev-libs/icu-73.2:0/73.1::gentoo  USE="-debug -doc -examples -static-libs -test -verify-sig" ABI_X86="(64) -32 (-x32)" 25899 KiB
[ebuild  N     ] dev-libs/nspr-4.35-r2::gentoo  USE="-debug" ABI_X86="(64) -32 (-x32)" 1072 KiB
[ebuild  N     ] dev-lang/spidermonkey-68.12.0-r1:68::gentoo  USE="jit -debug -test" 0 KiB

Total: 5 packages (3 new, 2 in new slots), Size of downloads: 39992 KiB

Would you like to merge these packages? [Yes/No]          


Последняя версия без llvm вот. Тянет кучу потрохов старого firefox. Но gjs требует 102 минимум. Не знаю, может можно раздлбыть старый gjs и оно зарабоатет.
Пока в polkit не добавили duktape, я собирал старый polkit 0.105 версии и чуть более старый udisks - и всё работало

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

Собрал систему без раста, шланга и ллвм. Пришлось ставить крыску для гуя.

Но это не самое страшное. Выяснилось, что вулкан тащит LLVM. То есть Месу с вулканом не собрать без вот этого всего.

Так что или маргинальничать в генте или переползать.

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

А если вручную собрать? для вулкана можно поставить просто vulkan-loader и прописать себе в конфиге icd на локальную библиотеку
Да и сам llvm не такой тяжёлый, если поправить llvm targets

mittorn ★★★★★
()
Последнее исправление: mittorn (всего исправлений: 1)
Ответ на: комментарий от mittorn

Да и сам llvm не такой тяжёлый, если поправить llvm targets

Это понятно. Меня больше спидерманки напрягает, потому что крыска не очень заходит.

utanho ★★★★★
() автор топика