1
0
mirror of https://github.com/RIOT-OS/RIOT.git synced 2025-12-27 15:31:17 +01:00
Gilles DOFFE e1b2d5c9df tests/cryptoauthlib: blacklist native boards
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>
2025-10-30 23:51:31 +01:00

24 lines
914 B
Makefile

BOARD ?= nucleo-f767zi
include ../Makefile.pkg_common
CFLAGS += -DTHREAD_STACKSIZE_MAIN=\(3*THREAD_STACKSIZE_DEFAULT\)
# Test fails to build for these boards fails due to
# redefinition of define AES_COUNT in library, which
# is also defined in board header files
BOARD_BLACKLIST := stk3200 stk3600 stk3700
# Native boards are blacklisted due to a bug in cryptoauthlib's cmd-processor.c
# The file checks for __linux__ before checking for RIOT_APPLICATION, causing it
# to compile a main() function instead of atca_run_cmd(), which conflicts with
# RIOT's main(). This is an upstream bug in cryptoauthlib test infrastructure.
# See: build/pkg/cryptoauthlib/test/cmd-processor.c lines 233-278
BOARD_BLACKLIST += native native32 native64
# due to memory constrains we ignore the cert test
CFLAGS += -DDO_NOT_TEST_CERT
USEPKG += cryptoauthlib
USEMODULE += cryptoauthlib_test
include $(RIOTBASE)/Makefile.include