summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWANG Xuerui <xen0n@gentoo.org>2022-05-18 13:50:26 +0800
committerWANG Xuerui <xen0n@gentoo.org>2022-05-18 13:50:44 +0800
commit3a9e9e241e735eb9cd1a8bfe1340e8665ccd3680 (patch)
tree3efbffbca46a049380ddb7cd7c2e01824da3d1d1
parentnet-misc/yt-dlp: add 2022.5.18 (diff)
downloadgentoo-3a9e9e241e735eb9cd1a8bfe1340e8665ccd3680.tar.gz
gentoo-3a9e9e241e735eb9cd1a8bfe1340e8665ccd3680.tar.bz2
gentoo-3a9e9e241e735eb9cd1a8bfe1340e8665ccd3680.zip
media-libs/gstreamer: fix build on loong
Signed-off-by: WANG Xuerui <xen0n@gentoo.org>
-rw-r--r--media-libs/gstreamer/files/gstreamer-1.20-loong.patch28
-rw-r--r--media-libs/gstreamer/gstreamer-1.20.2.ebuild4
2 files changed, 32 insertions, 0 deletions
diff --git a/media-libs/gstreamer/files/gstreamer-1.20-loong.patch b/media-libs/gstreamer/files/gstreamer-1.20-loong.patch
new file mode 100644
index 000000000000..833c217ca829
--- /dev/null
+++ b/media-libs/gstreamer/files/gstreamer-1.20-loong.patch
@@ -0,0 +1,28 @@
+https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2443,
+with file path tweaked to suit dist tarball layout.
+
+From: WANG Xuerui <xen0n@gentoo.org>
+Date: Wed, 18 May 2022 10:04:08 +0800
+Subject: [PATCH] gstreamer/gst/gstconfig.h.in: Add support for LoongArch
+
+While current and future LoongArch machines that are supposed to run
+GStreamer all support unaligned accesses, there might be future
+lower-end cores (e.g. the embedded product line) without such support,
+and we may not want to penalize these use cases.
+
+So, mark LoongArch as not supporting unaligned accesses for now, and
+hope the compilers do a good job optimizing them. We can always flip
+switch later.
+
+Suggested-by: CHEN Tao <redeast_cn@outlook.com>
+--- a/gst/gstconfig.h.in
++++ b/gst/gstconfig.h.in
+@@ -124,7 +124,7 @@
+ * http://docs.oracle.com/cd/E19205-01/820-4155/c++_faq.html#Vers6
+ * https://software.intel.com/en-us/node/583402
+ */
+-#if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_ARM64) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__) || defined(__riscv) || defined(__ARC64__)
++#if defined(__alpha__) || defined(__arc__) || defined(__arm__) || defined(__aarch64__) || defined(__bfin) || defined(__hppa__) || defined(__nios2__) || defined(__MICROBLAZE__) || defined(__mips__) || defined(__or1k__) || defined(__sh__) || defined(__SH4__) || defined(__sparc__) || defined(__sparc) || defined(__ia64__) || defined(_M_ALPHA) || defined(_M_ARM) || defined(_M_ARM64) || defined(_M_IA64) || defined(__xtensa__) || defined(__e2k__) || defined(__riscv) || defined(__ARC64__) || defined(__loongarch__)
+ # define GST_HAVE_UNALIGNED_ACCESS 0
+ #elif defined(__i386__) || defined(__i386) || defined(__amd64__) || defined(__amd64) || defined(__x86_64__) || defined(__ppc__) || defined(__ppc64__) || defined(__powerpc__) || defined(__powerpc64__) || defined(__m68k__) || defined(_M_IX86) || defined(_M_AMD64) || defined(_M_X64) || defined(__s390__) || defined(__s390x__) || defined(__zarch__)
+ # define GST_HAVE_UNALIGNED_ACCESS 1
diff --git a/media-libs/gstreamer/gstreamer-1.20.2.ebuild b/media-libs/gstreamer/gstreamer-1.20.2.ebuild
index ef777a56fe5a..9372a822f7e7 100644
--- a/media-libs/gstreamer/gstreamer-1.20.2.ebuild
+++ b/media-libs/gstreamer/gstreamer-1.20.2.ebuild
@@ -33,6 +33,10 @@ BDEPEND="
DOCS=( AUTHORS ChangeLog NEWS MAINTAINERS README.md RELEASE )
+PATCHES=(
+ "${FILESDIR}/${PN}-1.20-loong.patch"
+)
+
multilib_src_configure() {
local emesonargs=(
-Dbenchmarks=disabled