diff --git a/.pick_status.json b/.pick_status.json index f80b7760e61..d19445d1f5f 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -14,7 +14,7 @@ "description": "meson: Force use of LLVM ORCJIT for hosts without MCJIT support", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "6f02ec5ed18a0a9bdd3739287cce54a621ea3bad", "notes": null diff --git a/meson.build b/meson.build index 60c8723da7b..a3d1b9af09a 100644 --- a/meson.build +++ b/meson.build @@ -1754,7 +1754,6 @@ if with_clc llvm_optional_modules += ['all-targets', 'windowsdriver', 'frontendhlsl', 'frontenddriver'] endif draw_with_llvm = get_option('draw-use-llvm') -llvm_with_orcjit = get_option('llvm-orcjit') 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 @@ -1762,6 +1761,12 @@ if draw_with_llvm endif amd_with_llvm = get_option('amd-use-llvm') +# MCJIT is deprecated in LLVM and will not accept new architecture ports, +# so any architecture not in the exhaustive list will have to rely on LLVM +# ORCJIT for llvmpipe functionality. +llvm_has_mcjit = host_machine.cpu_family() in ['aarch64', 'arm', 'ppc', 'ppc64', 's390x', 'x86', 'x86_64'] +llvm_with_orcjit = get_option('llvm-orcjit') or not llvm_has_mcjit + if with_amd_vk or with_gallium_radeonsi or with_clc or llvm_with_orcjit _llvm_version = '>= 15.0.0' elif with_gallium_clover diff --git a/meson_options.txt b/meson_options.txt index 718c6b8a7e7..382393e5097 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -444,7 +444,10 @@ option ( 'llvm-orcjit', type : 'boolean', value : false, - description: 'Build llvmpipe with LLVM ORCJIT support.' + description: 'Build llvmpipe with LLVM ORCJIT support. Has no effect when ' + + 'building for architectures without LLVM MCJIT support -- ' + + 'ORCJIT is the only choice on such architectures and will ' + + 'always be enabled.' ) option(