summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexis Ballier <aballier@gentoo.org>2017-06-16 11:15:58 +0200
committerAlexis Ballier <aballier@gentoo.org>2017-06-16 11:36:29 +0200
commitbb4c53415c23a7a2e70f97f0690afad9ea06bb8f (patch)
tree2bb55701c485e6c22c3085faa65cc9452b77e629 /media-libs/kvazaar
parentmedia-libs/openh264: keyword ~arm64 (diff)
downloadgentoo-bb4c53415c23a7a2e70f97f0690afad9ea06bb8f.tar.gz
gentoo-bb4c53415c23a7a2e70f97f0690afad9ea06bb8f.tar.bz2
gentoo-bb4c53415c23a7a2e70f97f0690afad9ea06bb8f.zip
media-libs/kvazaar: backport upstream fix to build with gcc7.
Package-Manager: Portage-2.3.6, Repoman-2.3.2
Diffstat (limited to 'media-libs/kvazaar')
-rw-r--r--media-libs/kvazaar/files/gcc7.patch46
-rw-r--r--media-libs/kvazaar/kvazaar-1.1.0.ebuild1
2 files changed, 47 insertions, 0 deletions
diff --git a/media-libs/kvazaar/files/gcc7.patch b/media-libs/kvazaar/files/gcc7.patch
new file mode 100644
index 000000000000..12ff8ad00ff7
--- /dev/null
+++ b/media-libs/kvazaar/files/gcc7.patch
@@ -0,0 +1,46 @@
+commit 47a9f0de049e77e866ea5bdd4bc7c795ea6dd641
+Author: Ari Lemmetti <ari.lemmetti@gmail.com>
+Date: Tue Apr 11 12:57:22 2017 +0300
+
+ Modify and use FILL_ARRAY macro to prevent warning on GCC 7
+
+ Following warning was given and is false positive
+
+ error: 'memset' used with length equal to number of elements without multiplication by element size [-Werror=memset-elt-size]
+
+diff --git a/src/global.h b/src/global.h
+index bedcd49..5181674 100644
+--- a/src/global.h
++++ b/src/global.h
+@@ -219,7 +219,11 @@ typedef int16_t coeff_t;
+ // Fill a structure or a static array with val bytes.
+ #define FILL(var, val) memset(&(var), (val), sizeof(var))
+ // Fill a number of elements in an array with val bytes.
+-#define FILL_ARRAY(ar, val, size) memset((ar), (val), (size) * sizeof(*(ar)))
++#define FILL_ARRAY(ar, val, size) \
++{\
++ void *temp_ptr = (void*)(ar);\
++ memset((temp_ptr), (val), (size) * sizeof(*(ar)));\
++}
+
+ #define FREE_POINTER(pointer) { free((void*)pointer); pointer = NULL; }
+ #define MOVE_POINTER(dst_pointer,src_pointer) { dst_pointer = src_pointer; src_pointer = NULL; }
+diff --git a/src/rdo.c b/src/rdo.c
+index 52305fd..2579f28 100644
+--- a/src/rdo.c
++++ b/src/rdo.c
+@@ -558,10 +558,10 @@ void kvz_rdoq(encoder_state_t * const state, coeff_t *coef, coeff_t *dest_coeff,
+ // Explicitly tell the only possible numbers of elements to be zeroed.
+ // Hope the compiler is able to utilize this information.
+ switch (cg_num) {
+- case 1: memset(sig_coeffgroup_flag, 0, 1 * sizeof(sig_coeffgroup_flag[0])); break;
+- case 4: memset(sig_coeffgroup_flag, 0, 4 * sizeof(sig_coeffgroup_flag[0])); break;
+- case 16: memset(sig_coeffgroup_flag, 0, 16 * sizeof(sig_coeffgroup_flag[0])); break;
+- case 64: memset(sig_coeffgroup_flag, 0, 64 * sizeof(sig_coeffgroup_flag[0])); break;
++ case 1: FILL_ARRAY(sig_coeffgroup_flag, 0, 1); break;
++ case 4: FILL_ARRAY(sig_coeffgroup_flag, 0, 4); break;
++ case 16: FILL_ARRAY(sig_coeffgroup_flag, 0, 16); break;
++ case 64: FILL_ARRAY(sig_coeffgroup_flag, 0, 64); break;
+ default: assert(0 && "There should be 1, 4, 16 or 64 coefficient groups");
+ }
+
diff --git a/media-libs/kvazaar/kvazaar-1.1.0.ebuild b/media-libs/kvazaar/kvazaar-1.1.0.ebuild
index 750b6feced9f..959e9d94b3d6 100644
--- a/media-libs/kvazaar/kvazaar-1.1.0.ebuild
+++ b/media-libs/kvazaar/kvazaar-1.1.0.ebuild
@@ -38,6 +38,7 @@ DEPEND="${DEPEND}
abi_x86_64? ( ${ASM_DEP} )"
src_prepare() {
+ epatch "${FILESDIR}/gcc7.patch"
eautoreconf
if use test && [ "${PV#9999}" = "${PV}" ]; then
# https://bugs.gentoo.org/show_bug.cgi?id=595932