linker error to unknown references in NimBLE source code
Posted: Tue Aug 26, 2025 7:26 am
I'm currently in the process of migrating an existing codebase from ESP-IDF 4.4.6 to ESP-IDF 5.4.2. I've followed the migration guides as set out on the Programming Guide.
I'm not able to compile the code currently, the linker is returning errors for undefined references to the following symbols:
ble_store_config_csfcs
ble_store_config_persist_csfcs
ble_store_config_rpa_recs
These all appear to be defined inside preprocessor #if statements, evaluated by the MYNEWT_VAL() macro each with a different macro as its argument:
BLE_STORE_MAX_CSFCS
BLE_STORE_CONFIG_PERSIST
BLE_STORE_MAX_BONDS
I cannot find where these macros are defined anywhere in the sourcecode, and so I presume each of the #if statements is evaluated as 0 and the definition of the symbols is skipped.
Neither can I find reference to these in any documentation, and googling has yielded no clues.
Are BLE_STORE_MAX_CSFCS etc set as parameters in a config somewhere? How do I set these values so that the preprocessor defines the symbols that the linker cannot find?
I've attached the CMake build log and the terminal output.
Thanks!
I'm not able to compile the code currently, the linker is returning errors for undefined references to the following symbols:
ble_store_config_csfcs
ble_store_config_persist_csfcs
ble_store_config_rpa_recs
These all appear to be defined inside preprocessor #if statements, evaluated by the MYNEWT_VAL() macro each with a different macro as its argument:
BLE_STORE_MAX_CSFCS
BLE_STORE_CONFIG_PERSIST
BLE_STORE_MAX_BONDS
I cannot find where these macros are defined anywhere in the sourcecode, and so I presume each of the #if statements is evaluated as 0 and the definition of the symbols is skipped.
Neither can I find reference to these in any documentation, and googling has yielded no clues.
Are BLE_STORE_MAX_CSFCS etc set as parameters in a config somewhere? How do I set these values so that the preprocessor defines the symbols that the linker cannot find?
I've attached the CMake build log and the terminal output.
Thanks!