commit:     1c1f23a3f5823b569085863bbf6c70fa4bb5d076
Author:     Nicholas Vinson <nvinson234 <AT> gmail <DOT> com>
AuthorDate: Mon Jan 15 15:41:17 2024 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Wed Jan 17 05:43:55 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=1c1f23a3

media-libs/libva: backport proposed upstream patch

Backport proposed upstream patch from
https://github.com/intel/libva/pull/732

Bug: https://bugs.gentoo.org/919505
Signed-off-by: Nicholas Vinson <nvinson234 <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/34818
Signed-off-by: Sam James <sam <AT> gentoo.org>

 .../files/clang-17-version-script-check-fix.patch  | 62 ++++++++++++++++++++++
 media-libs/libva/libva-2.20.0.ebuild               |  6 ++-
 2 files changed, 67 insertions(+), 1 deletion(-)

diff --git a/media-libs/libva/files/clang-17-version-script-check-fix.patch 
b/media-libs/libva/files/clang-17-version-script-check-fix.patch
new file mode 100644
index 000000000000..670b8c80a881
--- /dev/null
+++ b/media-libs/libva/files/clang-17-version-script-check-fix.patch
@@ -0,0 +1,62 @@
+Upstream URL: https://github.com/intel/libva/pull/732
+From 17e07d17ba723a6b5822390afacdd3ccd976ecd2 Mon Sep 17 00:00:00 2001
+From: Violet Purcell <[email protected]>
+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 <[email protected]>
+---
+ 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
+

diff --git a/media-libs/libva/libva-2.20.0.ebuild 
b/media-libs/libva/libva-2.20.0.ebuild
index 26ee296ce8db..6b90d7162477 100644
--- a/media-libs/libva/libva-2.20.0.ebuild
+++ b/media-libs/libva/libva-2.20.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=8
@@ -48,6 +48,10 @@ MULTILIB_WRAPPED_HEADERS=(
        /usr/include/va/va_dricommon.h
 )
 
+PATCHES=(
+       "${FILESDIR}/clang-17-version-script-check-fix.patch"
+)
+
 multilib_src_configure() {
        local emesonargs=(
                -Ddriverdir="${EPREFIX}/usr/$(get_libdir)/va/drivers"

Reply via email to