Summary: | Препятствует обновлению | ||
---|---|---|---|
Product: | Sisyphus | Reporter: | Vitaly Lipatov <lav> |
Component: | llvm4.0 | Assignee: | Konstantin A Lepikhov (L.A. Kostis) <lakostis> |
Status: | CLOSED FIXED | QA Contact: | qa-sisyphus |
Severity: | minor | ||
Priority: | P3 | CC: | mike |
Version: | unstable | ||
Hardware: | all | ||
OS: | Linux |
Description
Vitaly Lipatov
2017-09-12 10:58:22 MSK
(In reply to comment #0) > При обновлении предлагает вынести все Иксы: > Следующие пакеты будут УДАЛЕНЫ: > antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel > libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full > xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit > xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk > xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra > xvfb-run > Помогает персональное обновление xorg-dri-swrast: > Следующие пакеты будут ОБНОВЛЕНЫ: > glxgears glxinfo libEGL libEGL-debuginfo libEGL-devel libGL libGL-debuginfo > libGL-devel libGLES libgbm libgbm-debuginfo libgbm-devel libwayland-egl > libwayland-egl-devel xorg-dri-swrast > Следующие пакеты будут УДАЛЕНЫ: > clang llvm > Следующие НОВЫЕ пакеты будут установлены: > llvm4.0-libs > > Поскольку llvm всё равно теперь не уживается с llvm4.0, может быть сделать их > переход один в другой более гладким? Мне кажется, это вообще не проблемы llvm, а сборки Mesa в Сизифе. Зачем ей требуется llvm, если при сборке указывается --enable-llvm-shared-libs=no и BuildRequires: llvm4.0-devel llvm4.0-devel-static? (В ответ на комментарий №1)
...
> Мне кажется, это вообще не проблемы llvm, а сборки Mesa в Сизифе. Зачем ей
> требуется llvm, если при сборке указывается --enable-llvm-shared-libs=no и
> BuildRequires: llvm4.0-devel llvm4.0-devel-static?
Тоже верно, перевешиваю на xorg-dri-swrast
--enable-llvm-shared-libs=no осталось с mesa 17.1 и с llvm 4.0 не работает [builder@localhost .in]$ llvm-config --version 3.8.0 [builder@localhost .in]$ llvm-config --libs -lLLVMLTO -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB -lLLVMDebugInfoDWARF -lLLVMTableGen -lLLVMOrcJIT -lLLVMARMDisassembler -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMCppBackendCodeGen -lLLVMCppBackendInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo -lLLVMNVPTXAsmPrinter -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLibDriver -lLLVMOption -lLLVMLineEditor -lLLVMPasses -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfoCodeView -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMProfileData -lLLVMObject -lLLVMMCParser -lLLVMTransformUtils -lLLVMMC -lLLVMBitWriter -lLLVMBitReader -lLLVMAnalysis -lLLVMCore -lLLVMSupport [builder@localhost .in]$ llvm-config --version 4.0.0 [builder@localhost .in]$ llvm-config --libs -lLLVM-4.0 Можно было бы добавить --link-shared, если бы не /usr/lib64/libLLVMSupport.a(Process.cpp.o): In function `terminalHasColors': /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:350: undefined reference to `setupterm' /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:368: undefined reference to `tigetnum' /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:372: undefined reference to `set_curterm' /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:373: undefined reference to `del_curterm' collect2: error: ld returned 1 exit status а теперь внимание вопрос [builder@localhost .in]$ rpmquery -l llvm4.0-libs /usr/lib64/LLVMgold.so /usr/lib64/libLLVM-4.0.0.so /usr/lib64/libLLVM-4.0.so /usr/lib64/libLTO.so.4 /usr/lib64/libLTO.so.4.0.0 [builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs llvm <= 3.8.0 нахрена, если llvm4.0-libs и llvm по файлам не пересекаются? (In reply to comment #3) > --enable-llvm-shared-libs=no осталось с mesa 17.1 и с llvm 4.0 не работает Эта опция работает как надо (хотя зачем mesa у нас собирается со статическим llvm неизвестно): $ llvm-config --link-static --system-libs -lrt -ldl -ltinfo -lpthread -lz -lm Поддержка llvm4 была добавлена в код Mesa еще в 2016 году: commit b107169eef92e740180df468d1eae4cc61a52757 ... configure: add support for LLVM 4.0.0svn static libs > > [builder@localhost .in]$ llvm-config --version > 3.8.0 > [builder@localhost .in]$ llvm-config --libs > -lLLVMLTO -lLLVMObjCARCOpts -lLLVMMIRParser -lLLVMSymbolize -lLLVMDebugInfoPDB > -lLLVMDebugInfoDWARF -lLLVMTableGen -lLLVMOrcJIT -lLLVMARMDisassembler > -lLLVMARMCodeGen -lLLVMARMAsmParser -lLLVMARMDesc -lLLVMARMInfo > -lLLVMARMAsmPrinter -lLLVMAArch64Disassembler -lLLVMAArch64CodeGen > -lLLVMAArch64AsmParser -lLLVMAArch64Desc -lLLVMAArch64Info > -lLLVMAArch64AsmPrinter -lLLVMAArch64Utils -lLLVMCppBackendCodeGen > -lLLVMCppBackendInfo -lLLVMNVPTXCodeGen -lLLVMNVPTXDesc -lLLVMNVPTXInfo > -lLLVMNVPTXAsmPrinter -lLLVMAMDGPUCodeGen -lLLVMAMDGPUAsmParser > -lLLVMAMDGPUDesc -lLLVMAMDGPUUtils -lLLVMAMDGPUInfo -lLLVMAMDGPUAsmPrinter > -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMSelectionDAG > -lLLVMAsmPrinter -lLLVMX86Desc -lLLVMMCDisassembler -lLLVMX86Info > -lLLVMX86AsmPrinter -lLLVMX86Utils -lLLVMMCJIT -lLLVMLibDriver -lLLVMOption > -lLLVMLineEditor -lLLVMPasses -lLLVMipo -lLLVMVectorize -lLLVMLinker > -lLLVMIRReader -lLLVMAsmParser -lLLVMDebugInfoCodeView -lLLVMInterpreter > -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMCodeGen -lLLVMTarget > -lLLVMScalarOpts -lLLVMInstCombine -lLLVMInstrumentation -lLLVMProfileData > -lLLVMObject -lLLVMMCParser -lLLVMTransformUtils -lLLVMMC -lLLVMBitWriter > -lLLVMBitReader -lLLVMAnalysis -lLLVMCore -lLLVMSupport > > [builder@localhost .in]$ llvm-config --version > 4.0.0 > [builder@localhost .in]$ llvm-config --libs > -lLLVM-4.0 Потому что (сюрприз!) все эти либы находятся внутри LLVM-4.0. > > Можно было бы добавить --link-shared, если бы не > /usr/lib64/libLLVMSupport.a(Process.cpp.o): In function `terminalHasColors': > /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:350: undefined > reference to `setupterm' > /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:368: undefined > reference to `tigetnum' > /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:372: undefined > reference to `set_curterm' > /usr/src/RPM/BUILD/llvm-4.0.0/lib/Support/Unix/Process.inc:373: undefined > reference to `del_curterm' > collect2: error: ld returned 1 exit status Ничего не понятно. Приведет вывод для static а говорим о shared. К чему это? > > а теперь внимание вопрос > [builder@localhost .in]$ rpmquery -l llvm4.0-libs > /usr/lib64/LLVMgold.so > /usr/lib64/libLLVM-4.0.0.so > /usr/lib64/libLLVM-4.0.so > /usr/lib64/libLTO.so.4 > /usr/lib64/libLTO.so.4.0.0 > [builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs > llvm <= 3.8.0 > > нахрена, если llvm4.0-libs и llvm по файлам не пересекаются? Потому что в момент сборки llvm4.0 была потребность максимально его изолировать от системного llvm. Более того, в какой-то момент libLLVM-4.0 просто назывался libLLVM.so и действительно конфликтовал. (В ответ на комментарий №4) ... > хотя зачем mesa у нас собирается со статическим > llvm неизвестно что бы вот таких вот проблем не возникало ... > Ничего не понятно. Приведет вывод для static а говорим о shared. К чему это? --link-static имелось ввиду > > > > > а теперь внимание вопрос > > [builder@localhost .in]$ rpmquery -l llvm4.0-libs > > /usr/lib64/LLVMgold.so > > /usr/lib64/libLLVM-4.0.0.so > > /usr/lib64/libLLVM-4.0.so > > /usr/lib64/libLTO.so.4 > > /usr/lib64/libLTO.so.4.0.0 > > [builder@localhost .in]$ rpmquery --conflicts llvm4.0-libs > > llvm <= 3.8.0 > > > > нахрена, если llvm4.0-libs и llvm по файлам не пересекаются? > Потому что в момент сборки llvm4.0 была потребность максимально его изолировать > от системного llvm. Более того, в какой-то момент libLLVM-4.0 просто назывался > libLLVM.so и действительно конфликтовал. ну так исправь уже llvm4.0-libs, иначе зачем вообще нужны эти либы (In reply to comment #5) > (В ответ на комментарий №4) > ... > > хотя зачем mesa у нас собирается со статическим > > llvm неизвестно > > что бы вот таких вот проблем не возникало > ... Каких проблем? Проблемы созданы на ровном месте - статическая линковка вместо динамической, из-за этого swrast таскает с собой жирный кусок функционала, который не нужен. Решение проблемы - убрать _один_ флаг из configure и _один_ пакет из BR. > > ну так исправь уже llvm4.0-libs, иначе зачем вообще нужны эти либы Даже если я и исправлю, это никак не отразится на сборке Mesa. 2lav: И все-таки, я не понимаю, как обновление xorg-dri-swrast решает проблему - и почему вообще clang и llvm тут каким-то боком. Либо кто-то из этого списка их требует явно или неявно: antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra xvfb-run (В ответ на комментарий №6) ... > > 2lav: И все-таки, я не понимаю, как обновление xorg-dri-swrast решает проблему > - и почему вообще clang и llvm тут каким-то боком. Либо кто-то из этого списка > их требует явно или неявно: Не знаю, я не вдавался. Ясно только, что список к удалению — это следствие удаления swrast. Например, есть такая цепочка зависимостей: antico -> xinitrc -> xorg-server -> xorg-dri-swrast > antico dwm gdal gnome-session libaudit-devel libclutter-devel libcogl-devel > libdrm-devel libgdal libgdal-devel numlockx tigervnc xfce4-default xfce4-full > xfce4-minimal xfce4-session xfce4-session-engines xfce4-settings xinit > xinitrc xorg-dri-swrast xorg-drv-evdev xorg-drv-fbdev xorg-drv-vesa xorg-sdk > xorg-server xorg-utils xorg-xdmx xorg-xephyr xorg-xnest xorg-xvfb xpra > xvfb-run llvm4.0-4.0.1-alt1.1.rel -> sisyphus: Thu Sep 14 2017 L.A. Kostis <lakostis@altlinux.ru> 4.0.1-alt1.1.rel - remove conflicts: llvm from -libs pkg (closes #33879). Sun Sep 10 2017 Evgeny Sinelnikov <sin@altlinux.ru> 4.0.1-alt1.rel - Updated 4.0.0 release and build configuration: + Enabled AVR experimental target. |