[Bug 282316] graphics/mesa-dri: fix build with clang 19

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 25 Oct 2024 17:46:23 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=282316

Jung-uk Kim <jkim@FreeBSD.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #254502|0                           |1
        is obsolete|                            |

--- Comment #1 from Jung-uk Kim <jkim@FreeBSD.org> ---
Created attachment 254511
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=254511&action=edit
Fix build with clang 19 and correct TLS model

I just realized it builds with the previous patch but it does not work because
it causes errors like this:

% vulkaninfo
ERROR: [Loader Message] Code 0 : /usr/local/lib/libvulkan_intel.so: Unsupported
relocation type 36 in non-PLT relocations

ERROR: [Loader Message] Code 0 : loader_icd_scan: Failed loading library
associated with ICD JSON /usr/local/lib/libvulkan_intel.so. Ignoring this JSON
ERROR: [Loader Message] Code 0 : /usr/local/lib/libvulkan_radeon.so:
Unsupported relocation type 36 in non-PLT relocations

ERROR: [Loader Message] Code 0 : loader_icd_scan: Failed loading library
associated with ICD JSON /usr/local/lib/libvulkan_radeon.so. Ignoring this JSON
ERROR: [Loader Message] Code 0 : /usr/local/lib/libvulkan_lvp.so: Unsupported
relocation type 36 in non-PLT relocations

ERROR: [Loader Message] Code 0 : loader_icd_scan: Failed loading library
associated with ICD JSON /usr/local/lib/libvulkan_lvp.so. Ignoring this JSON
ERROR: [Loader Message] Code 0 : vkCreateInstance: Found no drivers!
Cannot create Vulkan instance.
This problem is often caused by a faulty installation of the Vulkan driver or
attempting to use a GPU that does not support Vulkan.
ERROR at
/data/usr/obj/usr/ports/graphics/vulkan-tools/work/Vulkan-Tools-1.3.299/vulkaninfo/./vulkaninfo.h:456:vkCreateInstance
failed with ERROR_INCOMPATIBLE_DRIVER

The reason is because clang 19 now supports "-mtls-dialect=gnu2" but our rtld
does not support this model (yet?).  Instead, we have been using
"-ftls-model=initial-exec" for a while.  This patch adds our TLS
implementation.

-- 
You are receiving this mail because:
You are the assignee for the bug.