Skip to content

Conversation

@duda-patryk
Copy link
Contributor

Currently, this section has LOAD flag which means that it's part of image layout. Attempt to generate binary file with --gap-fill results in creating a very big file, because LMA of the section is RAM address (e.g. 0x20000000 for STM32F4) instead of FLASH (e.g. 0x8000000 for STM32F4).

This problem doesn't appear when linking using GNU LD, because it removes the section in garbage collect process. However, LLVM LLD doesn't garbage collect sections that define used symbols, so the section is present in final ELF image.

There is no need to load this section (it has 0 size), so we can safely add NOLOAD attribute to the section.

Fixes: #57727

Currently, this section has LOAD flag which means that it's part of
image layout. Attempt to generate binary file with --gap-fill results in
creating a very big file, because LMA of the section is RAM address
(e.g. 0x20000000 for STM32F4) instead of FLASH (e.g. 0x8000000 for
STM32F4).

This problem doesn't appear when linking using GNU LD, because it
removes the section in garbage collect process. However, LLVM LLD
doesn't garbage collect sections that define used symbols, so the
section is present in final ELF image.

There is no need to load this section (it has 0 size), so we can safely
add NOLOAD attribute to the section.

Fixes: zephyrproject-rtos#57727

Signed-off-by: Patryk Duda <[email protected]>
@duda-patryk
Copy link
Contributor Author

Friendly ping

@fabiobaltieri fabiobaltieri merged commit b25dc41 into zephyrproject-rtos:main Jul 5, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants