[sections:bss_common]
entries:
    .bss+
    COMMON

[scheme:bt_start_end]
entries:
    bss_common -> dram0_bss
    data -> dram0_data

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

[mapping:bt]
archive: libbt.a
entries:
    * (bt_start_end);
        bss_common -> dram0_bss ALIGN(4, post) SURROUND(bt_bss),
        data -> dram0_data  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);
        bss_common -> dram0_bss ALIGN(4, post) SURROUND(btdm_bss),
        data -> dram0_data ALIGN(4, post) SURROUND(btdm_data)

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