forked from espressif/esp-idf
ldgen: parenthesis for KEEP
This commit is contained in:
@@ -344,7 +344,7 @@ class Mapping(Fragment):
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_grammar():
|
def get_grammar():
|
||||||
grammar = Keyword('KEEP').setParseAction(Mapping.Keep)
|
grammar = Keyword('KEEP()').setParseAction(Mapping.Keep)
|
||||||
return grammar
|
return grammar
|
||||||
|
|
||||||
def __eq__(self, other):
|
def __eq__(self, other):
|
||||||
|
@@ -818,8 +818,8 @@ entries:
|
|||||||
archive: libmain.a
|
archive: libmain.a
|
||||||
entries:
|
entries:
|
||||||
obj1 (default);
|
obj1 (default);
|
||||||
text->flash_text KEEP,
|
text->flash_text KEEP(),
|
||||||
rodata->flash_rodata KEEP KEEP
|
rodata->flash_rodata KEEP() KEEP()
|
||||||
""")
|
""")
|
||||||
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
||||||
|
|
||||||
@@ -930,8 +930,8 @@ entries:
|
|||||||
archive: libmain.a
|
archive: libmain.a
|
||||||
entries:
|
entries:
|
||||||
obj1 (default);
|
obj1 (default);
|
||||||
text->flash_text ALIGN(4) KEEP SURROUND(sym1) ALIGN(8) SORT(name),
|
text->flash_text ALIGN(4) KEEP() SURROUND(sym1) ALIGN(8) SORT(name),
|
||||||
rodata->flash_rodata KEEP ALIGN(4) KEEP SURROUND(sym1) ALIGN(8) ALIGN(4) SORT(name)
|
rodata->flash_rodata KEEP() ALIGN(4) KEEP() SURROUND(sym1) ALIGN(8) ALIGN(4) SORT(name)
|
||||||
""")
|
""")
|
||||||
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
||||||
fragment = fragment_file.fragments[0]
|
fragment = fragment_file.fragments[0]
|
||||||
@@ -960,8 +960,8 @@ entries:
|
|||||||
archive: libmain.a
|
archive: libmain.a
|
||||||
entries:
|
entries:
|
||||||
obj1 (default);
|
obj1 (default);
|
||||||
text->flash_text ALIGN(4) KEEP SURROUND(sym1) SORT(name),
|
text->flash_text ALIGN(4) KEEP() SURROUND(sym1) SORT(name),
|
||||||
text->flash_text ALIGN(4) KEEP SURROUND(sym1) SORT(name)
|
text->flash_text ALIGN(4) KEEP() SURROUND(sym1) SORT(name)
|
||||||
""")
|
""")
|
||||||
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
||||||
fragment = fragment_file.fragments[0]
|
fragment = fragment_file.fragments[0]
|
||||||
@@ -987,9 +987,9 @@ entries:
|
|||||||
archive: libmain.a
|
archive: libmain.a
|
||||||
entries:
|
entries:
|
||||||
obj1 (default);
|
obj1 (default);
|
||||||
text->flash_text ALIGN(4) KEEP SURROUND(sym1) SORT(name)
|
text->flash_text ALIGN(4) KEEP() SURROUND(sym1) SORT(name)
|
||||||
obj1 (default);
|
obj1 (default);
|
||||||
text->flash_text ALIGN(4) KEEP SURROUND(sym1) SORT(name)
|
text->flash_text ALIGN(4) KEEP() SURROUND(sym1) SORT(name)
|
||||||
""")
|
""")
|
||||||
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
fragment_file = FragmentFile(test_fragment, self.sdkconfig)
|
||||||
fragment = fragment_file.fragments[0]
|
fragment = fragment_file.fragments[0]
|
||||||
|
@@ -1397,7 +1397,7 @@ class FlagTest(GenerationTest):
|
|||||||
# with flags.
|
# with flags.
|
||||||
|
|
||||||
def test_flags_basics(self):
|
def test_flags_basics(self):
|
||||||
# Test that input section commands additions are done (KEEP, SORT).
|
# Test that input section commands additions are done (KEEP SORT).
|
||||||
# Test that order dependent commands are properly generated (ALIGN, SURROUND)
|
# Test that order dependent commands are properly generated (ALIGN, SURROUND)
|
||||||
# Normally, if an entry has the same mapping as parent, commands.
|
# Normally, if an entry has the same mapping as parent, commands.
|
||||||
# are not emitted for them. However, if there are flags, they should be -
|
# are not emitted for them. However, if there are flags, they should be -
|
||||||
@@ -1430,7 +1430,7 @@ entries:
|
|||||||
croutine (noflash_text);
|
croutine (noflash_text);
|
||||||
text->iram0_text ALIGN(4, pre, post) SURROUND(sym1) #1
|
text->iram0_text ALIGN(4, pre, post) SURROUND(sym1) #1
|
||||||
timers (default);
|
timers (default);
|
||||||
text->flash_text KEEP SORT(name) #2
|
text->flash_text KEEP() SORT(name) #2
|
||||||
timers (default);
|
timers (default);
|
||||||
rodata->flash_rodata SURROUND(sym2) ALIGN(4, pre, post) #3
|
rodata->flash_rodata SURROUND(sym2) ALIGN(4, pre, post) #3
|
||||||
"""
|
"""
|
||||||
@@ -1489,7 +1489,7 @@ archive: *
|
|||||||
entries:
|
entries:
|
||||||
# 1
|
# 1
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text SURROUND(sym1) KEEP #2
|
text->flash_text SURROUND(sym1) KEEP() #2
|
||||||
|
|
||||||
[mapping:test]
|
[mapping:test]
|
||||||
archive: libfreertos.a
|
archive: libfreertos.a
|
||||||
@@ -1509,7 +1509,7 @@ entries:
|
|||||||
# Command for #2, pre A.1
|
# Command for #2, pre A.1
|
||||||
flash_text.insert(0, SymbolAtAddress('_sym1_start'))
|
flash_text.insert(0, SymbolAtAddress('_sym1_start'))
|
||||||
|
|
||||||
# Command for #1 with KEEP B
|
# Command for #1 with KEEP() B
|
||||||
# and exclusion for #3
|
# and exclusion for #3
|
||||||
flash_text[1].keep = True
|
flash_text[1].keep = True
|
||||||
flash_text[1].exclusions.add(CROUTINE)
|
flash_text[1].exclusions.add(CROUTINE)
|
||||||
@@ -1551,7 +1551,7 @@ archive: libfreertos.a
|
|||||||
entries:
|
entries:
|
||||||
# 1
|
# 1
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text SURROUND(sym1) KEEP #2
|
text->flash_text SURROUND(sym1) KEEP() #2
|
||||||
croutine:prvCheckPendingReadyList (noflash_text) #3
|
croutine:prvCheckPendingReadyList (noflash_text) #3
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -1567,7 +1567,7 @@ entries:
|
|||||||
flash_text.append(SymbolAtAddress('_sym1_start'))
|
flash_text.append(SymbolAtAddress('_sym1_start'))
|
||||||
flash_text[0].exclusions.add(FREERTOS)
|
flash_text[0].exclusions.add(FREERTOS)
|
||||||
|
|
||||||
# Command for #1 with KEEP B
|
# Command for #1 with KEEP() B
|
||||||
# and exclusion for #3
|
# and exclusion for #3
|
||||||
flash_text.append(InputSectionDesc(FREERTOS, flash_text[0].sections, [CROUTINE], keep=True))
|
flash_text.append(InputSectionDesc(FREERTOS, flash_text[0].sections, [CROUTINE], keep=True))
|
||||||
|
|
||||||
@@ -1607,7 +1607,7 @@ archive: libfreertos.a
|
|||||||
entries:
|
entries:
|
||||||
# 1
|
# 1
|
||||||
croutine (default);
|
croutine (default);
|
||||||
text->flash_text SURROUND(sym1) KEEP #2
|
text->flash_text SURROUND(sym1) KEEP() #2
|
||||||
croutine:prvCheckPendingReadyList (noflash_text) #3
|
croutine:prvCheckPendingReadyList (noflash_text) #3
|
||||||
"""
|
"""
|
||||||
|
|
||||||
@@ -1658,7 +1658,7 @@ archive: *
|
|||||||
entries:
|
entries:
|
||||||
# 1
|
# 1
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text SURROUND(sym1) KEEP #2
|
text->flash_text SURROUND(sym1) KEEP() #2
|
||||||
|
|
||||||
[mapping:test]
|
[mapping:test]
|
||||||
archive: libfreertos.a
|
archive: libfreertos.a
|
||||||
@@ -1679,7 +1679,7 @@ entries:
|
|||||||
# Command for #2, pre A.1
|
# Command for #2, pre A.1
|
||||||
flash_text.insert(0, SymbolAtAddress('_sym1_start'))
|
flash_text.insert(0, SymbolAtAddress('_sym1_start'))
|
||||||
|
|
||||||
# Command for #1 with KEEP B
|
# Command for #1 with KEEP() B
|
||||||
# and exclusion for #3
|
# and exclusion for #3
|
||||||
flash_text[1].keep = True
|
flash_text[1].keep = True
|
||||||
flash_text[1].exclusions.add(CROUTINE)
|
flash_text[1].exclusions.add(CROUTINE)
|
||||||
@@ -1720,7 +1720,7 @@ archive: libfreertos.a
|
|||||||
entries:
|
entries:
|
||||||
# 1
|
# 1
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text SURROUND(sym1) KEEP
|
text->flash_text SURROUND(sym1) KEEP()
|
||||||
croutine (default) #2
|
croutine (default) #2
|
||||||
croutine:prvCheckPendingReadyList (noflash_text) #3
|
croutine:prvCheckPendingReadyList (noflash_text) #3
|
||||||
"""
|
"""
|
||||||
@@ -1737,7 +1737,7 @@ entries:
|
|||||||
flash_text.append(SymbolAtAddress('_sym1_start'))
|
flash_text.append(SymbolAtAddress('_sym1_start'))
|
||||||
flash_text[0].exclusions.add(FREERTOS)
|
flash_text[0].exclusions.add(FREERTOS)
|
||||||
|
|
||||||
# Command for #1 with KEEP B
|
# Command for #1 with KEEP() B
|
||||||
# and exclusion for #3
|
# and exclusion for #3
|
||||||
flash_text.append(InputSectionDesc(FREERTOS, flash_text[0].sections, [CROUTINE], keep=True))
|
flash_text.append(InputSectionDesc(FREERTOS, flash_text[0].sections, [CROUTINE], keep=True))
|
||||||
|
|
||||||
@@ -1766,7 +1766,7 @@ entries:
|
|||||||
archive: *
|
archive: *
|
||||||
entries:
|
entries:
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text KEEP
|
text->flash_text KEEP()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.add_fragments(mapping)
|
self.add_fragments(mapping)
|
||||||
@@ -1787,13 +1787,13 @@ entries:
|
|||||||
archive: *
|
archive: *
|
||||||
entries:
|
entries:
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text KEEP
|
text->flash_text KEEP()
|
||||||
|
|
||||||
[mapping:default_add_flag_2]
|
[mapping:default_add_flag_2]
|
||||||
archive: *
|
archive: *
|
||||||
entries:
|
entries:
|
||||||
* (default);
|
* (default);
|
||||||
text->flash_text KEEP
|
text->flash_text KEEP()
|
||||||
"""
|
"""
|
||||||
|
|
||||||
self.add_fragments(mapping)
|
self.add_fragments(mapping)
|
||||||
|
Reference in New Issue
Block a user