LINUX.ORG.RU

mesa и llvm

 , ,


1

2

Пересобрал mesa с выключенным флагом llvm. Теперь mesa собрана так:

media-libs/mesa-21.1.4::gentoo was built with the following:
USE="X classic dri3 egl gallium gbm wayland zstd -d3d9 -debug -gles1 -gles2 -llvm -lm-sensors -opencl -osmesa (-selinux) -test -unwind -vaapi -valgrind -vdpau -vulkan -vulkan-overlay -xa -xvmc -zink" ABI_X86="32 (64) (-x32)" VIDEO_CARDS="(-freedreno) -i915 -i965 -intel -iris (-lima) -nouveau (-panfrost) -r100 -r200 -r300 -r600 -radeon -radeonsi (-v3d) (-vc4) -virgl (-vivante) -vmware"
FEATURES="fixlafiles userfetch ebuild-locks sandbox unmerge-logs usersandbox strict protect-owned binpkg-logs network-sandbox qa-unresolved-soname-deps preserve-libs pid-sandbox sfperms unmerge-orphans distlocks multilib-strict config-protect-if-modified ipc-sandbox binpkg-dostrip parallel-fetch userpriv binpkg-docompress usersync news merge-sync assume-digests xattr unknown-features-warn"

Смотрю, что из пакетов теперь зависит от llvm:

 # equery d llvm
 * These packages depend on llvm:
media-libs/mesa-21.1.4 (video_cards_r600 ? sys-devel/llvm:12[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_r600 ? sys-devel/llvm:11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_r600 ? sys-devel/llvm:10[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (<sys-devel/llvm-13[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeonsi ? sys-devel/llvm:12[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeonsi ? sys-devel/llvm:11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeonsi ? sys-devel/llvm:10[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeon ? sys-devel/llvm:12[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeon ? sys-devel/llvm:11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (video_cards_radeon ? sys-devel/llvm:10[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?,llvm_targets_AMDGPU(-)])
                       (!video_cards_radeonsi ? sys-devel/llvm:12[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?])
                       (!video_cards_radeonsi ? sys-devel/llvm:11[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?])
                       (!video_cards_radeonsi ? sys-devel/llvm:10[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?])
                       (<sys-devel/llvm-13[abi_x86_32(-)?,abi_x86_64(-)?,abi_x86_x32(-)?,abi_mips_n32(-)?,abi_mips_n64(-)?,abi_mips_o32(-)?,abi_s390_32(-)?,abi_s390_64(-)?])

Для чего mesa требует llvm, если она собрана без поддержки llvm бэкенда?

И почему их две версии llvm установлены - 11.1 и 12.0 ? Причем обе нужны для mesa-21.1.4

P.S. Драйвер видео - nvidia, если это имеет значение.

★★★

Последнее исправление: Chord (всего исправлений: 1)

Сейчас сделал emerge --depclean, оба llvm были деинсталлированы (и 11 и 12 версия). Для проверки запустил emerge -avuDN world - пишет, что всё в норме, ничего собирать не надо - Nothing to merge.

Казалось бы всё хорошо, но equery d llvm по-прежнему говорит, что llvm нужен для mesa.

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

equery d показывает непонятно что.

Когда сидел на gentoo проверял, что танет пакет, попыткой удалить этот пакет.

$ emerge -pvc llvm
-с - удалить (если нет зависимостей)
-p - показывает, что будет сделано (но не делает)
-v - подробная информация (чтобы показать, почему не может)
anonymous
()
Ответ на: комментарий от anonymous

ну значит будем смотреть emerge -pvc

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

заголовки для сборки нормального софта не являются частью mesa:

https://github.com/KhronosGroup/OpenGL-Registry/blob/master/api/GL/glcorearb.h

если какому-то софту и требуются - то это гнилой вендорлок, за который в любом другом случае тут на лоре усрались бы ругать

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

меса дохрена кому нужна:

media-libs/mesa-21.1.4 pulled in by:
    dev-qt/qtgui-5.15.2-r1 requires media-libs/mesa[egl]
    dev-qt/qtwayland-5.15.2-r1 requires media-libs/mesa[egl]
    kde-frameworks/kwayland-5.82.0 requires media-libs/mesa[egl]
    kde-plasma/kwayland-server-5.21.5 requires media-libs/mesa[egl]
    kde-plasma/kwin-5.21.5 requires media-libs/mesa[egl,gbm,wayland,X(+)]
    media-libs/libepoxy-1.5.5 requires media-libs/mesa[egl,abi_x86_32(-),abi_x86_64(-)]
    virtual/opengl-7.0-r2 requires >=media-libs/mesa-9.1.6[X(+),abi_x86_32(-),abi_x86_64(-)]
    www-client/opera-77.0.4054.80 requires media-libs/mesa[gbm]
    x11-base/xorg-server-1.20.11 requires >=media-libs/mesa-18[X(+),egl,gbm]
    x11-libs/cairo-1.16.0-r4 requires >=media-libs/mesa-9.1.6[egl,X(+),abi_x86_32(-),abi_x86_64(-)]
    x11-libs/gtk+-3.24.29 requires media-libs/mesa[X(+),abi_x86_32(-),abi_x86_64(-)]

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

Мезовский софтварный рендерер основан на llvm бекэнде. Подтягивает зависимость llvm для работоспособности. Там в этой вашей генте есть переключалка чтобы оно софтварь не компилило? (Не рекомендую)

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

насколько я помню, блоб представляет gl только для новых карт. Для легаси как у меня - нет, поэтому пришлось перейти на меса, а там раньше у меня меса тоже не использовалась, пока мою GTX-550Ti не выбросили на мороз

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

Сама меса не особо напрягает, её компилять пару минут. Главное от llvm избавился, а это пару часов лишних.

Собственно вопрос решен

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

Можно указать что угодно чего не надо. Если в пакете включена фича, пакетник все равно подтянет зависимость. А если принудительно отрубить, то можно систему сломать, если оно это разрулить не может.

Я бы потратил время на изучение скрипта сборки.

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

заменена кем? для 4xx карт идёт полный легаси драйвер 390*

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

те флаги, принудительное отключение которых может сломать пакет, они недоступны для прямого управления (через make.conf или package.use), только путем правки скриптов сборки. Если что-то нахомутаешь - portage просто не даст собрать пакет. Доступны для управления те флаги, которые можно безопасно включать/отключать. llvm флаг управляется через package.use, отключение его (именно для меса) никак не отражается на других пакетах.

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

Для чего mesa требует llvm?

может попутал что

nanosecond
()

это поди расты рептилойды пропагандируют свой подарочег скромно добро

nanosecond
()
Последнее исправление: nanosecond (всего исправлений: 5)

да не требует mesa llvm, llvm только для некоторых radeon нужен, в ebuild рекомендацию +llvm рептилойды выставили просто, и по дефолту оно тянется

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

Проблема была в том, что equery d некорректно показывает зависимости. mesa не зависит от llvm, а equery показывает, что зависит.

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

Ну и пофиг. equery устарел, не пользуйся им

Чем пользоваться? Что показывает реальные зависимости?

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

Если не собираешься компилировать всяческие ускорения и софт для андроида допустим опенсв то избавляйся , а чей сколько умных было и до этого всего вывода

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

Это мой костыль. И это костыль для инвалидов, а не рабочий инструмент для людей без ограничений. Показывай, давай, уже «современный инструмент».

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

equery устарел

Где нибудь на английском об этом написано? Багрепорты есть? Это официально объявлено или это твоё сугубое мнение? Просто я им активно пользуюсь, а тут оказывается такие новости неожиданные.

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

Потому что ты просишь. По крайней мере для других фич equery, например equery b или equery f утилиты из portage-utils (qfile и qlist соответственно) работают намного лучше чем собственно equery.

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

qdepend

qfile и qlist

Q-утилиты - это типа быстрый велосипед, написанный на C(си), для некоторых родных E-утилит (euse, equery и тп).

Так что твое сообщение про «устарелость/современность» очень сомнительно, так как q-утилиты - это следствие родных e-утилит, и вся новая функциональность будет писаться на родном питоне, только потом возможно портируют на язык C.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.