summaryrefslogtreecommitdiff
path: root/media-libs/libva/files/clang-17-version-script-check-fix.patch
blob: 670b8c80a8816d8ffea90806eff83642e2f4bf60 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
Upstream URL: https://github.com/intel/libva/pull/732
From 17e07d17ba723a6b5822390afacdd3ccd976ecd2 Mon Sep 17 00:00:00 2001
From: Violet Purcell <vimproved@inventati.org>
Date: Sun, 1 Oct 2023 16:34:19 -0400
Subject: [PATCH] va: Fix -Wl,--version-script check with LLD 17

LLD 17 uses --no-undefined-version by default, so the check currently
fails due to vaCreateSurface being undefined. This commit replaces that
check with a generic check in the top level meson.build, using the
conftest.syms file.

Signed-off-by: Violet Purcell <vimproved@inventati.org>
---
 conftest.syms  | 6 ++++++
 meson.build    | 6 ++++++
 va/meson.build | 2 +-
 3 files changed, 13 insertions(+), 1 deletion(-)
 create mode 100644 conftest.syms

diff --git a/conftest.syms b/conftest.syms
new file mode 100644
index 000000000..7d8590ff3
--- /dev/null
+++ b/conftest.syms
@@ -0,0 +1,6 @@
+VERSION_1 {
+    global:
+        main;
+    local:
+        *;
+};
diff --git a/meson.build b/meson.build
index 6acf90676..b37a85119 100644
--- a/meson.build
+++ b/meson.build
@@ -87,6 +87,12 @@ dl_dep = cc.find_library('dl', required : false)
 WITH_DRM = not get_option('disable_drm') and (host_machine.system() != 'windows')
 libdrm_dep = dependency('libdrm', version : '>= 2.4.60', required : (host_machine.system() != 'windows'))
 
+ld_supports_version_script = cc.links(
+  'int main() { return 0; }',
+  name : '-Wl,--version-script',
+  args : ['-shared', '-Wl,--version-script,' + '@0@/@1@'.format(meson.current_source_dir(), 'conftest.syms')]
+)
+
 WITH_X11 = false
 if get_option('with_x11') != 'no'
   x11_dep = dependency('x11', required : get_option('with_x11') == 'yes')
diff --git a/va/meson.build b/va/meson.build
index 372ae89ff..33c6cc8d3 100644
--- a/va/meson.build
+++ b/va/meson.build
@@ -60,7 +60,7 @@ libva_sym_arg = '-Wl,-version-script,' + '@0@/@1@'.format(meson.current_source_d
 
 libva_link_args = []
 libva_link_depends = []
-if cc.links('', name: '-Wl,--version-script', args: ['-shared', libva_sym_arg])
+if ld_supports_version_script
   libva_link_args = libva_sym_arg
   libva_link_depends = libva_sym
 endif