forked from espressif/esp-idf
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)
|
||||
|
||||
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):
|
||||
|
@@ -66,8 +66,6 @@ class LinkerScript:
|
||||
target = member.target
|
||||
rules = member.rules
|
||||
|
||||
del rules[:]
|
||||
|
||||
rules.extend(mapping_rules[target])
|
||||
except KeyError:
|
||||
message = GenerationException.UNDEFINED_REFERENCE + " to target '" + target + "'."
|
||||
|
@@ -102,31 +102,22 @@ class GenerationTest(unittest.TestCase):
|
||||
def generate_default_rules(self):
|
||||
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, ['.dram', '.dram.*'], []))
|
||||
rules['dram0_bss'].append(InputSectionDesc(ROOT, ['.bss', '.bss.*'], []))
|
||||
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['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.rodata'], []))
|
||||
rules['rtc_bss'].append(InputSectionDesc(ROOT, ['.rtc.bss'], []))
|
||||
rules['rtc_text'].append(InputSectionDesc(ROOT, ['.rtc.text', '.rtc.literal'], []))
|
||||
|
||||
return rules
|
||||
|
||||
def compare_rules(self, expected, actual):
|
||||
self.assertEqual(set(expected.keys()), set(actual.keys()))
|
||||
|
||||
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)
|
||||
self.assertEqual(expected, actual)
|
||||
|
||||
def get_default(self, target, rules):
|
||||
return rules[target][0]
|
||||
|
Reference in New Issue
Block a user