diff options
Diffstat (limited to 'apps/plugins/plugin.lds')
| -rw-r--r-- | apps/plugins/plugin.lds | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 83825b9..fc9d4d4 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds @@ -60,7 +60,8 @@ MEMORY SECTIONS { - .text : { + .text : + { KEEP(*(.entry)) *(.text*) #if CONFIG_CPU==PP5020 @@ -69,26 +70,25 @@ SECTIONS #endif } > PLUGIN_RAM - .data : { - *(.data*) - } > PLUGIN_RAM - - /DISCARD/ : { - *(.eh_frame) - } - - .bss : { - *(.bss*) - } > PLUGIN_RAM - - .rodata : { + .rodata : + { *(.rodata*) . = ALIGN(0x4); + } > PLUGIN_RAM + + .data : + { + *(.data*) #if defined(ARCH_IRIVER) || defined(ARCH_IPOD) iramcopy = .; #endif } > PLUGIN_RAM + /DISCARD/ : + { + *(.eh_frame) + } + #if defined(ARCH_IRIVER) || defined(ARCH_IPOD) .iram IRAMORIG : AT ( iramcopy) { @@ -96,13 +96,29 @@ SECTIONS *(.icode) *(.irodata) *(.idata) - *(.ibss) iramend = .; } > PLUGIN_IRAM + + .ibss (NOLOAD) : + { + iedata = .; + *(.ibss) + . = ALIGN(0x4); + iend = .; + } > PLUGIN_IRAM + + .bss ADDR(.data) + SIZEOF(.data) + SIZEOF(.iram): +#else + .bss : #endif + { + *(.bss*) + } > PLUGIN_RAM + /* Special trick to avoid a linker error when no other sections are left after garbage collection (plugin not for this platform) */ - .comment 0 : { + .comment 0 : + { KEEP(*(.comment)) } } |