mirror of
https://github.com/espressif/esp-idf.git
synced 2025-08-02 12:14:32 +02:00
Merge branch 'feat/lock_ldgen_order' into 'release/v4.3'
feature: lock ldgen entries order See merge request espressif/esp-idf!15137
This commit is contained in:
@@ -149,7 +149,7 @@ class RuleNode():
|
|||||||
self.add_node_child(entity, sections, target, sections_db)
|
self.add_node_child(entity, sections, target, sections_db)
|
||||||
|
|
||||||
def get_section_keys(self):
|
def get_section_keys(self):
|
||||||
return sorted(self.sections.keys(), key=' '.join)
|
return sorted(self.sections.keys(), key=lambda x: sorted(x))
|
||||||
|
|
||||||
|
|
||||||
class SymbolNode(RuleNode):
|
class SymbolNode(RuleNode):
|
||||||
|
@@ -66,8 +66,6 @@ class LinkerScript:
|
|||||||
target = member.target
|
target = member.target
|
||||||
rules = member.rules
|
rules = member.rules
|
||||||
|
|
||||||
del rules[:]
|
|
||||||
|
|
||||||
rules.extend(mapping_rules[target])
|
rules.extend(mapping_rules[target])
|
||||||
except KeyError:
|
except KeyError:
|
||||||
message = GenerationException.UNDEFINED_REFERENCE + " to target '" + target + "'."
|
message = GenerationException.UNDEFINED_REFERENCE + " to target '" + target + "'."
|
||||||
|
@@ -102,31 +102,22 @@ class GenerationTest(unittest.TestCase):
|
|||||||
def generate_default_rules(self):
|
def generate_default_rules(self):
|
||||||
rules = collections.defaultdict(list)
|
rules = collections.defaultdict(list)
|
||||||
|
|
||||||
rules['flash_text'].append(InputSectionDesc(ROOT, ['.literal', '.literal.*', '.text', '.text.*'], []))
|
|
||||||
rules['flash_rodata'].append(InputSectionDesc(ROOT, ['.rodata', '.rodata.*'], []))
|
|
||||||
rules['dram0_data'].append(InputSectionDesc(ROOT, ['.data', '.data.*'], []))
|
rules['dram0_data'].append(InputSectionDesc(ROOT, ['.data', '.data.*'], []))
|
||||||
rules['dram0_data'].append(InputSectionDesc(ROOT, ['.dram', '.dram.*'], []))
|
rules['dram0_data'].append(InputSectionDesc(ROOT, ['.dram', '.dram.*'], []))
|
||||||
rules['dram0_bss'].append(InputSectionDesc(ROOT, ['.bss', '.bss.*'], []))
|
rules['dram0_bss'].append(InputSectionDesc(ROOT, ['.bss', '.bss.*'], []))
|
||||||
rules['dram0_bss'].append(InputSectionDesc(ROOT, ['COMMON'], []))
|
rules['dram0_bss'].append(InputSectionDesc(ROOT, ['COMMON'], []))
|
||||||
|
rules['flash_text'].append(InputSectionDesc(ROOT, ['.literal', '.literal.*', '.text', '.text.*'], []))
|
||||||
|
rules['flash_rodata'].append(InputSectionDesc(ROOT, ['.rodata', '.rodata.*'], []))
|
||||||
rules['iram0_text'].append(InputSectionDesc(ROOT, ['.iram', '.iram.*'], []))
|
rules['iram0_text'].append(InputSectionDesc(ROOT, ['.iram', '.iram.*'], []))
|
||||||
rules['rtc_text'].append(InputSectionDesc(ROOT, ['.rtc.text', '.rtc.literal'], []))
|
rules['rtc_bss'].append(InputSectionDesc(ROOT, ['.rtc.bss'], []))
|
||||||
rules['rtc_data'].append(InputSectionDesc(ROOT, ['.rtc.data'], []))
|
rules['rtc_data'].append(InputSectionDesc(ROOT, ['.rtc.data'], []))
|
||||||
rules['rtc_data'].append(InputSectionDesc(ROOT, ['.rtc.rodata'], []))
|
rules['rtc_data'].append(InputSectionDesc(ROOT, ['.rtc.rodata'], []))
|
||||||
rules['rtc_bss'].append(InputSectionDesc(ROOT, ['.rtc.bss'], []))
|
rules['rtc_text'].append(InputSectionDesc(ROOT, ['.rtc.text', '.rtc.literal'], []))
|
||||||
|
|
||||||
return rules
|
return rules
|
||||||
|
|
||||||
def compare_rules(self, expected, actual):
|
def compare_rules(self, expected, actual):
|
||||||
self.assertEqual(set(expected.keys()), set(actual.keys()))
|
self.assertEqual(expected, actual)
|
||||||
|
|
||||||
for target in sorted(actual.keys()):
|
|
||||||
a_cmds = actual[target]
|
|
||||||
e_cmds = expected[target]
|
|
||||||
|
|
||||||
self.assertEqual(len(a_cmds), len(e_cmds))
|
|
||||||
|
|
||||||
for a, e in zip(a_cmds, e_cmds):
|
|
||||||
self.assertEqual(a, e)
|
|
||||||
|
|
||||||
def get_default(self, target, rules):
|
def get_default(self, target, rules):
|
||||||
return rules[target][0]
|
return rules[target][0]
|
||||||
|
Reference in New Issue
Block a user