From 2dbf9fd2accc8681c24ef4cd174c368d68b0e06e Mon Sep 17 00:00:00 2001 From: Michael Fischer Date: Fri, 7 Aug 2020 13:37:00 +0200 Subject: [PATCH] package/python-rpi-gpio: fix build with gcc 10.x 0001-fix-build-with-gcc-10.x.patch: Add patch to fix build with gcc 10.x Signed-off-by: Michael Fischer Signed-off-by: Yann E. MORIN --- .../0001-fix-build-with-gcc-10.x.patch | 117 ++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch diff --git a/package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch b/package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch new file mode 100644 index 0000000000..7c7b772894 --- /dev/null +++ b/package/python-rpi-gpio/0001-fix-build-with-gcc-10.x.patch @@ -0,0 +1,117 @@ +Description: This patch fixes the "multiple definition of" errors with gcc10 + +Signed-off-by: Michael Fischer + +diff -purN python-rpi-gpio.org/source/common.h python-rpi-gpio/source/common.h +--- python-rpi-gpio.org/source/common.h 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/common.h 2020-08-07 09:31:33.948575964 +0200 +@@ -30,14 +30,14 @@ SOFTWARE. + #define I2C 42 + #define PWM 43 + +-int gpio_mode; +-const int pin_to_gpio_rev1[41]; +-const int pin_to_gpio_rev2[41]; +-const int pin_to_gpio_rev3[41]; +-const int (*pin_to_gpio)[41]; +-int gpio_direction[54]; +-rpi_info rpiinfo; +-int setup_error; +-int module_setup; ++extern int gpio_mode; ++extern const int pin_to_gpio_rev1[41]; ++extern const int pin_to_gpio_rev2[41]; ++extern const int pin_to_gpio_rev3[41]; ++extern const int (*pin_to_gpio)[41]; ++extern int gpio_direction[54]; ++extern rpi_info rpiinfo; ++extern int setup_error; ++extern int module_setup; + int check_gpio_priv(void); + int get_gpio_number(int channel, unsigned int *gpio); +diff -purN python-rpi-gpio.org/source/constants.h python-rpi-gpio/source/constants.h +--- python-rpi-gpio.org/source/constants.h 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/constants.h 2020-08-07 09:32:15.522196618 +0200 +@@ -23,22 +23,22 @@ SOFTWARE. + #define PY_PUD_CONST_OFFSET 20 + #define PY_EVENT_CONST_OFFSET 30 + +-PyObject *high; +-PyObject *low; +-PyObject *input; +-PyObject *output; +-PyObject *pwm; +-PyObject *serial; +-PyObject *i2c; +-PyObject *spi; +-PyObject *unknown; +-PyObject *board; +-PyObject *bcm; +-PyObject *pud_off; +-PyObject *pud_up; +-PyObject *pud_down; +-PyObject *rising_edge; +-PyObject *falling_edge; +-PyObject *both_edge; ++extern PyObject *high; ++extern PyObject *low; ++extern PyObject *input; ++extern PyObject *output; ++extern PyObject *pwm; ++extern PyObject *serial; ++extern PyObject *i2c; ++extern PyObject *spi; ++extern PyObject *unknown; ++extern PyObject *board; ++extern PyObject *bcm; ++extern PyObject *pud_off; ++extern PyObject *pud_up; ++extern PyObject *pud_down; ++extern PyObject *rising_edge; ++extern PyObject *falling_edge; ++extern PyObject *both_edge; + + void define_constants(PyObject *module); +diff -purN python-rpi-gpio.org/source/event_gpio.c python-rpi-gpio/source/event_gpio.c +--- python-rpi-gpio.org/source/event_gpio.c 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/event_gpio.c 2020-08-07 09:42:05.564483136 +0200 +@@ -57,7 +57,7 @@ struct callback + }; + struct callback *callbacks = NULL; + +-pthread_t threads; ++static pthread_t threads; + int event_occurred[54] = { 0 }; + int thread_running = 0; + int epfd_thread = -1; +diff -purN python-rpi-gpio.org/source/py_pwm.h python-rpi-gpio/source/py_pwm.h +--- python-rpi-gpio.org/source/py_pwm.h 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/py_pwm.h 2020-08-07 09:38:49.445646807 +0200 +@@ -20,5 +20,5 @@ OUT OF OR IN CONNECTION WITH THE SOFTWAR + SOFTWARE. + */ + +-PyTypeObject PWMType; ++extern PyTypeObject PWMType; + PyTypeObject *PWM_init_PWMType(void); +diff -purN python-rpi-gpio.org/source/soft_pwm.c python-rpi-gpio/source/soft_pwm.c +--- python-rpi-gpio.org/source/soft_pwm.c 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/soft_pwm.c 2020-08-07 09:42:40.753160437 +0200 +@@ -25,7 +25,7 @@ SOFTWARE. + #include + #include "c_gpio.h" + #include "soft_pwm.h" +-pthread_t threads; ++static pthread_t threads; + + struct pwm + { +diff -purN python-rpi-gpio.org/source/soft_pwm.h python-rpi-gpio/source/soft_pwm.h +--- python-rpi-gpio.org/source/soft_pwm.h 2019-07-21 14:41:22.000000000 +0200 ++++ python-rpi-gpio/source/soft_pwm.h 2020-08-07 09:39:25.916811352 +0200 +@@ -26,4 +26,4 @@ void pwm_set_duty_cycle(unsigned int gpi + void pwm_set_frequency(unsigned int gpio, float freq); + void pwm_start(unsigned int gpio); + void pwm_stop(unsigned int gpio); +-int pwm_exists(unsigned int gpio); ++extern int pwm_exists(unsigned int gpio); -- 2.30.2