Not compiling - Symbol multiply defined

Hi guys,

I am trying to compile the stand alone code in Mbed Studio and I am getting the following warnings and errors, in the linking stage, has anyone come across this before?

Link: example-standalone-inferencing-mbed

[Warning] @0,0: L3912W: Option 'legacyalign' is deprecated.

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::interface::SecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>::EventHandler::EventHandler__sub_object() defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerC2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerC2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::interface::SecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>::EventHandler::~EventHandler__sub_object() defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerD2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerD2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>::GenericSecurityManager__sub_object(ble::pal::SecurityManager<ble::pal::vendor::cordio::CordioSecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>&, ble::pal::ConnectionEventMonitor<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>&, ble::vendor::cordio::SigningEventMonitor<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>&) defined in .text._ZN3ble7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEC2ERNS2_15SecurityManagerINS5_IS9_EES9_EERNS2_22ConnectionEventMonitorIS9_EERNS8_IS9_EE(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEC2ERNS2_15SecurityManagerINS5_IS9_EES9_EERNS2_22ConnectionEventMonitorIS9_EERNS8_IS9_EE(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::pal::vendor::cordio::CordioGattClient<ble::generic::GenericGattClient<ble::pal::vendor::cordio::CordioGattClient, ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>>::CordioGattClient__sub_object(ble::pal::vendor::cordio::CordioAttClient&) defined in .text._ZN3ble3pal6vendor6cordio16CordioGattClientINS_7generic17GenericGattClientIS3_NS4_22GenericSecurityManagerINS2_21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEEEEC2ERNS2_15CordioAttClientE(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble3pal6vendor6cordio16CordioGattClientINS_7generic17GenericGattClientIS3_NS4_22GenericSecurityManagerINS2_21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEEEEC2ERNS2_15CordioAttClientE(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::interface::SecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>::SecurityManager__sub_object() defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEEC2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEEC2Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/op_resolver.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/all_ops_resolver.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/memory_helpers.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/micro_allocator.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/micro_interpreter.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/micro_optional_debug_tools.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/recording_micro_allocator.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/simple_memory_allocator.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/test_helpers.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/micro/testing/test_utils.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol flatbuffers::flatbuffer_version_string defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/source/main.o) rejected in favor of Symbol defined in .data._ZN11flatbuffers25flatbuffer_version_stringE(BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/tensorflow/lite/core/api/flatbuffer_conversions.o).

[Warning] @0,0: L6439W: Multiply defined Global Symbol ble::interface::SecurityManager<ble::generic::GenericSecurityManager<ble::pal::vendor::cordio::CordioSecurityManager, ble::vendor::cordio::SigningEventMonitor>>::EventHandler::~EventHandler__deallocating() defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerD0Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioImplementations.o) rejected in favor of Symbol defined in .text._ZN3ble9interface15SecurityManagerINS_7generic22GenericSecurityManagerINS_3pal6vendor6cordio21CordioSecurityManagerENS_6vendor6cordio19SigningEventMonitorEEEE12EventHandlerD0Ev(BUILD/DISCO_L475VG_IOT01A/ARMC6/mbed-os/features/FEATURE_BLE/targets/TARGET_CORDIO/source/CordioBLE.o).

[Error] @0,0: L6200E: Symbol arm_radix2_butterfly_inverse_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len2048 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_32 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_radix4_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_offset_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_offset_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_radix4_butterfly_inverse_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len1024 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_64 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_128 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_1024 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_sub_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_sub_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_radix2_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_radix4by2_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len128 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_512 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len256 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len32 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_mult_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_mult_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_add_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_add_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_scale_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_scale_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_4096 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_abs_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_abs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len64 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_dot_prod_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_dot_prod_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_256 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_radix4_butterfly_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix4_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_negate_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/arm_negate_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/BasicMathFunctions/BasicMathFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol twiddleCoefF16_2048 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_common_tables_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_init_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_init_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len4096 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_cfft_sR_f16_len512 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/arm_const_structs_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/CommonTables/CommonTablesF16.o).

[Error] @0,0: L6200E: Symbol arm_radix2_butterfly_f16 multiply defined (by BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/arm_cfft_radix2_f16.o and BUILD/DISCO_L475VG_IOT01A/ARMC6/edge-impulse-sdk/CMSIS/DSP/Source/TransformFunctions/TransformFunctionsF16.o).
1 Like

@AlessandroDevs interesting, looks like it’s trying to include CMSIS-DSP twice… I know Mbed Studio uses ARMCC underneath, perhaps that’s an issue? Can you try this: https://os.mbed.com/docs/mbed-studio/current/installing/switching-to-gcc.html ? Also, which Mbed OS version and target are you using?

I’ve just compiled the example against Mbed OS 6.0.0 on the ST IoT Discovery Kit with Mbed CLI and GCC ARM 9 and that compiles and links fine.

2 Likes

Good spot, it works with the latest GCC ARM 9. Thank you for such a quick answer, appreciate it! I need to look into why ARMCC is instead doing that :slight_smile:

Yeah interesting behavior. Compilation actually works but then linking fails… If you manage to get an idea please let us know and we can fix this in the SDK.

Hi,

I prefer using MBed studio.
I switch from GCC_ARM to ARMC6 toolchain.
I get no compiler error.
I get the same linker warnings as @AlessandroDevs.
It builds the bin file here.

Elf2Bin: example-standalone-inferencing-mbed
| Module                      |           .text |     .data |            .bss |
|-----------------------------|-----------------|-----------|-----------------|
| [lib]\c_w.l                 |   21491(+21491) |   16(+16) |       348(+348) |
| [lib]\fz_wm.l               |     4498(+4498) |     0(+0) |           0(+0) |
| [lib]\libcpp_w.l            |   66454(+66454) |     0(+0) |     2920(+2920) |
| [lib]\libcppabi_w.l         |     2595(+2595) |     0(+0) |           0(+0) |
| [lib]\m_wm.l                |     9702(+9702) |     0(+0) |           0(+0) |
| anon$$obj.o                 |         64(+64) |     0(+0) |   94128(+94128) |
| edge-impulse-sdk\CMSIS      | 127450(+127450) |     0(+0) |           0(+0) |
| edge-impulse-sdk\dsp        |     3037(+3037) |     0(+0) |           0(+0) |
| edge-impulse-sdk\porting    |         60(+60) |     0(+0) |           0(+0) |
| edge-impulse-sdk\tensorflow |   25189(+25189) | 128(+128) |           4(+4) |
| mbed-os\components          |         40(+40) |     0(+0) |         48(+48) |
| mbed-os\drivers             |       266(+266) |     0(+0) |           0(+0) |
| mbed-os\features            |         18(+18) |     0(+0) |           0(+0) |
| mbed-os\hal                 |     1284(+1284) |     8(+8) |       130(+130) |
| mbed-os\platform            |     5091(+5091) |   64(+64) |       348(+348) |
| mbed-os\rtos                |     7718(+7718) | 168(+168) |   10977(+10977) |
| mbed-os\targets             |   10466(+10466) |   12(+12) |       968(+968) |
| source\main.o               |   14263(+14263) |   68(+68) |           9(+9) |
| Subtotals                   | 299686(+299686) | 464(+464) | 109880(+109880) |
Total Static RAM memory (data + bss): 110344(+110344) bytes
Total Flash memory (text + data): 300150(+300150) bytes
Object file arm_bitreversal2.o is not unique! It could be made from: edge-impulse-sdk\CMSIS\DSP\Source\TransformFunctions\arm_bitreversal2.c edge-impulse-sdk\CMSIS\DSP\Source\TransformFunctions\arm_bitreversal2.S
Image: BUILD/DISCO_L475VG_IOT01A/ARMC6\example-standalone-inferencing-mbed

The Object file arm_bitreversal2.o is not unique! is related to your SDK.

Example works like a charm on the board.

Hope this helps.

@HaraldBlab thanks for letting us know. I think the warning is fine for now - that file ships both in Assembly and in C format, not sure why CMSIS-DSP is doing that…