summaryrefslogtreecommitdiff
path: root/apps/plugins/plugin.lds
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2005-06-29 21:04:22 +0000
committerJens Arnold <amiconn@rockbox.org>2005-06-29 21:04:22 +0000
commit305a7ce1a29b35a463a5ea79e8089b362f9810da (patch)
tree17e03cdf1fa32370cb0f592afc716bde45935939 /apps/plugins/plugin.lds
parent84d6f9e89bf1bae7e3669e487541f91f27a86b0a (diff)
downloadrockbox-305a7ce1a29b35a463a5ea79e8089b362f9810da.zip
rockbox-305a7ce1a29b35a463a5ea79e8089b362f9810da.tar.gz
rockbox-305a7ce1a29b35a463a5ea79e8089b362f9810da.tar.bz2
rockbox-305a7ce1a29b35a463a5ea79e8089b362f9810da.tar.xz
Enabled sectioned compilation for the plugin library, and linking with garbage collection for the plugins. The effect is that functions and data objects from one object file in the plugin library are included in the .elf individually, not as a whole. It makes maintaining larger plugin library packages easier, as it is no longer necessary to split the source files by function to avoid dead code to get included in the plugins.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@6931 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/plugins/plugin.lds')
-rw-r--r--apps/plugins/plugin.lds17
1 files changed, 10 insertions, 7 deletions
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds
index 42f56e5..bf1057e 100644
--- a/apps/plugins/plugin.lds
+++ b/apps/plugins/plugin.lds
@@ -51,12 +51,12 @@ MEMORY
SECTIONS
{
.text : {
- *(.entry)
- *(.text)
+ KEEP(*(.entry))
+ *(.text*)
} > PLUGIN_RAM
.data : {
- *(.data)
+ *(.data*)
} > PLUGIN_RAM
/DISCARD/ : {
@@ -64,13 +64,11 @@ SECTIONS
}
.bss : {
- *(.bss)
+ *(.bss*)
} > PLUGIN_RAM
.rodata : {
- *(.rodata)
- *(.rodata.str1.1)
- *(.rodata.str1.4)
+ *(.rodata*)
. = ALIGN(0x4);
#ifdef ARCH_IRIVER
iramcopy = .;
@@ -86,4 +84,9 @@ SECTIONS
iramend = .;
} > PLUGIN_IRAM
#endif
+ /* Special trick to avoid a linker error when no other sections are
+ left after garbage collection (plugin not for this platform) */
+ .comment 0 : {
+ KEEP(*(.comment))
+ }
}