[sections:bt_bss]
entries:
    .bss+

[sections:bt_common]
entries:
    COMMON

[scheme:bt_start_end]
entries:
    bt_bss -> dram0_bss
    bt_common -> dram0_bss
    data -> dram0_data

# For the following fragments, order matters for
# 'ALIGN(4) ALIGN(4, post) SURROUND(sym)', which generates:
#
#   . = ALIGN(4)
#   _sym_start
#   ...
#   . = ALIGN(4)
#   _sym_end

[mapping:bt]
archive: libbt.a
entries:
    * (bt_start_end);
        bt_bss -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(bt_bss),
        bt_common -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(bt_common),
        data -> dram0_data  ALIGN(4) ALIGN(4, post) SURROUND(bt_data)
    if ESP_ALLOW_BSS_SEG_EXTERNAL_MEMORY = y:
        * (extram_bss)

[mapping:btdm]
archive: libbtdm_app.a
entries:
    * (bt_start_end);
        bt_bss -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(btdm_bss),
        bt_common -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(btdm_common),
        data -> dram0_data ALIGN(4) ALIGN(4, post) SURROUND(btdm_data)

[mapping:bt_controller]
archive: libble_app.a
entries:
    * (bt_start_end);
        bt_bss -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(bt_controller_bss),
        bt_common -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(bt_controller_common),
        data -> dram0_data ALIGN(4) ALIGN(4, post) SURROUND(bt_controller_data)

[mapping:nimble]
archive: libnimble.a
entries:
    * (bt_start_end);
        bt_bss -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(nimble_bss),
        bt_common -> dram0_bss ALIGN(4) ALIGN(4, post) SURROUND(nimble_common),
        data -> dram0_data ALIGN(4) ALIGN(4, post) SURROUND(nimble_data)