commit: f9c320c49081d55184f4852be82b56c9e0275f84 Author: James Le Cuirot <chewi <AT> gentoo <DOT> org> AuthorDate: Fri Feb 9 22:23:09 2024 +0000 Commit: James Le Cuirot <chewi <AT> gentoo <DOT> org> CommitDate: Fri Feb 9 22:23:09 2024 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f9c320c4
media-libs/libv4l: Patch to fix building against libc++ This has been submitted upstream. Closes: https://bugs.gentoo.org/919795 Signed-off-by: James Le Cuirot <chewi <AT> gentoo.org> media-libs/libv4l/files/libv4l-1.26.1-libcxx.patch | 58 ++++++++++++++++++++++ media-libs/libv4l/libv4l-1.26.1.ebuild | 1 + 2 files changed, 59 insertions(+) diff --git a/media-libs/libv4l/files/libv4l-1.26.1-libcxx.patch b/media-libs/libv4l/files/libv4l-1.26.1-libcxx.patch new file mode 100644 index 000000000000..5b5eea83bc9a --- /dev/null +++ b/media-libs/libv4l/files/libv4l-1.26.1-libcxx.patch @@ -0,0 +1,58 @@ +From c7ef1a55bb6accb708a4e09d71028b904b07e49e Mon Sep 17 00:00:00 2001 +From: James Le Cuirot <[email protected]> +Date: Wed, 7 Feb 2024 22:48:59 +0000 +Subject: [PATCH] v4l2-compliance: Fix building against libc++ + +v4l2-test-time32-64.cpp included compiler.h, which checks +_LIBCPP_VERSION. This only works against libc++ when a C++ header has +already been included, which wasn't the case here. + +The <version> header is the C++20 method of defining _LIBCPP_VERSION, +but for older versions, <ciso646> works as an alternative, so include +that in compiler.h. + +compiler.h is for C as well as C++ though, so use __cplusplus to check +for a C++ compiler before including <ciso646>. + +Signed-off-by: James Le Cuirot <[email protected]> +--- + include/compiler.h | 27 ++++++++++++--------------- + 1 file changed, 12 insertions(+), 15 deletions(-) + +diff --git a/include/compiler.h b/include/compiler.h +index 5ad54f41..169247a8 100644 +--- a/include/compiler.h ++++ b/include/compiler.h +@@ -1,17 +1,14 @@ +-#ifdef _LIBCPP_VERSION +-#define fallthrough _LIBCPP_FALLTHROUGH() ++#if !defined(__cplusplus) || __cplusplus < 201103L ++ #define fallthrough ((void)0) + #else +- +-#if __cplusplus >= 201103L +- +-#ifdef __clang__ +-#define fallthrough [[clang::fallthrough]] +-#else +-#define fallthrough [[gnu::fallthrough]] +-#endif // __clang__ +- +-#else +-#define fallthrough ((void)0) +- ++ #include <ciso646> ++ #ifdef _LIBCPP_VERSION ++ #define fallthrough _LIBCPP_FALLTHROUGH() ++ #else ++ #ifdef __clang__ ++ #define fallthrough [[clang::fallthrough]] ++ #else ++ #define fallthrough [[gnu::fallthrough]] ++ #endif // __clang__ ++ #endif // _LIBCPP_VERSION + #endif // __cplusplus +-#endif // _LIBCPP_VERSION +-- +2.43.0 + diff --git a/media-libs/libv4l/libv4l-1.26.1.ebuild b/media-libs/libv4l/libv4l-1.26.1.ebuild index d29bf0e53ee9..3480dac0970b 100644 --- a/media-libs/libv4l/libv4l-1.26.1.ebuild +++ b/media-libs/libv4l/libv4l-1.26.1.ebuild @@ -67,6 +67,7 @@ S="${WORKDIR}/${MY_P}" PATCHES=( "${FILESDIR}"/${PN}-1.26.0-meson.patch + "${FILESDIR}"/${PN}-1.26.1-libcxx.patch ) check_llvm() {
