← All tasks
cpphyperion-project/hyperion.ng #883Not a task: not reproduced

When building with -DUSE_SYSTEM_MBEDTLS_LIBS=ON hyperion doesn't get linked against shared objects

envgap__hyperion-project__hyperion.ng-883

01 / FAILURE SIGNATURE

As reported upstream

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::getCiphersuites() [clone .localalias]: error: undefined reference to 'mbedtls_ssl_list_ciphersuites'
Not a benchmark task.
  • In a clean container the reported failure did not reproduce, or the known fix did not make the project run.

02 / ENVIRONMENT RECIPE

Base commit
cce698098250724013e8523193f4625ec026e7fe
Manifest
CMakeLists.txt
Reproduce
Awaiting issue-specific recipe
Run under trace
Awaiting a meaningful runtime command

03 / ORIGINAL ISSUE TEXT

hyperion-project/hyperion.ng #883 · read the original issue
<!-- Please don't delete this template or we'll close your issue -->

<!-- Before creating an issue please make sure you are using the latest version of Hyperion. -->



<!-- Please confirm you will submit an issue. -->

<!-- Issues which contain questions or support requests will be closed. -->

<!-- (Update "[ ]" to "[x]" to check a box) -->



- [x] I confirm that this is an issue rather than a question.



<!-- Please ask questions here -->

<!-- https://hyperion-project.org -->



## Bug report

When building with `-DUSE_SYSTEM_MBEDTLS_LIBS=ON` hyperion doesn't get linked against the mbedtls shared objects, hence, final linking fails due to unresolved symbols.



Latest master as of the time writing this bug report: 8a9b44f



#### Steps to reproduce

Configure build via: `cmake -DENABLE_AMLOGIC=ON -DPLATFORM=linux -Dflatbuffers_DIR=/usr/lib/aarch64-linux-gnu/cmake/flatbuffers -DCMAKE_BUILD_TYPE=Release -DENABLE_SPIDEV=ON -DENABLE_WS281XPWM=ON -DENABLE_QT=OFF -DUSE_SYSTEM_MBEDTLS_LIBS=ON -DUSE_SYSTEM_PROTO_LIBS=ON -DUSE_SYSTEM_FLATBUFFERS_LIBS=ON -DQT=OFF ..` and then `make`



#### What is expected?

Linking against mbledtls shared objects when using external system libs.



#### What is actually happening?

No linking against external mbedtls system libs - though specified - and therewith ending up with unresolved symbols.

`make` fails with:

```

[ 98%] Built target hyperiond_autogen

[ 98%] Linking CXX executable ../../bin/hyperiond

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::getCiphersuites() [clone .localalias]: error: undefined reference to 'mbedtls_ssl_list_ciphersuites'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_ssl_session_reset'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_net_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_ssl_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_ssl_config_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_x509_crt_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_ctr_drbg_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::freeSSLConnection(): error: undefined reference to 'mbedtls_entropy_free'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::errorMsg(int): error: undefined reference to 'mbedtls_strerror'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::seedingRNG(): error: undefined reference to 'mbedtls_entropy_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::seedingRNG(): error: undefined reference to 'mbedtls_entropy_func'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::seedingRNG(): error: undefined reference to 'mbedtls_entropy_func'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::seedingRNG(): error: undefined reference to 'mbedtls_ctr_drbg_seed'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupPSK(): error: undefined reference to 'mbedtls_ssl_conf_psk'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::closeSSLNotify(): error: undefined reference to 'mbedtls_ssl_close_notify'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::writeBytes(unsigned int, unsigned char const*): error: undefined reference to 'mbedtls_ssl_write'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startSSLHandshake(): error: undefined reference to 'mbedtls_ssl_handshake'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startSSLHandshake(): error: undefined reference to 'mbedtls_ssl_get_verify_result'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_ssl_session_reset'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_connect'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_recv_timeout'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_recv'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_send'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_recv_timeout'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_recv'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_net_send'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_ssl_set_bio'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_timing_get_delay'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_timing_set_delay'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_timing_get_delay'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_timing_set_delay'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::startUPDConnection(): error: undefined reference to 'mbedtls_ssl_set_timer_cb'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_config_defaults'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_list_ciphersuites'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_authmode'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_ca_chain'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_ciphersuites'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ctr_drbg_random'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ctr_drbg_random'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_rng'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_handshake_timeout'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_setup'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_set_hostname'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_verify'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_dbg'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_debug_set_threshold'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::setupStructure(): error: undefined reference to 'mbedtls_ssl_conf_read_timeout'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::initConnection(): error: undefined reference to 'mbedtls_net_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::initConnection(): error: undefined reference to 'mbedtls_ssl_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::initConnection(): error: undefined reference to 'mbedtls_ssl_config_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::initConnection(): error: undefined reference to 'mbedtls_x509_crt_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::initConnection(): error: undefined reference to 'mbedtls_ctr_drbg_init'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::ProviderUdpSSLVerify(void*, mbedtls_x509_crt*, int, unsigned int*): error: undefined reference to 'mbedtls_x509_crt_info'

../../lib/libleddevice.a(ProviderUdpSSL.cpp.o):ProviderUdpSSL.cpp:function ProviderUdpSSL::ProviderUdpSSLVerify(void*, mbedtls_x509_crt*, int, unsigned int*): error: undefined reference to 'mbedtls_x509_crt_verify_info'

collect2: error: ld returned 1 exit status

make[2]: *** [src/hyperion-remote/CMakeFiles/hyperion-remote.dir/build.make:152: bin/hyperion-remote] Error 1

make[1]: *** [CMakeFiles/Makefile2:2319: src/hyperion-remote/CMakeFiles/hyperion-remote.dir/all] Error 2

```



#### System

Debian Linux - bullseye on arm64 (Allwinner H6)

Continue on GitHub ↗

04 / LABELS

Labels from the report text only; not yet run

No supported category has been assigned.

Label rules and the text that matched
[]