mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2025-12-26 23:11:19 +01:00
Native boards fail to link due to an upstream bug in cryptoauthlib's
test infrastructure. The file build/pkg/cryptoauthlib/test/cmd-processor.c
has incorrect conditional compilation logic:
#if defined(_WIN32) || defined(__linux__) || defined(__APPLE__)
int main(int argc, char* argv[]) { ... }
#elif defined(RIOT_APPLICATION)
int atca_run_cmd(char *command, size_t len) { ... }
#endif
On native boards, __linux__ is defined, so the code compiles a main()
function instead of atca_run_cmd(). This conflicts with RIOT's main()
and causes linker errors:
- multiple definition of 'main'
- undefined reference to 'atca_run_cmd'
On ARM boards, none of these platform macros are defined, so the code
correctly falls through to the RIOT_APPLICATION branch and compiles
atca_run_cmd() instead.
The fix would require patching cryptoauthlib to check RIOT_APPLICATION
before checking platform macros, or reporting this upstream to Microchip.
Signed-off-by: Gilles DOFFE <g.doffe@gmail.com>
Tests provided by the cryptoauthlib driver
Some of the tests require the device config zone to be locked. Test that require the use of key slots will fail, if the slot configuration differs from the default configuration.