OpenCL/draw module: Support linking with LLVM and clang 15 static libraries

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>
(cherry picked from commit f69b43ae3e)
This commit is contained in:
pal1000 2022-10-10 00:56:03 +03:00 committed by Eric Engestrom
parent d03c94fa82
commit 3cfe9bb623
3 changed files with 16 additions and 3 deletions

View file

@ -2335,7 +2335,7 @@
"description": "OpenCL/draw module: Support linking with LLVM and clang 15 static libraries",
"nominated": true,
"nomination_type": 0,
"resolution": 0,
"resolution": 1,
"main_sha": null,
"because_sha": null
},

View file

@ -1739,15 +1739,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
@ -1905,6 +1911,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

View 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',