summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPacho Ramos <pacho@gentoo.org>2020-06-19 19:34:05 +0200
committerPacho Ramos <pacho@gentoo.org>2020-06-19 19:34:05 +0200
commitd5702a506f6074eef248afc8cc20df6ebd68a1a6 (patch)
treeb9385e6fd55c73cbec3776f27948f0490ad4cdd3 /x11-misc
parentapp-editors/leafpad: Drop old (diff)
downloadgentoo-d5702a506f6074eef248afc8cc20df6ebd68a1a6.tar.gz
gentoo-d5702a506f6074eef248afc8cc20df6ebd68a1a6.tar.bz2
gentoo-d5702a506f6074eef248afc8cc20df6ebd68a1a6.zip
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@gentoo.org>
Diffstat (limited to 'x11-misc')
-rw-r--r--x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild5
-rw-r--r--x11-misc/bumblebee/files/bumblebee-3.2.1_p20190421-gcc10.patch66
2 files changed, 71 insertions, 0 deletions
diff --git a/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild b/x11-misc/bumblebee/bumblebee-3.2.1_p20190421.ebuild
index ecedcc95c494..eb6477c36832 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 000000000000..7d02226521e4
--- /dev/null
+++ b/x11-misc/bumblebee/files/bumblebee-3.2.1_p20190421-gcc10.patch
@@ -0,0 +1,66 @@
+Author: Andreas Beckmann <anbe@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