Skip to content

Commit

Permalink
media-libs/libva: fix link with LLD 17
Browse files Browse the repository at this point in the history
Upstream-PR: intel/libva#732
Signed-off-by: Violet Purcell <[email protected]>
  • Loading branch information
vimproved committed Oct 12, 2023
1 parent 86ff5ce commit cec466b
Show file tree
Hide file tree
Showing 2 changed files with 50 additions and 0 deletions.
46 changes: 46 additions & 0 deletions media-libs/libva/files/libva-2.20.0-no-undefined-version.patch
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
From https://github.com/intel/libva/commit/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]>
--- /dev/null
+++ b/conftest.syms
@@ -0,0 +1,6 @@
+VERSION_1 {
+ global:
+ main;
+ local:
+ *;
+};
--- 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')
--- 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
4 changes: 4 additions & 0 deletions media-libs/libva/libva-2.20.0.ebuild
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,10 @@ MULTILIB_WRAPPED_HEADERS=(
/usr/include/va/va_dricommon.h
)

PATCHES=(
"${FILESDIR}/libva-2.20.0-no-undefined-version.patch"
)

multilib_src_configure() {
local emesonargs=(
-Ddriverdir="${EPREFIX}/usr/$(get_libdir)/va/drivers"
Expand Down

0 comments on commit cec466b

Please sign in to comment.