mirror of
https://github.com/espressif/esp-idf.git
synced 2024-10-05 20:47:46 -04:00
fix(ldgen): check target conflict for entries with section alias
This commit is contained in:
parent
aececf745f
commit
de93968670
@ -24,12 +24,13 @@ entries:
|
||||
[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)
|
||||
else:
|
||||
* (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)
|
||||
|
||||
[mapping:btdm]
|
||||
archive: libbtdm_app.a
|
||||
|
@ -471,7 +471,7 @@ class Generation:
|
||||
|
||||
sections_str = get_section_strs(section)
|
||||
|
||||
key = (entity, section.name)
|
||||
key = (entity, sections_str)
|
||||
|
||||
try:
|
||||
existing = entity_mappings[key]
|
||||
|
@ -782,6 +782,31 @@ entries:
|
||||
with self.assertRaises(GenerationException):
|
||||
self.generation.generate(self.entities)
|
||||
|
||||
def test_same_entity_conflicting_section(self):
|
||||
# Test same entity being mapped by scheme conflicting with another.
|
||||
#
|
||||
# custom_rtc = .text -> rtc_text
|
||||
# noflash = .text -> iram0_text, .rodata -> dram0_data
|
||||
#
|
||||
# This operation should fail.
|
||||
mapping = u"""
|
||||
[sections:custom_text]
|
||||
entries:
|
||||
.text+
|
||||
.literal+
|
||||
|
||||
[scheme:custom_rtc]
|
||||
entries:
|
||||
custom_text -> rtc_text
|
||||
|
||||
[mapping:test]
|
||||
archive: libfreertos.a
|
||||
entries:
|
||||
croutine (noflash) #1
|
||||
croutine (custom_rtc) #2
|
||||
"""
|
||||
self.test_same_entity_conflicting_scheme(mapping)
|
||||
|
||||
def test_complex_mapping_case(self, alt=None):
|
||||
# Test a complex case where an object is mapped using
|
||||
# one scheme, but a specific symbol in that object is mapped
|
||||
|
Loading…
Reference in New Issue
Block a user