Error when compiling application with NSC v3.0.1 and CONFIG_BT_LL_SOFTDEVICE=n

Hi, 

I recently updated Nordic connect SDK and toolchain from v2.7.0 to v3.0.1. When compiling my application with activated CONFIG_BT_LL_SOFTDEVICE flag, I get this error message:

c:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a(hci_core.c.obj):(.data.bt_dev+0x170): undefined reference to `__device_dts_ord_112'
collect2.exe: error: ld returned 1 exit status
 

When setting the CONFIG flag to "no" it compiles as expected. When using v2.7.0 I also had the flag set to "no" and it worked. Are there any related changes in the new version? I didn't find anything about it in the Migration guides. 

Best regards,

Christian

Parents
  • Hi,

    Could you attach the entire build log? There's most likely something more useful somewhere else in the log.

    When using v2.7.0 I also had the flag set to "no"

    Do you set 'CONFIG_BT_LL_SOFTDEVICE="no"' or "CONFIG_BT_LL_SOFTDEVICE=n"?

    Kind regards,
    Andreas

  • Hi, 

    thanks for your answer, here's the complete log:

     *  Executing task: nRF Connect: Build [pristine]: test_app/hw3_button_3_0_1 (active) 
    
    Building test_app
    C:\WINDOWS\system32\cmd.exe /d /s /c "west build --build-dir d:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1 d:/Projekte/nrf_connect_sdk/apps/test_app --pristine --board [email protected]/nrf52833 --sysbuild -- -DNCS_TOOLCHAIN_VERSION=NONE -DBOARD_ROOT=d:\Projekte\nrf_connect_sdk"
    
    -- west build: generating a build system
    Loading Zephyr module(s) (Zephyr base): sysbuild_default
    -- Found Python3: C:/ncs/toolchains/0b393f9e1b/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter 
    -- Cache files will be written to: C:/ncs/v3.0.1/zephyr/.cache
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: test_app, Revision: 2.0.0, qualifiers: nrf52833
    Parsing d:/Projekte/nrf_connect_sdk/apps/test_app/Kconfig.sysbuild
    Loaded configuration 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/_sysbuild/empty.conf'
    Merged configuration 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/_sysbuild/empty.conf'
    Merged configuration 'd:/Projekte/nrf_connect_sdk/apps/test_app/sysbuild.conf'
    Configuration saved to 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/zephyr/.config'
    Kconfig header saved to 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/_sysbuild/autoconf.h'
    -- 
       *********************************
       * Running CMake for test_app *
       *********************************
    
    Loading Zephyr default modules (Zephyr base).
    -- Application: D:/Projekte/nrf_connect_sdk/apps/test_app
    -- CMake version: 3.21.0
    -- Found Python3: C:/ncs/toolchains/0b393f9e1b/opt/bin/python.exe (found suitable version "3.12.4", minimum required is "3.10") found components: Interpreter 
    -- Cache files will be written to: C:/ncs/v3.0.1/zephyr/.cache
    -- Zephyr version: 4.0.99 (C:/ncs/v3.0.1/zephyr)
    -- Found west (found suitable version "1.2.0", minimum required is "0.14.0")
    -- Board: test_app, Revision: 2.0.0, qualifiers: nrf52833
    -- Found host-tools: zephyr 0.17.0 (C:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk)
    -- Found toolchain: zephyr 0.17.0 (C:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk)
    -- Found Dtc: C:/ncs/toolchains/0b393f9e1b/opt/bin/dtc.exe (found suitable version "1.4.7", minimum required is "1.4.6") 
    -- Found BOARD.dts: D:/Projekte/nrf_connect_sdk/boards/Haveltec/test_app/test_app.dts
    -- Found devicetree overlay: D:/Projekte/nrf_connect_sdk/boards/Haveltec/test_app/test_app_2_0_0.overlay
    unit address and first address in 'reg' (0x43000) don't match for /soc/flash-controller@4001e000/flash@0/partitions/partition@430000
    -- Generated zephyr.dts: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/zephyr.dts
    -- Generated pickled edt: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/edt.pickle
    -- Generated zephyr.dts: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/zephyr.dts
    -- Generated devicetree_generated.h: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/include/generated/zephyr/devicetree_generated.h
    -- Including generated dts.cmake file: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/dts.cmake
    
    warning: LOG_BUFFER_SIZE (defined at C:/ncs/v3.0.1/nrf\subsys/net/openthread/Kconfig.defconfig:51,
    subsys/logging\Kconfig.processing:122) was assigned the value '4096' but got the value ''. Check
    these unsatisfied dependencies: (NET_L2_OPENTHREAD || (LOG_MODE_DEFERRED && !LOG_FRONTEND_ONLY &&
    !LOG_MODE_MINIMAL && LOG)) (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_BUFFER_SIZE and/or look up
    LOG_BUFFER_SIZE in the menuconfig/guiconfig interface. The Application Development Primer, Setting
    Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
    too.
    
    
    warning: BT_CTLR_SDC_PERIPHERAL_COUNT (defined at
    C:/ncs/v3.0.1/nrf\subsys\bluetooth\controller/Kconfig:138) was assigned the value '3' but got the
    value ''. Check these unsatisfied dependencies: BT_LL_SOFTDEVICE (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_CTLR_SDC_PERIPHERAL_COUNT and/or look up
    BT_CTLR_SDC_PERIPHERAL_COUNT in the menuconfig/guiconfig interface. The Application Development
    Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
    might be helpful too.
    
    
    warning: BT_LL_SW_SPLIT (defined at subsys/bluetooth\controller/Kconfig:145) was assigned the value
    'y' but got the value 'n'. Check these unsatisfied dependencies:
    DT_HAS_ZEPHYR_BT_HCI_LL_SW_SPLIT_ENABLED (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_BT_LL_SW_SPLIT and/or look up
    BT_LL_SW_SPLIT in the menuconfig/guiconfig interface. The Application Development Primer, Setting
    Configuration Values, and Kconfig - Tips and Best Practices sections of the manual might be helpful
    too.
    
    
    warning: LOG_BACKEND_FORMAT_TIMESTAMP (defined at subsys/logging\Kconfig.formatting:172) was
    assigned the value 'y' but got the value 'n'. Check these unsatisfied dependencies:
    LOG_BACKEND_SUPPORTS_FORMAT_TIMESTAMP (=n), (!LOG_MODE_MINIMAL) (=n). See
    http://docs.zephyrproject.org/latest/kconfig.html#CONFIG_LOG_BACKEND_FORMAT_TIMESTAMP and/or look up
    LOG_BACKEND_FORMAT_TIMESTAMP in the menuconfig/guiconfig interface. The Application Development
    Primer, Setting Configuration Values, and Kconfig - Tips and Best Practices sections of the manual
    might be helpful too.
    
    
    warning: Deprecated symbol NFCT_PINS_AS_GPIOS is enabled.
    
    
    warning: Deprecated symbol BT_CTLR is enabled.
    
    Parsing D:/Projekte/nrf_connect_sdk/apps/test_app/Kconfig
    Loaded configuration 'D:/Projekte/nrf_connect_sdk/boards/Haveltec/test_app/test_app_defconfig'
    Merged configuration 'D:/Projekte/nrf_connect_sdk/boards/Haveltec/test_app/test_app_2_0_0_defconfig'
    Merged configuration 'D:/Projekte/nrf_connect_sdk/apps/test_app/prj.conf'
    Merged configuration 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/.config.sysbuild'
    Configuration saved to 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/.config'
    Kconfig header saved to 'D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/include/generated/zephyr/autoconf.h'
    -- Found GnuLd: c:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk/arm-zephyr-eabi/arm-zephyr-eabi/bin/ld.bfd.exe (found version "2.38") 
    -- The C compiler identification is GNU 12.2.0
    -- The CXX compiler identification is GNU 12.2.0
    -- The ASM compiler identification is GNU
    -- Found assembler: C:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk/arm-zephyr-eabi/bin/arm-zephyr-eabi-gcc.exe
    CMake Warning at C:/ncs/v3.0.1/zephyr/subsys/usb/device/CMakeLists.txt:22 (message):
      CONFIG_USB_DEVICE_VID has default value 0x2FE3.
    
      This value is only for testing and MUST be configured for USB products.
    
    
    =========== Generating psa_crypto_config ===============
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
    Backup: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
    Backup: CONFIG_MBEDTLS_THREADING: False
    Backup: CONFIG_MBEDTLS_THREADING_ALT: True
    =========== Checkpoint: backup ===============
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
    Restore: CONFIG_MBEDTLS_PLATFORM_SETUP_TEARDOWN_ALT: False
    Restore: CONFIG_MBEDTLS_THREADING: False
    Restore: CONFIG_MBEDTLS_THREADING_ALT: True
    =========== End psa_crypto_config ===============
    =========== Generating psa_crypto_library_config ===============
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
    Backup: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
    Backup: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
    Backup: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
    Backup: CONFIG_MBEDTLS_THREADING: False
    Backup: CONFIG_MBEDTLS_THREADING_ALT: True
    =========== Checkpoint: backup ===============
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_C: True
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_KEY_ID_ENCODES_OWNER: False
    Restore: CONFIG_MBEDTLS_PSA_CRYPTO_SPM: False
    Restore: CONFIG_MBEDTLS_USE_PSA_CRYPTO: True
    Restore: CONFIG_MBEDTLS_PLATFORM_PRINTF_ALT: False
    Restore: CONFIG_MBEDTLS_THREADING: False
    Restore: CONFIG_MBEDTLS_THREADING_ALT: True
    =========== End psa_crypto_library_config ===============
    CMake Warning at C:/ncs/v3.0.1/zephyr/CMakeLists.txt:2180 (message):
      __ASSERT() statements are globally ENABLED
    
    
    -- Configuring done
    -- Generating done
    -- Build files have been written to: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app
    -- Configuring done
    -- Generating done
    -- Build files have been written to: D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1
    -- west build: building application
    [6/314] Generating include/generated/zephyr/version.h
    -- Zephyr version: 4.0.99 (C:/ncs/v3.0.1/zephyr), build: v4.0.99-ncs1-1
    [115/314] Building C object CMakeFiles/app.dir/D_/Projekte/nrf_connect_sdk/libs/uicr/ili_uicr.c.obj
    D:/Projekte/nrf_connect_sdk/libs/uicr/ili_uicr.c: In function 'ili_read_uicr':
    [199/314] Building C object CMakeFiles/app.dir/src/main.c.obj
    D:/Projekte/nrf_connect_sdk/apps/test_app/src/main.c:321:5: warning: 'BT_LE_ADV_OPT_CONNECTABLE' is deprecated [-Wdeprecated-declarations]
      321 |     .options = BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_USE_NAME
          |     ^
    In file included from D:/Projekte/nrf_connect_sdk/apps/test_app/src/main.c:19:
    C:/ncs/v3.0.1/zephyr/include/zephyr/bluetooth/bluetooth.h:638:9: note: declared here
      638 |         BT_LE_ADV_OPT_CONNECTABLE __deprecated = BIT(0),
          |         ^~~~~~~~~~~~~~~~~~~~~~~~~
    [309/314] Linking C executable zephyr\zephyr_pre0.elf
    FAILED: zephyr/zephyr_pre0.elf zephyr/zephyr_pre0.map D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/test_app/zephyr/zephyr_pre0.map 
    cmd.exe /C "cd . && C:\ncs\toolchains\0b393f9e1b\opt\zephyr-sdk\arm-zephyr-eabi\bin\arm-zephyr-eabi-gcc.exe  -gdwarf-4 @CMakeFiles\zephyr_pre0.rsp -o zephyr\zephyr_pre0.elf -L"c:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/thumb/v7e-m/nofp" -lc -lgcc && cmd.exe /C "cd /D D:\Projekte\nrf_connect_sdk\apps\test_app\hw3_button_3_0_1\test_app\zephyr && C:\ncs\toolchains\0b393f9e1b\opt\bin\cmake.exe -E true""
    c:/ncs/toolchains/0b393f9e1b/opt/zephyr-sdk/arm-zephyr-eabi/bin/../lib/gcc/arm-zephyr-eabi/12.2.0/../../../../arm-zephyr-eabi/bin/ld.bfd.exe: zephyr/subsys/bluetooth/host/libsubsys__bluetooth__host.a(hci_core.c.obj):(.data.bt_dev+0x170): undefined reference to `__device_dts_ord_112'
    collect2.exe: error: ld returned 1 exit status
    ninja: build stopped: subcommand failed.
    FAILED: _sysbuild/sysbuild/images/test_app-prefix/src/test_app-stamp/test_app-build D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1/_sysbuild/sysbuild/images/test_app-prefix/src/test_app-stamp/test_app-build 
    cmd.exe /C "cd /D D:\Projekte\nrf_connect_sdk\apps\test_app\hw3_button_3_0_1\test_app && C:\ncs\toolchains\0b393f9e1b\opt\bin\cmake.exe --build ."
    ninja: build stopped: subcommand failed.
    FATAL ERROR: command exited with status 1: 'C:\ncs\toolchains\0b393f9e1b\opt\bin\cmake.EXE' --build D:/Projekte/nrf_connect_sdk/apps/test_app/hw3_button_3_0_1
    
     *  The terminal process terminated with exit code: 1. 
     *  Terminal will be reused by tasks, press any key to close it. 

    I set the CONFIG variable to n.

    Best regards,

    Christian

  • Hi Christian,

    Thank you for sharing

    D:/Projekte/nrf_connect_sdk/apps/test_app/src/main.c:321:5: warning: 'BT_LE_ADV_OPT_CONNECTABLE' is deprecated [-Wdeprecated-declarations]
      321 |     .options = BT_LE_ADV_OPT_CONNECTABLE | BT_LE_ADV_OPT_USE_NAME
          |     ^
    In file included from D:/Projekte/nrf_connect_sdk/apps/test_app/src/main.c:19:
    C:/ncs/v3.0.1/zephyr/include/zephyr/bluetooth/bluetooth.h:638:9: note: declared here
      638 |         BT_LE_ADV_OPT_CONNECTABLE __deprecated = BIT(0),

    As you stated, I see there are some artifacts here w.r.t your application from 2.7.0 that are using deprecated functionality. Could you go through the release notes and migration guides and clear up any remaining warnings?

    Here's some resources that should get your through this:

    I know this is quite a bit of work to do, but unfortunately it's not as easy as "just upgrade" w.r.t upgrading to a newer release of NCS when you're going over 4 major releases of the SDK

    Kind regards,
    Andreas

Reply Children
No Data
Related