commit:     d5702a506f6074eef248afc8cc20df6ebd68a1a6
Author:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
AuthorDate: Fri Jun 19 17:34:05 2020 +0000
Commit:     Pacho Ramos <pacho <AT> gentoo <DOT> org>
CommitDate: Fri Jun 19 17:34:05 2020 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=d5702a50

x11-misc/bumblebee: Fix building with gcc-10

Closes: https://bugs.gentoo.org/726116
Package-Manager: Portage-2.3.100, Repoman-2.3.22
Signed-off-by: Pacho Ramos <pacho <AT> gentoo.org>

 .../bumblebee/bumblebee-3.2.1_p20190421.ebuild     |  5 ++
 .../files/bumblebee-3.2.1_p20190421-gcc10.patch    | 66 ++++++++++++++++++++++
 2 files changed, 71 insertions(+)

diff --git a/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild 
b/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild
index ecedcc95c49..eb6477c3683 100644
--- a/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild
+++ b/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild
@@ -53,6 +53,11 @@ PDEPEND="
 
 REQUIRED_USE="|| ( video_cards_nouveau video_cards_nvidia )"
 
+PATCHES=(
+       # https://github.com/Bumblebee-Project/Bumblebee/issues/1058
+       "${FILESDIR}/${P}-gcc10.patch"
+)
+
 pkg_setup() {
        enewgroup bumblebee
 }

diff --git a/x11-misc/bumblebee/files/bumblebee-3.2.1_p20190421-gcc10.patch 
b/x11-misc/bumblebee/files/bumblebee-3.2.1_p20190421-gcc10.patch
new file mode 100644
index 00000000000..7d02226521e
--- /dev/null
+++ b/x11-misc/bumblebee/files/bumblebee-3.2.1_p20190421-gcc10.patch
@@ -0,0 +1,66 @@
+Author: Andreas Beckmann <a...@debian.org>
+Description: fix FTBFS with gcc-10
+ gcc-10 defaults to -fno-common
+ see https://gcc.gnu.org/gcc-10/porting_to.html
+Bug-Debian: https://bugs.debian.org/957058
+
+--- a/src/bbconfig.h
++++ b/src/bbconfig.h
+@@ -103,7 +103,7 @@ enum bb_pm_method {
+     PM_VGASWITCHEROO,
+     PM_METHODS_COUNT /* not a method but a marker for the end */
+ };
+-const char *bb_pm_method_string[PM_METHODS_COUNT];
++extern const char *bb_pm_method_string[PM_METHODS_COUNT];
+ 
+ /* String buffer size */
+ #define BUFFER_SIZE 1024
+--- a/src/switch/switching.h
++++ b/src/switch/switching.h
+@@ -60,10 +60,10 @@ void switcheroo_off(void);
+ 
+ /* number of switchers as defined in switching.c */
+ #define SWITCHERS_COUNT 2
+-struct switching_method switching_methods[SWITCHERS_COUNT];
++extern struct switching_method switching_methods[SWITCHERS_COUNT];
+ 
+ /* A switching method that can be used or NULL if none */
+-struct switching_method *switcher;
++extern struct switching_method *switcher;
+ 
+ struct switching_method *switcher_detect(const char *name, struct 
switch_info);
+ enum switch_state switch_status(void);
+--- a/src/bbsecondary.h
++++ b/src/bbsecondary.h
+@@ -21,7 +21,7 @@
+ #pragma once
+ 
+ /* PCI Bus ID of the discrete video card */
+-struct pci_bus_id *pci_bus_id_discrete;
++extern struct pci_bus_id *pci_bus_id_discrete;
+ 
+ /// Start the X server by fork-exec, turn card on if needed.
+ bool start_secondary(bool);
+--- a/src/switch/switching.c
++++ b/src/switch/switching.c
+@@ -31,6 +31,8 @@ struct switching_method switching_method
+           switcheroo_on, switcheroo_off}
+ };
+ 
++struct switching_method *switcher = NULL;
++
+ /**
+  * Enumerates through available switching methods and try a method
+  * 
+--- a/src/bbsecondary.c
++++ b/src/bbsecondary.c
+@@ -37,6 +37,9 @@
+ #include "pci.h"
+ #include "module.h"
+ 
++/* PCI Bus ID of the discrete video card */
++struct pci_bus_id *pci_bus_id_discrete;
++
+ /**
+  * Substitutes DRIVER in the passed path
+  * @param x_conf_file A path to be processed

Reply via email to