MySensors Gateway on OrangePi 5



  • Hi all
    I'm trying to compile the MySensors Gateway on my OrangePi 5.
    My configuration:

    ./configure --my-transport=rf24 --my-gateway=mqtt --my-controller-ip-address=127.0.0.1 --my-rf24-ce-pin=13 --my-rf24-cs-pin=15 --my-rf24-irq-pin=16 --my-mqtt-publish-topic-prefix=[prefix] --my-mqtt-subscribe-topic-prefix=[prefix] --my-mqtt-client-id=[client_id] --my-mqtt-user=[user] --my-mqtt-password=[pwd]
    

    Unfortunately I get compilation warnings and errors when running make:

    ./hal/transport/RF24/driver/RF24.cpp: In function ‘void RF24_registerReceiveCallback(RF24_receiveCallbackType)’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp:507:9: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      507 |         MY_CRITICAL_SECTION {
          |         ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp:507:9: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      507 |         MY_CRITICAL_SECTION {
          |         ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp:507:9: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      507 |         MY_CRITICAL_SECTION {
          |         ^~~~~~~~~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./hal/transport/RF24/driver/RF24.cpp:507:9: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      507 |         MY_CRITICAL_SECTION {
          |         ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘void CircularBuffer<T>::clear()’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:53:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       53 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:53:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       53 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:53:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       53 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:53:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       53 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘bool CircularBuffer<T>::empty() const’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:66:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       66 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:66:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       66 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:66:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       66 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:66:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       66 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘bool CircularBuffer<T>::full() const’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:79:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       79 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:79:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       79 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:79:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       79 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:79:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       79 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘uint8_t CircularBuffer<T>::available() const’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:92:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       92 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:92:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       92 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:92:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       92 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:92:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
       92 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘T* CircularBuffer<T>::getFront() const’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:106:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      106 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:106:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      106 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:106:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      106 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:106:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      106 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘bool CircularBuffer<T>::pushFront(T*)’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:123:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      123 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:123:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      123 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:123:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      123 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:123:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      123 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘T* CircularBuffer<T>::getBack() const’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:146:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      146 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:146:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      146 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:146:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      146 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:146:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      146 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: In member function ‘bool CircularBuffer<T>::popBack()’:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: warning: empty parentheses were disambiguated as a function declaration [-Wvexing-parse]
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:161:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      161 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: remove parentheses to default-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:161:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      161 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:58: note: or replace parentheses with braces to value-initialize a variable
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                          ^~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:161:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      161 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h: At global scope:
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:106:50: error: ambiguating new declaration of ‘uint8_t __hwLock()’
      106 | #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
          |                                                  ^~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:113:29: note: in expansion of macro ‘ATOMIC_BLOCK’
      113 | #define MY_CRITICAL_SECTION ATOMIC_BLOCK
          |                             ^~~~~~~~~~~~
    ./drivers/CircularBuffer/CircularBuffer.h:161:17: note: in expansion of macro ‘MY_CRITICAL_SECTION’
      161 |                 MY_CRITICAL_SECTION {
          |                 ^~~~~~~~~~~~~~~~~~~
    ./hal/architecture/Linux/MyHwLinuxGeneric.h:88:24: note: old declaration ‘void __hwLock()’
       88 | static __inline__ void __hwLock()
          |                        ^~~~~~~~
    make: *** [Makefile:99: build/examples_linux/mysgw.o] Error 1
    

    The cpp / g++ compiler version:

    root@DESKTOP-GETBHUS:/mnt/d/temp/MySensors# gcc --version
    gcc (Ubuntu 11.3.0-1ubuntu1~22.04.1) 11.3.0
    Copyright (C) 2021 Free Software Foundation, Inc.
    This is free software; see the source for copying conditions.  There is NO
    warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
    

    Any idea how to fix this?

    Regards, M. Erni


  • Mod

    Welcome to the forum @mauri

    Did you follow the instructions at https://www.mysensors.org/build/orange ?



  • Thx for your tip.
    I already used the documentation you mentioned. The documentation is for OrangePi Zero but I try to compile MySensors for OrangePi 5.
    Therefore I used a different library for WiringPi: https://github.com/orangepi-xunlong/wiringOP/tree/next
    Also enabling SPI was different for OrangePi 5. SPI is working (at least I can see devices at /dev/spi... ).
    The problem that I have: I can't compile MySensors when I define MY_RF24_IRQ_PIN in configuration (see first post). When I don't use MY_RF24_IRQ_PIN, compilation works (with warnings).

    Hope this makes things more clear.

    Regards, Mauri



  • search : MyHwLinuxGeneric.h parentheses declaration [-Wvexing-parse]

    ??? https://stackoverflow.com/questions/21624880/how-does-this-declaration-invoke-the-most-vexing-parse ???



  • Thx for the hint. Unfortunately this didn't help me to find a solution for the compilation error.
    I simply don't understand the lines 105 and 106 in (MyHwLinuxGeneric.h). Can anyone explain me the C magic going on there?

    #define ATOMIC_BLOCK for ( ATOMIC_BLOCK_CLEANUP, __hwLock(); \
                               __atomic_loop ; __atomic_loop = 0 )
    

    I think the problem is the "new"/different compiler version being used on the OrangePi 5. On my Raspberry Pi the code compiled without any problem.


Log in to reply
 

Suggested Topics

  • 1
  • 2
  • 10
  • 3
  • 2
  • 2

0
Online

11.2k
Users

11.1k
Topics

112.5k
Posts