Skip to content
  • MySensors
  • OpenHardware.io
  • Categories
  • Recent
  • Tags
  • Popular
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Brand Logo
  1. Home
  2. Troubleshooting
  3. config.h:39 : first defined here

config.h:39 : first defined here

Scheduled Pinned Locked Moved Troubleshooting
4 Posts 3 Posters 93 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    suspendfunction
    wrote on last edited by suspendfunction
    #1

    I am trying to build a Raspberry PI controller.
    I am using:

    • Raspberry Pi 3B+
    • Arch Linux
    • RFM69HCW attached to the GPIO pins

    I followed the instructions on https://www.mysensors.org/build/raspberry/, however i get an error when i run make:

    /usr/bin/ld: build/examples_linux/mysgw.o:/home/oznerol/git/MySensors/./hal/architecture/Linux/drivers/core/config.h:39: multiple definition of `conf'; build/hal/architecture/Linux/drivers/core/config.o:/home/oznerol/git/MySensors/hal/architecture/Linux/drivers/core/config.h:39: first defined here
    

    The error talks about a struct called conf, that gets defined in the mentioned files.
    And idea what this error is and how i can fix it?

    The error happens both with actual config settigns as well as with a plain ./configure.
    Full compile log:

    [oznerol@goofball MySensors]$ make
    gcc -MT build/hal/architecture/Linux/drivers/core/config.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/config.c -o build/hal/architecture/Linux/drivers/core/config.o
    gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o
    g++ -MT build/hal/architecture/Linux/drivers/core/EthernetClient.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetClient.cpp -o build/hal/architecture/Linux/drivers/core/EthernetClient.o
    g++ -MT build/hal/architecture/Linux/drivers/core/EthernetServer.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetServer.cpp -o build/hal/architecture/Linux/drivers/core/EthernetServer.o
    g++ -MT build/hal/architecture/Linux/drivers/core/GPIO.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/GPIO.cpp -o build/hal/architecture/Linux/drivers/core/GPIO.o
    hal/architecture/Linux/drivers/core/GPIO.cpp: In constructor 'GPIOClass::GPIOClass()':
    hal/architecture/Linux/drivers/core/GPIO.cpp:53:50: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
       53 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
          |                                                  ^~
    hal/architecture/Linux/drivers/core/GPIO.cpp:53:12: note: 'snprintf' output between 22 and 277 bytes into a destination of size 64
       53 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
          |    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    hal/architecture/Linux/drivers/core/GPIO.cpp:62:50: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
       62 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
          |                                                  ^~
    hal/architecture/Linux/drivers/core/GPIO.cpp:62:12: note: 'snprintf' output between 23 and 278 bytes into a destination of size 64
       62 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
          |    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    g++ -MT build/hal/architecture/Linux/drivers/core/IPAddress.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/IPAddress.cpp -o build/hal/architecture/Linux/drivers/core/IPAddress.o
    g++ -MT build/hal/architecture/Linux/drivers/core/Print.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Print.cpp -o build/hal/architecture/Linux/drivers/core/Print.o
    g++ -MT build/hal/architecture/Linux/drivers/core/SPIDEV.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SPIDEV.cpp -o build/hal/architecture/Linux/drivers/core/SPIDEV.o
    hal/architecture/Linux/drivers/core/SPIDEV.cpp:43:63: warning: missing initializer for member 'spi_ioc_transfer::pad' [-Wmissing-field-initializers]
       43 | struct spi_ioc_transfer SPIDEVClass::tr = {0,0,0,0,0,8,0,0,0,0}; // 8 bits_per_word, 0 cs_change
          |                                                               ^
    g++ -MT build/hal/architecture/Linux/drivers/core/SerialPort.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SerialPort.cpp -o build/hal/architecture/Linux/drivers/core/SerialPort.o
    g++ -MT build/hal/architecture/Linux/drivers/core/SoftEeprom.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SoftEeprom.cpp -o build/hal/architecture/Linux/drivers/core/SoftEeprom.o
    g++ -MT build/hal/architecture/Linux/drivers/core/StdInOutStream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/StdInOutStream.cpp -o build/hal/architecture/Linux/drivers/core/StdInOutStream.o
    g++ -MT build/hal/architecture/Linux/drivers/core/Stream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Stream.cpp -o build/hal/architecture/Linux/drivers/core/Stream.o
    g++ -MT build/hal/architecture/Linux/drivers/core/compatibility.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/compatibility.cpp -o build/hal/architecture/Linux/drivers/core/compatibility.o
    g++ -MT build/hal/architecture/Linux/drivers/core/interrupt.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/interrupt.cpp -o build/hal/architecture/Linux/drivers/core/interrupt.o
    g++ -MT build/hal/architecture/Linux/drivers/core/noniso.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/noniso.cpp -o build/hal/architecture/Linux/drivers/core/noniso.o
    g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
    In file included from ./MySensors.h:358,
                     from examples_linux/mysgw.cpp:82:
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 33 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 49 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 65 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 81 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 97 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 113 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 129 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 145 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 161 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 177 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 193 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 209 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
        inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
    ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
       82 |    *ptx++ = *current++;
          |    ~~~~~~~^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
    ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 225 to object 'RF24_spi_txbuff' with size 33 declared here
       41 | uint8_t RF24_spi_txbuff[32+1]
          |         ^~~~~~~~~~~~~~~
    In file included from ./MySensors.h:431,
                     from examples_linux/mysgw.cpp:82:
    In member function 'char* MyMessage::getString(char*) const',
        inlined from 'char* protocolMyMessage2Serial(MyMessage&)' at ./core/MyProtocol.cpp:93:8:
    ./core/MyMessage.cpp:284:17: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
      284 |    (void)strncpy(buffer, this->data, this->getLength());
          |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    ./core/MyMessage.cpp: In member function 'char* MyMessage::getString(char*) const':
    ./core/MyMessage.cpp:284:17: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
      284 |    (void)strncpy(buffer, this->data, this->getLength());
          |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void stParentTransition()' at ./core/MyTransport.cpp:161:29:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void stIDTransition()' at ./core/MyTransport.cpp:218:30,
        inlined from 'void stIDTransition()' at ./core/MyTransport.cpp:202:6:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void stReadyUpdate()' at ./core/MyTransport.cpp:312:30:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool present(uint8_t, mysensors_sensor_t, const char*, bool)' at ./core/MySensorsCore.cpp:379:19,
        inlined from 'void presentNode()' at ./core/MySensorsCore.cpp:233:15:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
        inlined from 'bool signerInternalProcessPresentation(MyMessage&)' at ./core/MySigning.cpp:488:28,
        inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:176:42,
        inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:171:6:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool request(uint8_t, uint8_t, uint8_t)' at ./core/MySensorsCore.cpp:429:19:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool requestTime(bool)' at ./core/MySensorsCore.cpp:434:19:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool _processInternalCoreMessage()' at ./core/MySensorsCore.cpp:482:21:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
        inlined from 'bool signerInternalProcessPresentation(MyMessage&)' at ./core/MySigning.cpp:488:28,
        inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:176:42,
        inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:171:6,
        inlined from 'void transportProcessMessage()' at ./core/MyTransport.cpp:718:30:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool gatewayTransportAvailable()' at ./core/MyGatewayTransportEthernet.cpp:433:25:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 25 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'bool present(uint8_t, mysensors_sensor_t, const char*, bool)' at ./core/MySensorsCore.cpp:379:19,
        inlined from 'void presentNode()' at ./core/MySensorsCore.cpp:233:15,
        inlined from 'bool gatewayTransportAvailable()' at ./core/MyGatewayTransportEthernet.cpp:435:16:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:48:26,
        inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:28:13,
        inlined from 'void _process()' at ./core/MySensorsCore.cpp:72:25:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
        inlined from 'void signerPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:143:28:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    In member function 'MyMessage& MyMessage::set(const char*)',
        inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:48:26,
        inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:28:13,
        inlined from 'void _process()' at ./core/MySensorsCore.cpp:72:25,
        inlined from 'void wait(uint32_t)' at ./core/MySensorsCore.cpp:566:11,
        inlined from 'void transportReportRoutingTable()' at ./core/MyTransport.cpp:1077:8:
    ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
      391 |  (void)strncpy(this->data, value, this->getLength());
          |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    gcc -MT build/hal/architecture/Linux/drivers/BCM/bcm2835.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/bcm2835.c -o build/hal/architecture/Linux/drivers/BCM/bcm2835.o
    g++ -MT build/hal/architecture/Linux/drivers/BCM/BCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/BCM.cpp -o build/hal/architecture/Linux/drivers/BCM/BCM.o
    g++ -MT build/hal/architecture/Linux/drivers/BCM/RPi.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/RPi.cpp -o build/hal/architecture/Linux/drivers/BCM/RPi.o
    g++ -MT build/hal/architecture/Linux/drivers/BCM/SPIBCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/SPIBCM.cpp -o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o
    g++ -MT build/hal/architecture/Linux/drivers/BCM/Wire.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/Wire.cpp -o build/hal/architecture/Linux/drivers/BCM/Wire.o
    g++ -pthread  -o bin/mysgw build/hal/architecture/Linux/drivers/core/config.o build/hal/architecture/Linux/drivers/core/log.o build/hal/architecture/Linux/drivers/core/EthernetClient.o build/hal/architecture/Linux/drivers/core/EthernetServer.o build/hal/architecture/Linux/drivers/core/GPIO.o build/hal/architecture/Linux/drivers/core/IPAddress.o build/hal/architecture/Linux/drivers/core/Print.o build/hal/architecture/Linux/drivers/core/SPIDEV.o build/hal/architecture/Linux/drivers/core/SerialPort.o build/hal/architecture/Linux/drivers/core/SoftEeprom.o build/hal/architecture/Linux/drivers/core/StdInOutStream.o build/hal/architecture/Linux/drivers/core/Stream.o build/hal/architecture/Linux/drivers/core/compatibility.o build/hal/architecture/Linux/drivers/core/interrupt.o build/hal/architecture/Linux/drivers/core/noniso.o build/examples_linux/mysgw.o build/hal/architecture/Linux/drivers/BCM/bcm2835.o build/hal/architecture/Linux/drivers/BCM/BCM.o build/hal/architecture/Linux/drivers/BCM/RPi.o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o build/hal/architecture/Linux/drivers/BCM/Wire.o
    /usr/bin/ld: build/examples_linux/mysgw.o:/home/oznerol/git/MySensors/./hal/architecture/Linux/drivers/core/config.h:39: multiple definition of `conf'; build/hal/architecture/Linux/drivers/core/config.o:/home/oznerol/git/MySensors/hal/architecture/Linux/drivers/core/config.h:39: first defined here
    collect2: error: ld returned 1 exit status
    make: *** [Makefile:80: bin/mysgw] Error 1
    
    
    Fabrice HoffmannF 1 Reply Last reply
    1
    • fritsF Offline
      fritsF Offline
      frits
      wrote on last edited by
      #2

      Hi,
      I just built the gateway on my Raspi 3B+ armbian without problem. Maybe an archlinux incompatibility?
      Here's my log:

      pi@raspberrypi:~/MySensors $ ./configure
      [SECTION] Detecting target machine.
        [OK] machine detected: SoC=BCM2837, Type=rpi3, CPU=armv7l.
      [SECTION] Detecting SPI driver.
        [OK] SPI driver detected:BCM.
      [SECTION] Gateway configuration.
        [OK] Type: ethernet.
        [OK] Transport: rf24.
        [OK] Signing: Disabled.
        [OK] Encryption: Disabled.
        [OK] CPPFLAGS: -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI
        [OK] CXXFLAGS:  -std=c++11
      [SECTION] Detecting init system.
        [OK] Init system detected: systemd.
      [SECTION] Saving configuration.
        [OK] Saved.
      [SECTION] Cleaning previous builds.
        [OK] Finished.
      pi@raspberrypi:~/MySensors $
      
      pi@raspberrypi:~/MySensors $ make
      gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o
      gcc -MT build/hal/architecture/Linux/drivers/core/config.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/config.c -o build/hal/architecture/Linux/drivers/core/config.o
      g++ -MT build/hal/architecture/Linux/drivers/core/StdInOutStream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/StdInOutStream.cpp -o build/hal/architecture/Linux/drivers/core/StdInOutStream.o
      g++ -MT build/hal/architecture/Linux/drivers/core/noniso.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/noniso.cpp -o build/hal/architecture/Linux/drivers/core/noniso.o
      g++ -MT build/hal/architecture/Linux/drivers/core/GPIO.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/GPIO.cpp -o build/hal/architecture/Linux/drivers/core/GPIO.o
      hal/architecture/Linux/drivers/core/GPIO.cpp: In constructor ‘GPIOClass::GPIOClass()’:
      hal/architecture/Linux/drivers/core/GPIO.cpp:53:33: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
          snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
         ^~~~~~~~~~~~~~~~~~~~~~~~~
      hal/architecture/Linux/drivers/core/GPIO.cpp:53:12: note: ‘snprintf’ output between 22 and 277 bytes into a destination of size 64
          snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      hal/architecture/Linux/drivers/core/GPIO.cpp:62:33: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
          snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
         ^~~~~~~~~~~~~~~~~~~~~~~~~~
      hal/architecture/Linux/drivers/core/GPIO.cpp:62:12: note: ‘snprintf’ output between 23 and 278 bytes into a destination of size 64
          snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
          ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      g++ -MT build/hal/architecture/Linux/drivers/core/SPIDEV.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SPIDEV.cpp -o build/hal/architecture/Linux/drivers/core/SPIDEV.o
      g++ -MT build/hal/architecture/Linux/drivers/core/Print.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Print.cpp -o build/hal/architecture/Linux/drivers/core/Print.o
      g++ -MT build/hal/architecture/Linux/drivers/core/EthernetClient.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetClient.cpp -o build/hal/architecture/Linux/drivers/core/EthernetClient.o
      g++ -MT build/hal/architecture/Linux/drivers/core/SerialPort.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SerialPort.cpp -o build/hal/architecture/Linux/drivers/core/SerialPort.o
      g++ -MT build/hal/architecture/Linux/drivers/core/Stream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Stream.cpp -o build/hal/architecture/Linux/drivers/core/Stream.o
      g++ -MT build/hal/architecture/Linux/drivers/core/IPAddress.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/IPAddress.cpp -o build/hal/architecture/Linux/drivers/core/IPAddress.o
      g++ -MT build/hal/architecture/Linux/drivers/core/compatibility.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/compatibility.cpp -o build/hal/architecture/Linux/drivers/core/compatibility.o
      g++ -MT build/hal/architecture/Linux/drivers/core/interrupt.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/interrupt.cpp -o build/hal/architecture/Linux/drivers/core/interrupt.o
      g++ -MT build/hal/architecture/Linux/drivers/core/SoftEeprom.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SoftEeprom.cpp -o build/hal/architecture/Linux/drivers/core/SoftEeprom.o
      g++ -MT build/hal/architecture/Linux/drivers/core/EthernetServer.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetServer.cpp -o build/hal/architecture/Linux/drivers/core/EthernetServer.o
      g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
      In file included from ./MySensors.h:431,
                       from examples_linux/mysgw.cpp:82:
      In member function ‘char* MyMessage::getString(char*) const’,
          inlined from ‘bool transportSendWrite(uint8_t, MyMessage&)’ at ./core/MyTransport.cpp:987:2,
          inlined from ‘bool transportRouteMessage(MyMessage&)’ at ./core/MyTransport.cpp:560:40,
          inlined from ‘void stUplinkTransition()’ at ./core/MyTransport.cpp:252:29:
      ./core/MyMessage.cpp:284:17: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          (void)strncpy(buffer, this->data, this->getLength());
                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘char* MyMessage::getString(char*) const’,
          inlined from ‘char* protocolMyMessage2Serial(MyMessage&)’ at ./core/MyProtocol.cpp:93:8:
      ./core/MyMessage.cpp:284:17: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          (void)strncpy(buffer, this->data, this->getLength());
                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘char* MyMessage::getString(char*) const’,
          inlined from ‘char* protocolMyMessage2Serial(MyMessage&)’ at ./core/MyProtocol.cpp:93:8,
          inlined from ‘bool gatewayTransportSend(MyMessage&)’ at ./core/MyGatewayTransportEthernet.cpp:251:51:
      ./core/MyMessage.cpp:284:17: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          (void)strncpy(buffer, this->data, this->getLength());
                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      ./core/MyMessage.cpp: In member function ‘char* MyMessage::getString(char*) const’:
      ./core/MyMessage.cpp:284:17: warning: ‘char* strncpy(char*, const char*, size_t)’ output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          (void)strncpy(buffer, this->data, this->getLength());
                ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void stParentTransition()’ at ./core/MyTransport.cpp:161:29:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void stReadyUpdate()’ at ./core/MyTransport.cpp:312:30:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void stIDTransition()’ at ./core/MyTransport.cpp:218:30,
          inlined from ‘void stIDTransition()’ at ./core/MyTransport.cpp:202:6:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool present(uint8_t, mysensors_sensor_t, const char*, bool)’ at ./core/MySensorsCore.cpp:379:19,
          inlined from ‘void presentNode()’ at ./core/MySensorsCore.cpp:233:15:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void prepareSigningPresentation(MyMessage&, uint8_t)’ at ./core/MySigning.cpp:389:90,
          inlined from ‘bool signerInternalProcessPresentation(MyMessage&)’ at ./core/MySigning.cpp:488:28,
          inlined from ‘bool signerProcessInternal(MyMessage&)’ at ./core/MySigning.cpp:176:42,
          inlined from ‘bool signerProcessInternal(MyMessage&)’ at ./core/MySigning.cpp:171:6:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool request(uint8_t, uint8_t, uint8_t)’ at ./core/MySensorsCore.cpp:429:19:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool requestTime(bool)’ at ./core/MySensorsCore.cpp:434:19:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool _processInternalCoreMessage()’ at ./core/MySensorsCore.cpp:482:21:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void prepareSigningPresentation(MyMessage&, uint8_t)’ at ./core/MySigning.cpp:389:90,
          inlined from ‘bool signerInternalProcessPresentation(MyMessage&)’ at ./core/MySigning.cpp:488:28,
          inlined from ‘bool signerProcessInternal(MyMessage&)’ at ./core/MySigning.cpp:176:42,
          inlined from ‘bool signerProcessInternal(MyMessage&)’ at ./core/MySigning.cpp:171:6,
          inlined from ‘void transportProcessMessage()’ at ./core/MyTransport.cpp:718:30:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool gatewayTransportAvailable()’ at ./core/MyGatewayTransportEthernet.cpp:433:25:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 25 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘bool present(uint8_t, mysensors_sensor_t, const char*, bool)’ at ./core/MySensorsCore.cpp:379:19,
          inlined from ‘void presentNode()’ at ./core/MySensorsCore.cpp:233:15,
          inlined from ‘bool gatewayTransportAvailable()’ at ./core/MyGatewayTransportEthernet.cpp:435:16:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void gatewayTransportProcess()’ at ./core/MyGatewayTransport.cpp:48:26,
          inlined from ‘void gatewayTransportProcess()’ at ./core/MyGatewayTransport.cpp:28:13,
          inlined from ‘void _process()’ at ./core/MySensorsCore.cpp:72:25:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void prepareSigningPresentation(MyMessage&, uint8_t)’ at ./core/MySigning.cpp:389:90,
          inlined from ‘void signerPresentation(MyMessage&, uint8_t)’ at ./core/MySigning.cpp:143:28:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ destination unchanged after copying no bytes [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      In member function ‘MyMessage& MyMessage::set(const char*)’,
          inlined from ‘void gatewayTransportProcess()’ at ./core/MyGatewayTransport.cpp:48:26,
          inlined from ‘void gatewayTransportProcess()’ at ./core/MyGatewayTransport.cpp:28:13,
          inlined from ‘void _process()’ at ./core/MySensorsCore.cpp:72:25,
          inlined from ‘void wait(uint32_t)’ at ./core/MySensorsCore.cpp:566:11,
          inlined from ‘void transportReportRoutingTable()’ at ./core/MyTransport.cpp:1077:8:
      ./core/MyMessage.cpp:391:15: warning: ‘char* strncpy(char*, const char*, size_t)’ output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
        (void)strncpy(this->data, value, this->getLength());
              ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      gcc -MT build/hal/architecture/Linux/drivers/BCM/bcm2835.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/bcm2835.c -o build/hal/architecture/Linux/drivers/BCM/bcm2835.o
      g++ -MT build/hal/architecture/Linux/drivers/BCM/BCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/BCM.cpp -o build/hal/architecture/Linux/drivers/BCM/BCM.o
      g++ -MT build/hal/architecture/Linux/drivers/BCM/SPIBCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/SPIBCM.cpp -o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o
      g++ -MT build/hal/architecture/Linux/drivers/BCM/Wire.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/Wire.cpp -o build/hal/architecture/Linux/drivers/BCM/Wire.o
      g++ -MT build/hal/architecture/Linux/drivers/BCM/RPi.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/RPi.cpp -o build/hal/architecture/Linux/drivers/BCM/RPi.o
      g++ -pthread  -o bin/mysgw build/hal/architecture/Linux/drivers/core/log.o build/hal/architecture/Linux/drivers/core/config.o build/hal/architecture/Linux/drivers/core/StdInOutStream.o build/hal/architecture/Linux/drivers/core/noniso.o build/hal/architecture/Linux/drivers/core/GPIO.o build/hal/architecture/Linux/drivers/core/SPIDEV.o build/hal/architecture/Linux/drivers/core/Print.o build/hal/architecture/Linux/drivers/core/EthernetClient.o build/hal/architecture/Linux/drivers/core/SerialPort.o build/hal/architecture/Linux/drivers/core/Stream.o build/hal/architecture/Linux/drivers/core/IPAddress.o build/hal/architecture/Linux/drivers/core/compatibility.o build/hal/architecture/Linux/drivers/core/interrupt.o build/hal/architecture/Linux/drivers/core/SoftEeprom.o build/hal/architecture/Linux/drivers/core/EthernetServer.o build/examples_linux/mysgw.o build/hal/architecture/Linux/drivers/BCM/bcm2835.o build/hal/architecture/Linux/drivers/BCM/BCM.o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o build/hal/architecture/Linux/drivers/BCM/Wire.o build/hal/architecture/Linux/drivers/BCM/RPi.o
      pi@raspberrypi:~/MySensors $
      
      
      1 Reply Last reply
      1
      • S suspendfunction

        I am trying to build a Raspberry PI controller.
        I am using:

        • Raspberry Pi 3B+
        • Arch Linux
        • RFM69HCW attached to the GPIO pins

        I followed the instructions on https://www.mysensors.org/build/raspberry/, however i get an error when i run make:

        /usr/bin/ld: build/examples_linux/mysgw.o:/home/oznerol/git/MySensors/./hal/architecture/Linux/drivers/core/config.h:39: multiple definition of `conf'; build/hal/architecture/Linux/drivers/core/config.o:/home/oznerol/git/MySensors/hal/architecture/Linux/drivers/core/config.h:39: first defined here
        

        The error talks about a struct called conf, that gets defined in the mentioned files.
        And idea what this error is and how i can fix it?

        The error happens both with actual config settigns as well as with a plain ./configure.
        Full compile log:

        [oznerol@goofball MySensors]$ make
        gcc -MT build/hal/architecture/Linux/drivers/core/config.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/config.c -o build/hal/architecture/Linux/drivers/core/config.o
        gcc -MT build/hal/architecture/Linux/drivers/core/log.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/log.c -o build/hal/architecture/Linux/drivers/core/log.o
        g++ -MT build/hal/architecture/Linux/drivers/core/EthernetClient.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetClient.cpp -o build/hal/architecture/Linux/drivers/core/EthernetClient.o
        g++ -MT build/hal/architecture/Linux/drivers/core/EthernetServer.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/EthernetServer.cpp -o build/hal/architecture/Linux/drivers/core/EthernetServer.o
        g++ -MT build/hal/architecture/Linux/drivers/core/GPIO.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/GPIO.cpp -o build/hal/architecture/Linux/drivers/core/GPIO.o
        hal/architecture/Linux/drivers/core/GPIO.cpp: In constructor 'GPIOClass::GPIOClass()':
        hal/architecture/Linux/drivers/core/GPIO.cpp:53:50: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
           53 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
              |                                                  ^~
        hal/architecture/Linux/drivers/core/GPIO.cpp:53:12: note: 'snprintf' output between 22 and 277 bytes into a destination of size 64
           53 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/base", de->d_name);
              |    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        hal/architecture/Linux/drivers/core/GPIO.cpp:62:50: warning: '%s' directive output may be truncated writing up to 255 bytes into a region of size 48 [-Wformat-truncation=]
           62 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
              |                                                  ^~
        hal/architecture/Linux/drivers/core/GPIO.cpp:62:12: note: 'snprintf' output between 23 and 278 bytes into a destination of size 64
           62 |    snprintf(file, sizeof(file), "/sys/class/gpio/%s/ngpio", de->d_name);
              |    ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        g++ -MT build/hal/architecture/Linux/drivers/core/IPAddress.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/IPAddress.cpp -o build/hal/architecture/Linux/drivers/core/IPAddress.o
        g++ -MT build/hal/architecture/Linux/drivers/core/Print.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Print.cpp -o build/hal/architecture/Linux/drivers/core/Print.o
        g++ -MT build/hal/architecture/Linux/drivers/core/SPIDEV.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SPIDEV.cpp -o build/hal/architecture/Linux/drivers/core/SPIDEV.o
        hal/architecture/Linux/drivers/core/SPIDEV.cpp:43:63: warning: missing initializer for member 'spi_ioc_transfer::pad' [-Wmissing-field-initializers]
           43 | struct spi_ioc_transfer SPIDEVClass::tr = {0,0,0,0,0,8,0,0,0,0}; // 8 bits_per_word, 0 cs_change
              |                                                               ^
        g++ -MT build/hal/architecture/Linux/drivers/core/SerialPort.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SerialPort.cpp -o build/hal/architecture/Linux/drivers/core/SerialPort.o
        g++ -MT build/hal/architecture/Linux/drivers/core/SoftEeprom.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/SoftEeprom.cpp -o build/hal/architecture/Linux/drivers/core/SoftEeprom.o
        g++ -MT build/hal/architecture/Linux/drivers/core/StdInOutStream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/StdInOutStream.cpp -o build/hal/architecture/Linux/drivers/core/StdInOutStream.o
        g++ -MT build/hal/architecture/Linux/drivers/core/Stream.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/Stream.cpp -o build/hal/architecture/Linux/drivers/core/Stream.o
        g++ -MT build/hal/architecture/Linux/drivers/core/compatibility.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/compatibility.cpp -o build/hal/architecture/Linux/drivers/core/compatibility.o
        g++ -MT build/hal/architecture/Linux/drivers/core/interrupt.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/interrupt.cpp -o build/hal/architecture/Linux/drivers/core/interrupt.o
        g++ -MT build/hal/architecture/Linux/drivers/core/noniso.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/core/noniso.cpp -o build/hal/architecture/Linux/drivers/core/noniso.o
        g++ -MT build/examples_linux/mysgw.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c examples_linux/mysgw.cpp -o build/examples_linux/mysgw.o
        In file included from ./MySensors.h:358,
                         from examples_linux/mysgw.cpp:82:
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 33 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 49 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 65 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 81 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 97 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 113 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 129 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 145 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 161 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 177 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 193 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 209 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In function 'uint8_t RF24_spiMultiByteTransfer(uint8_t, uint8_t*, uint8_t, bool)',
            inlined from 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)' at ./hal/transport/RF24/driver/RF24.cpp:321:33:
        ./hal/transport/RF24/driver/RF24.cpp:82:11: warning: writing 16 bytes into a region of size 0 [-Wstringop-overflow=]
           82 |    *ptx++ = *current++;
              |    ~~~~~~~^~~~~~~~~~~~
        ./hal/transport/RF24/driver/RF24.cpp: In function 'bool RF24_sendMessage(uint8_t, const void*, uint8_t, bool)':
        ./hal/transport/RF24/driver/RF24.cpp:41:9: note: at offset 225 to object 'RF24_spi_txbuff' with size 33 declared here
           41 | uint8_t RF24_spi_txbuff[32+1]
              |         ^~~~~~~~~~~~~~~
        In file included from ./MySensors.h:431,
                         from examples_linux/mysgw.cpp:82:
        In member function 'char* MyMessage::getString(char*) const',
            inlined from 'char* protocolMyMessage2Serial(MyMessage&)' at ./core/MyProtocol.cpp:93:8:
        ./core/MyMessage.cpp:284:17: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          284 |    (void)strncpy(buffer, this->data, this->getLength());
              |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        ./core/MyMessage.cpp: In member function 'char* MyMessage::getString(char*) const':
        ./core/MyMessage.cpp:284:17: warning: 'char* strncpy(char*, const char*, size_t)' output may be truncated copying between 0 and 25 bytes from a string of length 25 [-Wstringop-truncation]
          284 |    (void)strncpy(buffer, this->data, this->getLength());
              |          ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void stParentTransition()' at ./core/MyTransport.cpp:161:29:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void stIDTransition()' at ./core/MyTransport.cpp:218:30,
            inlined from 'void stIDTransition()' at ./core/MyTransport.cpp:202:6:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void stReadyUpdate()' at ./core/MyTransport.cpp:312:30:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool present(uint8_t, mysensors_sensor_t, const char*, bool)' at ./core/MySensorsCore.cpp:379:19,
            inlined from 'void presentNode()' at ./core/MySensorsCore.cpp:233:15:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
            inlined from 'bool signerInternalProcessPresentation(MyMessage&)' at ./core/MySigning.cpp:488:28,
            inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:176:42,
            inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:171:6:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool request(uint8_t, uint8_t, uint8_t)' at ./core/MySensorsCore.cpp:429:19:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool requestTime(bool)' at ./core/MySensorsCore.cpp:434:19:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool _processInternalCoreMessage()' at ./core/MySensorsCore.cpp:482:21:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 2 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
            inlined from 'bool signerInternalProcessPresentation(MyMessage&)' at ./core/MySigning.cpp:488:28,
            inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:176:42,
            inlined from 'bool signerProcessInternal(MyMessage&)' at ./core/MySigning.cpp:171:6,
            inlined from 'void transportProcessMessage()' at ./core/MyTransport.cpp:718:30:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool gatewayTransportAvailable()' at ./core/MyGatewayTransportEthernet.cpp:433:25:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 25 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'bool present(uint8_t, mysensors_sensor_t, const char*, bool)' at ./core/MySensorsCore.cpp:379:19,
            inlined from 'void presentNode()' at ./core/MySensorsCore.cpp:233:15,
            inlined from 'bool gatewayTransportAvailable()' at ./core/MyGatewayTransportEthernet.cpp:435:16:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:48:26,
            inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:28:13,
            inlined from 'void _process()' at ./core/MySensorsCore.cpp:72:25:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void prepareSigningPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:389:90,
            inlined from 'void signerPresentation(MyMessage&, uint8_t)' at ./core/MySigning.cpp:143:28:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' destination unchanged after copying no bytes [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        In member function 'MyMessage& MyMessage::set(const char*)',
            inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:48:26,
            inlined from 'void gatewayTransportProcess()' at ./core/MyGatewayTransport.cpp:28:13,
            inlined from 'void _process()' at ./core/MySensorsCore.cpp:72:25,
            inlined from 'void wait(uint32_t)' at ./core/MySensorsCore.cpp:566:11,
            inlined from 'void transportReportRoutingTable()' at ./core/MyTransport.cpp:1077:8:
        ./core/MyMessage.cpp:391:15: warning: 'char* strncpy(char*, const char*, size_t)' output truncated before terminating nul copying 5 bytes from a string of the same length [-Wstringop-truncation]
          391 |  (void)strncpy(this->data, value, this->getLength());
              |        ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        gcc -MT build/hal/architecture/Linux/drivers/BCM/bcm2835.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra  -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/bcm2835.c -o build/hal/architecture/Linux/drivers/BCM/bcm2835.o
        g++ -MT build/hal/architecture/Linux/drivers/BCM/BCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/BCM.cpp -o build/hal/architecture/Linux/drivers/BCM/BCM.o
        g++ -MT build/hal/architecture/Linux/drivers/BCM/RPi.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/RPi.cpp -o build/hal/architecture/Linux/drivers/BCM/RPi.o
        g++ -MT build/hal/architecture/Linux/drivers/BCM/SPIBCM.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/SPIBCM.cpp -o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o
        g++ -MT build/hal/architecture/Linux/drivers/BCM/Wire.o -MMD -MP -march=armv8-a+crc -mtune=cortex-a53 -mfpu=neon-fp-armv8 -mfloat-abi=hard -DMY_RADIO_RF24 -DMY_GATEWAY_LINUX -DMY_DEBUG -DLINUX_SPI_BCM -DLINUX_ARCH_RASPBERRYPI  -Ofast -g -Wall -Wextra -std=c++11 -I. -I./core -I./hal/architecture/Linux/drivers/core -I./hal/architecture/Linux/drivers/BCM -c hal/architecture/Linux/drivers/BCM/Wire.cpp -o build/hal/architecture/Linux/drivers/BCM/Wire.o
        g++ -pthread  -o bin/mysgw build/hal/architecture/Linux/drivers/core/config.o build/hal/architecture/Linux/drivers/core/log.o build/hal/architecture/Linux/drivers/core/EthernetClient.o build/hal/architecture/Linux/drivers/core/EthernetServer.o build/hal/architecture/Linux/drivers/core/GPIO.o build/hal/architecture/Linux/drivers/core/IPAddress.o build/hal/architecture/Linux/drivers/core/Print.o build/hal/architecture/Linux/drivers/core/SPIDEV.o build/hal/architecture/Linux/drivers/core/SerialPort.o build/hal/architecture/Linux/drivers/core/SoftEeprom.o build/hal/architecture/Linux/drivers/core/StdInOutStream.o build/hal/architecture/Linux/drivers/core/Stream.o build/hal/architecture/Linux/drivers/core/compatibility.o build/hal/architecture/Linux/drivers/core/interrupt.o build/hal/architecture/Linux/drivers/core/noniso.o build/examples_linux/mysgw.o build/hal/architecture/Linux/drivers/BCM/bcm2835.o build/hal/architecture/Linux/drivers/BCM/BCM.o build/hal/architecture/Linux/drivers/BCM/RPi.o build/hal/architecture/Linux/drivers/BCM/SPIBCM.o build/hal/architecture/Linux/drivers/BCM/Wire.o
        /usr/bin/ld: build/examples_linux/mysgw.o:/home/oznerol/git/MySensors/./hal/architecture/Linux/drivers/core/config.h:39: multiple definition of `conf'; build/hal/architecture/Linux/drivers/core/config.o:/home/oznerol/git/MySensors/hal/architecture/Linux/drivers/core/config.h:39: first defined here
        collect2: error: ld returned 1 exit status
        make: *** [Makefile:80: bin/mysgw] Error 1
        
        
        Fabrice HoffmannF Offline
        Fabrice HoffmannF Offline
        Fabrice Hoffmann
        wrote on last edited by
        #3

        It's a realy old topic. Anyway. But I'm running into the same problem. Did you solve it ?

        Regards

        Fabrice

        1 Reply Last reply
        0
        • S Offline
          S Offline
          suspendfunction
          wrote on last edited by
          #4

          https://github.com/mysensors/MySensors/pull/1454

          1 Reply Last reply
          0
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          21

          Online

          11.7k

          Users

          11.2k

          Topics

          113.1k

          Posts


          Copyright 2025 TBD   |   Forum Guidelines   |   Privacy Policy   |   Terms of Service
          • Login

          • Don't have an account? Register

          • Login or register to search.
          • First post
            Last post
          0
          • MySensors
          • OpenHardware.io
          • Categories
          • Recent
          • Tags
          • Popular