Including sparse-endian causes redefinition problems. It shouldn't, but it does. Just work around the problem by moving the method to the cpp
In file included from /usr/include/netinet/in.h:408,
from ../../libraries/AP_HAL_SITL/CAN_Multicast.cpp:14:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:34:1: error: redefinition of ‘__uint16_t __bswap_16(__uint16_t)’
34 | __bswap_16 (__uint16_t __bsx)
| ^~~~~~~~~~
compilation terminated due to -Wfatal-errors.
In file included from /usr/include/netinet/in.h:408,
from ../../libraries/AP_HAL_SITL/SITL_State.cpp:20:
/usr/include/x86_64-linux-gnu/bits/byteswap.h:34:1: error: redefinition of ‘__uint16_t __bswap_16(__uint16_t)’
34 | __bswap_16 (__uint16_t __bsx)
| ^~~~~~~~~~
compilation terminated due to -Wfatal-errors.
In file included from ../../libraries/AP_HAL/utility/sparse-endian.h:28,
from ../../libraries/SITL/SIM_Volz.h:47,
from ../../libraries/SITL/SITL.h:35,
from ../../libraries/SITL/SIM_Aircraft.h:25,
from ../../libraries/SITL/SIM_ADSB.h:27,
from ../../libraries/AP_HAL_SITL/SITL_State_common.h:13,
from ../../libraries/AP_HAL_SITL/SITL_State.h:8,
from ../../libraries/AP_HAL_SITL/UARTDriver.cpp:42:
../../libraries/AP_Common/missing/byteswap.h:9:24: error: redefinition of ‘uint16_t __bswap_16(uint16_t)’
9 | static inline uint16_t __bswap_16(uint16_t u)
| ^~~~~~~~~~
compilation terminated due to -Wfatal-errors.