[Bug 274088] multimedia/libva: fix build with lld 17
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Mon, 25 Sep 2023 19:04:05 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=274088 Bug ID: 274088 Summary: multimedia/libva: fix build with lld 17 Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: jbeich@FreeBSD.org Reporter: dim@FreeBSD.org Assignee: jbeich@FreeBSD.org Flags: maintainer-feedback?(jbeich@FreeBSD.org) When building libva with lld >= 17, an error similar to the following is emitted when linking libva.so: ld: error: va/libva.so.2.2000.0.p/va_compat.c.o: symbol vaCreateSurfaces@VA_API_0.32.0 has undefined version VA_API_0.32.0 The root cause is that lld 17 checks linker version scripts more strictly by default, and emits an error when undefined symbols or undefined versions are referenced. Earlier in the build, it turns out that due to these lld errors, va's meson.build fails to detect --version-script support: Checking if "-Wl,--version-script" : links: NO This is because the small test program used by meson to check whether a shared library can be linked with the libva.syms version script is completely empty, and therefore the two symbols in the version script, vaCreateSurfaces_0_32_0 and vaCreateSurfaces, are undefined. Fix the problem by providing placeholder definitions for these symbols in the code argument to meson's cc.links() function. This ensures that meson correctly detects --version-script support with lld version 17 or later, and makes it possible to link the libva shared library. NOTE: also submitted upstream as https://github.com/intel/libva/pull/758 -- You are receiving this mail because: You are the assignee for the bug.