OpenCL/draw module: Support linking with LLVM and clang 15 static libraries
authorpal1000 <liviuprodea@yahoo.com>
Sun, 9 Oct 2022 21:56:03 +0000 (00:56 +0300)
committerMarge Bot <emma+marge@anholt.net>
Fri, 16 Dec 2022 16:52:48 +0000 (16:52 +0000)
Cc: mesa-stable
Closes: #7243

Closes: #7487

Reviewed-by: Karol Herbst <kherbst@redhat.com>
Reviewed-by: Yonggang Luo <luoyonggang@gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/19009>

meson.build
src/gallium/targets/opencl/meson.build

index 8cc6c0f..5c5b70a 100644 (file)
@@ -1785,15 +1785,21 @@ if with_gallium_opencl
     'linker', 'coverage', 'instrumentation', 'ipo', 'irreader',
     'lto', 'option', 'objcarcopts', 'profiledata'
   ]
-  llvm_optional_modules += ['all-targets', 'frontendopenmp']
+  # all-targets is needed to support static linking LLVM build with multiple targets
+  # windowsdriver is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet
+  llvm_optional_modules += ['all-targets', 'frontendopenmp', 'windowsdriver']
 endif
 if with_clc
   llvm_modules += ['coverage', 'target', 'linker', 'irreader', 'option', 'libdriver', 'lto']
-  llvm_optional_modules += ['all-targets']
+  # all-targets is needed to support static linking LLVM build with multiple targets
+  # windowsdriver is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet
+  llvm_optional_modules += ['all-targets', 'windowsdriver']
 endif
 draw_with_llvm = get_option('draw-use-llvm')
 if draw_with_llvm
   llvm_modules += 'native'
+  # lto is needded with LLVM>=15, but we don't know what LLVM verrsion we are using yet
+  llvm_optional_modules += ['lto']
 endif
 
 if with_intel_clc
@@ -1951,6 +1957,9 @@ if with_clc
       'clangHandleCXX', 'clangHandleLLVM', 'clangSerialization',
       'clangSema', 'clangParse', 'clangEdit', 'clangAnalysis'
     ]
+    if dep_llvm.version().version_compare('>= 15.0')
+      clang_modules += 'clangSupport'
+    endif
 
     dep_clang = []
     foreach m : clang_modules
index 7af210b..db3586b 100644 (file)
@@ -75,6 +75,10 @@ if not _shared_llvm or not (dep_clang.found() and dep_clang_usable)
     cpp.find_library('clangBasic', dirs : llvm_libdir),
     polly_dep, polly_isl_dep,
   ]
+  if dep_llvm.version().version_compare('>= 15.0')
+    dep_clang += cpp.find_library('clangSupport', dirs : llvm_libdir)
+  endif
+
   # check clang once more
   if can_check_clang
     test_run = cpp.run(clang_test_code, name : 'dep-clang-usable',