commit:     49ba2f7bae64d3a75f414c682f9703626a6fd9e7
Author:     Ryan Hill <rhill <AT> gentoo <DOT> org>
AuthorDate: Fri Oct  2 01:41:14 2015 +0000
Commit:     Ryan Hill <rhill <AT> gentoo <DOT> org>
CommitDate: Fri Oct  2 01:41:14 2015 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=49ba2f7b

media-sound/mumble: Fix build with GCC 4.9.

Gentoo-Bug: https://bugs.gentoo.org/532180

Package-Manager: portage-2.2.22
Signed-off-by: Ryan Hill <rhill <AT> gentoo.org>

 media-sound/mumble/files/mumble-1.2.8-gcc49.patch | 26 +++++++++++++++++++++++
 media-sound/mumble/mumble-1.2.8.ebuild            |  3 ++-
 2 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/media-sound/mumble/files/mumble-1.2.8-gcc49.patch 
b/media-sound/mumble/files/mumble-1.2.8-gcc49.patch
new file mode 100644
index 0000000..cecb3d3
--- /dev/null
+++ b/media-sound/mumble/files/mumble-1.2.8-gcc49.patch
@@ -0,0 +1,26 @@
+https://bugs.gentoo.org/532180
+
+Avoid "jump to label crosses initialization" error.
+
+ Move variable "buffer" into the while loop to avoid a compile error
+ with g++ 4.9.0.
+
+ Although earlier compiler versions did accept the code, jumping into the
+ scope of an variable length array is not allowed:
+ http://gcc.gnu.org/onlinedocs/gcc-4.3.0/gcc/Variable-Length.html
+
+
+--- a/src/mumble/OSS.cpp
++++ b/src/mumble/OSS.cpp
+@@ -243,9 +243,9 @@ void OSSInput::run() {
+       eMicFormat = SampleShort;
+       initializeMixer();
+ 
+-      short buffer[iMicLength];
+-
+       while (bRunning) {
++              short buffer[iMicLength];
++
+               int len = static_cast<int>(iMicLength * iMicChannels * 
sizeof(short));
+               ssize_t l = read(fd, buffer, len);
+               if (l != len) {

diff --git a/media-sound/mumble/mumble-1.2.8.ebuild 
b/media-sound/mumble/mumble-1.2.8.ebuild
index e457a05..a0282bf 100644
--- a/media-sound/mumble/mumble-1.2.8.ebuild
+++ b/media-sound/mumble/mumble-1.2.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2014 Gentoo Foundation
+# Copyright 1999-2015 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 # $Id$
 
@@ -47,6 +47,7 @@ DEPEND="${RDEPEND}
 
 PATCHES=(
        "${FILESDIR}"/${PN}-1.2.4-speech-dispatcher.patch
+       "${FILESDIR}"/${PN}-1.2.8-gcc49.patch
 )
 
 S="${WORKDIR}/${MY_P}"

Reply via email to