Falha na instalação da mesa a partir da origem - referência indefinida para llvm depois de executar o comando make

0

Estou tentando instalar o pacote mesa do repositório: git: //anongit.freedesktop.org/mesa / mesa . Eu executei com sucesso o seguinte comando de dentro da pasta mesa:

$ ./autogen.sh                            \
      --prefix=$NVD                       \
      --enable-texture-float              \
      --enable-gles1                      \
      --enable-gles2                      \
      --enable-glx                        \
      --enable-egl                        \
      --enable-gallium-egl                \
      --enable-gallium-llvm               \
      --enable-shared-glapi               \
      --enable-gbm                        \
      --enable-glx-tls                    \
      --enable-dri                        \
      --enable-osmesa                     \
      --with-egl-platforms=x11,drm        \
      --with-gallium-drivers=nouveau      \
      --with-dri-drivers=nouveau          \
      --enable-vdpau

$./configure

No entanto, quando executo o comando make com permissões de superusuário, recebo o seguinte erro:

../../../../src/gallium/auxiliary/.libs/libgallium.a(lp_bld_misc.o): In function 'llvm::RTDyldMemoryManager::getSymbolAddress(std::string const&)':
/usr/lib/llvm-3.8/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:77: undefined reference to 'llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::string const&)'
/usr/lib/llvm-3.8/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:77: undefined reference to 'llvm::RTDyldMemoryManager::getSymbolAddressInProcess(std::string const&)'
collect2: error: ld returned 1 exit status
Makefile:991: recipe for target 'gallium_dri.la' failed
make[4]: *** [gallium_dri.la] Error 1
make[4]: Leaving directory '/home/nouveau/mesa/src/gallium/targets/dri'
Makefile:620: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/nouveau/mesa/src/gallium'
Makefile:869: recipe for target 'all-recursive' failed
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory '/home/nouveau/mesa/src'
Makefile:660: recipe for target 'all' failed
make[1]: *** [all] Error 2
make[1]: Leaving directory '/home/nouveau/mesa/src'
Makefile:677: recipe for target 'all-recursive' failed
make: *** [all-recursive] Error 1
    
por T.Lazarus 03.05.2018 / 21:02

1 resposta

1

Primeiramente, é desnecessário criar mesa da fonte no Ubuntu. Ele já será instalado como parte do Xorg. Os três pacotes instalados são libglu1-mesa , libgl1-mesa-glx e libgl1-mesa-dri .

Se você realmente precisa construir mesa , então seu problema é com o novo (ish) c ++ 11 ABI. Como os links em este relatório de bug da Red Hat mostra , o problema é que seu llvm não foi compilado com c ++ 11. Você pode gostar de atualizar sua instalação llvm-3.8 com sudo apt-get install --only-upgrade llvm-3.8 . Caso contrário, talvez você queira instalar uma versão mais recente de llvm - llvm-3.9 , llvm-4.0 ou llvm-5.0 (recomendado).

    
por ubashu 04.05.2018 / 00:40