Skip to content

Commit

Permalink
media-libs/libva: backport proposed upstream patch
Browse files Browse the repository at this point in the history
Backport proposed upstream patch from
intel/libva#732

Fixes Gentoo bug: 919505 ( https://bugs.gentoo.org/919505 )

Signed-off-by: Nicholas Vinson <[email protected]>
  • Loading branch information
nvinson committed Jan 15, 2024
1 parent 6486bf8 commit 287fd3c
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 1 deletion.
61 changes: 61 additions & 0 deletions media-libs/libva/files/clang-17-version-script-check-fix.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
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

6 changes: 5 additions & 1 deletion media-libs/libva/libva-2.20.0.ebuild
Original file line number Diff line number Diff line change
@@ -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
Expand Down Expand Up @@ -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"
Expand Down

0 comments on commit 287fd3c

Please sign in to comment.