From 8e18e9f5619e95da0a8a3870f784f447fc3c0da0 Mon Sep 17 00:00:00 2001 From: pal1000 Date: Tue, 10 Nov 2020 13:59:13 +0200 Subject: [PATCH] mingw-w64-mesa: Add fallback code for when llvm-config is busted with dynamically linked LLVM --- mingw-w64-mesa/PKGBUILD | 4 ++-- mingw-w64-mesa/llvmwrapgen.sh | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/mingw-w64-mesa/PKGBUILD b/mingw-w64-mesa/PKGBUILD index 503e0d2b4d..0ad4cdb99c 100644 --- a/mingw-w64-mesa/PKGBUILD +++ b/mingw-w64-mesa/PKGBUILD @@ -23,7 +23,7 @@ source=(https://mesa.freedesktop.org/archive/${_realname}-${pkgver}.tar.xz{,.sig llvmwrapgen.sh) sha256sums=('1f93eb1090cf71490cd0e204e04f8427a82b6ed534b7f49ca50cea7dcc89b861' 'SKIP' - '44e7684f962442aa9733abcdd5bccff15f8d163b40149d113a68de2e8146fc55') + '69f21522f20c10f5699dfe3e128aa88d4fedde816f6e8df1506d7470c44bf3da') validpgpkeys=('8703B6700E7EE06D7A39B8D6EDAE37B02CEB490D') # Emil Velikov validpgpkeys+=('946D09B5E4C9845E63075FF1D961C596A7203456') # Andres Gomez validpgpkeys+=('E3E8F480C52ADD73B278EE78E1ECBE07D7D70895') # Juan Antonio Suárez Romero (Igalia, S.L.) " @@ -69,7 +69,7 @@ prepare() { # Generate binary wrap for LLVM if llvm-config tool is busted if ! [ "$(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1)" = YES ] && ! [ "$(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1)" = NO ]; then - nollvmconfig=1 ${srcdir}/llvmwrapgen.sh + nollvmconfig=1 llvm_static=false ${srcdir}/llvmwrapgen.sh fi } diff --git a/mingw-w64-mesa/llvmwrapgen.sh b/mingw-w64-mesa/llvmwrapgen.sh index 1cd1bbca41..9e6e66faf0 100644 --- a/mingw-w64-mesa/llvmwrapgen.sh +++ b/mingw-w64-mesa/llvmwrapgen.sh @@ -1,11 +1,17 @@ #!/bin/sh # Get LLVM libraries -if [ ${nollvmconfig} = 1 ]; then +if [ ${nollvmconfig} = 1 ] && [ ${llvm_static} = true ]; then llvmlibs='libLLVMCoroutines.a libLLVMipo.a libLLVMInstrumentation.a libLLVMVectorize.a libLLVMLinker.a libLLVMIRReader.a libLLVMAsmParser.a libLLVMFrontendOpenMP.a libLLVMX86Disassembler.a libLLVMX86AsmParser.a libLLVMX86CodeGen.a libLLVMCFGuard.a libLLVMGlobalISel.a libLLVMSelectionDAG.a libLLVMAsmPrinter.a libLLVMDebugInfoDWARF.a libLLVMCodeGen.a libLLVMScalarOpts.a libLLVMInstCombine.a libLLVMAggressiveInstCombine.a libLLVMTransformUtils.a libLLVMBitWriter.a libLLVMX86Desc.a libLLVMMCDisassembler.a libLLVMX86Info.a libLLVMMCJIT.a libLLVMExecutionEngine.a libLLVMTarget.a libLLVMAnalysis.a libLLVMProfileData.a libLLVMRuntimeDyld.a libLLVMObject.a libLLVMTextAPI.a libLLVMMCParser.a libLLVMBitReader.a libLLVMMC.a libLLVMDebugInfoCodeView.a libLLVMDebugInfoMSF.a libLLVMCore.a libLLVMRemarks.a libLLVMBitstreamReader.a libLLVMBinaryFormat.a libLLVMSupport.a libLLVMDemangle.a' -else +fi + +if ! [ ${nollvmconfig} = 1 ] && [ ${llvm_static} = true ]; then llvmlibs=$(${MINGW_PREFIX}/bin/llvm-config --link-static --libnames engine coroutines 2>&1) fi +if [ ${llvm_static} = false ]; then + llvmlibs=libLLVM +fi + # Get LLVM RTTI status rtti=false if [ $(${MINGW_PREFIX}/bin/llvm-config --has-rtti 2>&1) = YES ]; then @@ -16,6 +22,14 @@ fi llvmlibs="${llvmlibs//.a/}" llvmlibs=\'"${llvmlibs// /\', \'}"\' +# Get libraries directory +if [ ${llvm_static} = false ]; then + wraplibdir=bin +fi +if [ ${llvm_static} = true ]; then + wraplibdir=lib +fi + # Generate a Meson wrap file for LLVM mkdir -p ./subprojects/llvm FILE="./subprojects/llvm/meson.build" @@ -25,9 +39,9 @@ project('llvm', ['cpp']) cpp = meson.get_compiler('cpp') _deps = [] -_search = '$(cygpath -m ${MINGW_PREFIX})/lib' +_search = '$(cygpath -m ${MINGW_PREFIX})/${wraplibdir}' foreach d : [${llvmlibs}] - _deps += cpp.find_library(d, dirs : _search, static : true) + _deps += cpp.find_library(d, dirs : _search, static : ${llvm_static}) endforeach dep_llvm = declare_dependency(