diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/plugins/Makefile | 2 | ||||
-rw-r--r-- | apps/plugins/lib/Makefile | 5 | ||||
-rw-r--r-- | apps/plugins/plugin.lds | 17 |
3 files changed, 16 insertions, 8 deletions
diff --git a/apps/plugins/Makefile b/apps/plugins/Makefile index a59e33f5c6..1f1c309bd2 100644 --- a/apps/plugins/Makefile +++ b/apps/plugins/Makefile | |||
@@ -54,7 +54,7 @@ ifndef SIMVER | |||
54 | $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(BUILDDIR)/libplugin.a | 54 | $(OBJDIR)/%.elf: $(OBJDIR)/%.o $(LINKFILE) $(BUILDDIR)/libplugin.a |
55 | $(SILENT)(file=`basename $@`; \ | 55 | $(SILENT)(file=`basename $@`; \ |
56 | echo "LD $$file"; \ | 56 | echo "LD $$file"; \ |
57 | $(CC) $(GCCOPTS) -O -nostdlib -o $@ $< -L$(BUILDDIR) $(CODECLIBS) -lplugin -lgcc -T$(LINKFILE) -Wl,-Map,$(OBJDIR)/$*.map) | 57 | $(CC) $(GCCOPTS) -O -nostdlib -o $@ $< -L$(BUILDDIR) $(CODECLIBS) -lplugin -lgcc -T$(LINKFILE) -Wl,--gc-sections -Wl,-Map,$(OBJDIR)/$*.map) |
58 | 58 | ||
59 | $(OBJDIR)/%.rock : $(OBJDIR)/%.elf | 59 | $(OBJDIR)/%.rock : $(OBJDIR)/%.elf |
60 | @echo "OBJCOPY "`basename $@` | 60 | @echo "OBJCOPY "`basename $@` |
diff --git a/apps/plugins/lib/Makefile b/apps/plugins/lib/Makefile index 21dea571ae..7eddccddc5 100644 --- a/apps/plugins/lib/Makefile +++ b/apps/plugins/lib/Makefile | |||
@@ -20,6 +20,11 @@ endif | |||
20 | CFLAGS = $(GCCOPTS) \ | 20 | CFLAGS = $(GCCOPTS) \ |
21 | $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DPLUGIN | 21 | $(INCLUDES) $(TARGET) $(EXTRA_DEFINES) -DMEM=${MEMORYSIZE} -DPLUGIN |
22 | 22 | ||
23 | # Sectioned compilation for target | ||
24 | ifndef SIMVER | ||
25 | CFLAGS += -ffunction-sections -fdata-sections | ||
26 | endif | ||
27 | |||
23 | # This sets up 'SRC' based on the files mentioned in SOURCES | 28 | # This sets up 'SRC' based on the files mentioned in SOURCES |
24 | include $(TOOLSDIR)/makesrc.inc | 29 | include $(TOOLSDIR)/makesrc.inc |
25 | 30 | ||
diff --git a/apps/plugins/plugin.lds b/apps/plugins/plugin.lds index 42f56e58bf..bf1057e332 100644 --- a/apps/plugins/plugin.lds +++ b/apps/plugins/plugin.lds | |||
@@ -51,12 +51,12 @@ MEMORY | |||
51 | SECTIONS | 51 | SECTIONS |
52 | { | 52 | { |
53 | .text : { | 53 | .text : { |
54 | *(.entry) | 54 | KEEP(*(.entry)) |
55 | *(.text) | 55 | *(.text*) |
56 | } > PLUGIN_RAM | 56 | } > PLUGIN_RAM |
57 | 57 | ||
58 | .data : { | 58 | .data : { |
59 | *(.data) | 59 | *(.data*) |
60 | } > PLUGIN_RAM | 60 | } > PLUGIN_RAM |
61 | 61 | ||
62 | /DISCARD/ : { | 62 | /DISCARD/ : { |
@@ -64,13 +64,11 @@ SECTIONS | |||
64 | } | 64 | } |
65 | 65 | ||
66 | .bss : { | 66 | .bss : { |
67 | *(.bss) | 67 | *(.bss*) |
68 | } > PLUGIN_RAM | 68 | } > PLUGIN_RAM |
69 | 69 | ||
70 | .rodata : { | 70 | .rodata : { |
71 | *(.rodata) | 71 | *(.rodata*) |
72 | *(.rodata.str1.1) | ||
73 | *(.rodata.str1.4) | ||
74 | . = ALIGN(0x4); | 72 | . = ALIGN(0x4); |
75 | #ifdef ARCH_IRIVER | 73 | #ifdef ARCH_IRIVER |
76 | iramcopy = .; | 74 | iramcopy = .; |
@@ -86,4 +84,9 @@ SECTIONS | |||
86 | iramend = .; | 84 | iramend = .; |
87 | } > PLUGIN_IRAM | 85 | } > PLUGIN_IRAM |
88 | #endif | 86 | #endif |
87 | /* Special trick to avoid a linker error when no other sections are | ||
88 | left after garbage collection (plugin not for this platform) */ | ||
89 | .comment 0 : { | ||
90 | KEEP(*(.comment)) | ||
91 | } | ||
89 | } | 92 | } |