##### environment: - System:win10_x64 - GNU:GNU Tools ARM Embedded-4.9 2015q3 - SDK version:nRF5_SDK_for_Thread_v0.10.0_e1c3d11 - Example:nRF5_SDK_for_Thread_v0.10.0_e1c3d11\examples\thread\experimental\cli ##### Problem Description Everything was fine when I used the pre-built OpenThread libraries, inclouding compiling cli example and then generating a bin file. Then, follow the following steps to rebuild the library according to [building the latest OpenThread libraries](http://infocenter.nordicsemi.com/topic/com.nordic.infocenter.threadsdk.v0.10.0/thread_intro.html?cp=4_2_1_1_4#thread_qsg_libraries): 1. Download or clone the [OpenThread stack](https://github.com/openthread/openthread) repository to the /external/openthread/project/openthread folder. and then checkout to a specific commit according to Release note of Thread SDK v0.10.0: $ git checkout 6a15261b 2. Run the build_gcc_libs.bat script to build all of the libraries. It worked fine. 3. After the libraries are built, use the provided script (/external/openthread/project/import_gcc_libs.bat) to copy the compiled libraries to the output folder. It worked fine. I was sure the pre-built OpenThread libraries had been replaced from the output information. 4. Copy the /external/project/openthread/include folder into the /external/openthread folder. Everything is ok, but errors come when I recompile the cli example with the latest libraries. navigate to F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\examples\thread\experimental\cli\pca10056\blank\armgcc, and then run: $ make Errors log: Compiling file: system_nrf52840.c Linking target: _build/nrf52840_xxaa.out ../../../../../../../external/openthread/lib/gcc/libopenthread-cli-ftd.a(libopenthread_cli_ftd_cli_uart.cpp.o):(.rodata._ZTIN2ot3Cli6ServerE[_ZTIN2ot3Cli6ServerE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-cli-ftd.a(libopenthread_cli_ftd_cli_uart.cpp.o):(.rodata._ZTIN2ot3Cli4UartE+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_instance_api.cpp.o): In function `otInstancePostConstructor(otInstance*)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/api/instance_api.cpp:76: undefined reference to `otPlatSettingsInit' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_instance_api.cpp.o): In function `otInstanceFactoryReset': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/api/instance_api.cpp:202: undefined reference to `otPlatSettingsWipe' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_key_manager.cpp.o): In function `ot::KeyManager::ComputeKey(unsigned long, unsigned char*)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/key_manager.cpp:158: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_key_manager.cpp.o):(.ARM.extab.text._ZN2ot10KeyManager10ComputeKeyEmPh+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o): In function `ot::Mac::Mac::GetHashMacAddress(ot::Mac::ExtAddress*)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/mac/mac.cpp:473: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o):(.ARM.extab.text._ZN2ot3Mac3Mac17GetHashMacAddressEPNS0_10ExtAddressE+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o): In function `~AesCcm': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/crypto/aes_ccm.hpp:57: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o):(.ARM.extab.text._ZN2ot3Mac3Mac23ProcessTransmitSecurityERNS0_5FrameE+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o): In function `~AesCcm': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/crypto/aes_ccm.hpp:57: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mac.cpp.o):(.ARM.extab.text._ZN2ot3Mac3Mac22ProcessReceiveSecurityERNS0_5FrameERKNS0_7AddressEPNS_8NeighborE+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o): In function `ot::Mle::Mle::Store()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle.cpp:388: undefined reference to `otPlatSettingsSet' F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle.cpp:384: undefined reference to `otPlatSettingsSet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o): In function `ot::Mle::Mle::Restore()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle.cpp:285: undefined reference to `otPlatSettingsGet' F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle.cpp:310: undefined reference to `otPlatSettingsGet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o): In function `~AesCcm': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/crypto/aes_ccm.hpp:57: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o):(.ARM.extab.text._ZN2ot3Mle3Mle11SendMessageERNS_7MessageERKNS_3Ip67AddressE+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o): In function `~AesCcm': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/crypto/aes_ccm.hpp:57: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle.cpp.o):(.ARM.extab.text._ZN2ot3Mle3Mle16HandleUdpReceiveERNS_7MessageERKNS_3Ip611MessageInfoE+0x0): undefined reference to `__gxx_personality_v0' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle_router.cpp.o): In function `ot::Mle::MleRouter::RestoreChildren()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle_router.cpp:3511: undefined reference to `otPlatSettingsGet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle_router.cpp.o): In function `ot::Mle::MleRouter::RemoveStoredChild(unsigned short)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle_router.cpp:3540: undefined reference to `otPlatSettingsGet' F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle_router.cpp:3546: undefined reference to `otPlatSettingsDelete' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle_router.cpp.o): In function `ot::Mle::MleRouter::StoreChild(unsigned short)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle_router.cpp:3573: undefined reference to `otPlatSettingsAdd' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_mle_router.cpp.o): In function `ot::Mle::MleRouter::RefreshStoredChildren()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/thread/mle_router.cpp:3583: undefined reference to `otPlatSettingsDelete' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_netif.cpp.o):(.rodata._ZTIN2ot3Ip65NetifE[_ZTIN2ot3Ip65NetifE]+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_thread_api.cpp.o): In function `otThreadGetAutoStart': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/api/thread_api.cpp:453: undefined reference to `otPlatSettingsGet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_thread_api.cpp.o): In function `otThreadSetAutoStart': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/api/thread_api.cpp:470: undefined reference to `otPlatSettingsSet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_thread_netif.cpp.o):(.rodata._ZTIN2ot11ThreadNetifE+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_coap.cpp.o):(.rodata._ZTIN2ot4Coap4CoapE+0x0): undefined reference to `vtable for __cxxabiv1::__class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_coap_secure.cpp.o):(.rodata._ZTIN2ot4Coap10CoapSecureE+0x0): undefined reference to `vtable for __cxxabiv1::__si_class_type_info' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_dataset.cpp.o): In function `ot::MeshCoP::Dataset::Clear(bool)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/meshcop/dataset.cpp:64: undefined reference to `otPlatSettingsDelete' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_dataset.cpp.o): In function `ot::MeshCoP::Dataset::Restore()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/meshcop/dataset.cpp:439: undefined reference to `otPlatSettingsGet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_dataset.cpp.o): In function `ot::MeshCoP::Dataset::Store()': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/meshcop/dataset.cpp:452: undefined reference to `otPlatSettingsDelete' F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/meshcop/dataset.cpp:456: undefined reference to `otPlatSettingsSet' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_dtls.cpp.o): In function `ot::MeshCoP::Dtls::HandleMbedtlsExportKeys(unsigned char const*, unsigned char const*, unsigned int, unsigned int, unsigned int)': F:\nRF5_SDK_for_Thread_v0.10.0_e1c3d11\external\openthread\project\lib\openthread\ftd\armgcc/../../../../openthread/src/core/meshcop/dtls.cpp:374: undefined reference to `__cxa_end_cleanup' ../../../../../../../external/openthread/lib/gcc/libopenthread-ftd.a(libopenthread_ftd_dtls.cpp.o):(.ARM.extab.text._ZN2ot7MeshCoP4Dtls23HandleMbedtlsExportKeysEPKhS3_jjj+0x0): undefined reference to `__gxx_personality_v0' collect2.exe: error: ld returned 1 exit status ../../../../../../../components/toolchain/gcc/Makefile.common:153: recipe for target '_build/nrf52840_xxaa.out' failed make: *** [_build/nrf52840_xxaa.out] Error 1