Bug 33879 - Препятствует обновлению
: Препятствует обновлению
Status: CLOSED FIXED
: Sisyphus
(All bugs in Sisyphus/llvm4.0)
: unstable
: all Linux
: P3 minor
Assigned To:
:
:
:
:
:
  Show dependency tree
 
Reported: 2017-09-12 10:58 by
Modified: 2017-09-14 21:11 (History)


Attachments


Note

You need to log in before you can comment on or make changes to this bug.


Description From 2017-09-12 10:58:22
При обновлении предлагает вынести все Иксы:
Следующие пакеты будут УДАЛЕНЫ:
  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, может быть сделать их
переход один в другой более гладким?
------- Comment #1 From 2017-09-12 11:19:33 -------
(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?
------- Comment #2 From 2017-09-12 17:21:02 -------
(В ответ на комментарий №1)
...
> Мне кажется, это вообще не проблемы llvm, а сборки Mesa в Сизифе. Зачем ей
> требуется llvm, если при сборке указывается --enable-llvm-shared-libs=no и
> BuildRequires: llvm4.0-devel llvm4.0-devel-static?
Тоже верно, перевешиваю на xorg-dri-swrast
------- Comment #3 From 2017-09-13 12:10:20 -------
--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 по файлам не пересекаются?
------- Comment #4 From 2017-09-13 14:30:45 -------
(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 и действительно конфликтовал.
------- Comment #5 From 2017-09-13 14:58:25 -------
(В ответ на комментарий №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, иначе зачем вообще нужны эти либы
------- Comment #6 From 2017-09-14 15:30:28 -------
(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
------- Comment #7 From 2017-09-14 17:32:57 -------
(В ответ на комментарий №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
------- Comment #8 From 2017-09-14 21:11:18 -------
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.