summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/codecs/codecs.make1
-rw-r--r--apps/plugins/plugins.make1
-rw-r--r--bootloader/bootloader.make1
-rwxr-xr-xtools/configure7
-rw-r--r--tools/root.make6
-rw-r--r--uisimulator/uisimulator.make2
6 files changed, 13 insertions, 5 deletions
diff --git a/apps/codecs/codecs.make b/apps/codecs/codecs.make
index 96c12dee35..aab23b01a2 100644
--- a/apps/codecs/codecs.make
+++ b/apps/codecs/codecs.make
@@ -121,6 +121,7 @@ else
CODECLDFLAGS = -T$(CODECLINK_LDS) -Wl,--gc-sections -Wl,-Map,$(CODECDIR)/$*.map
CODECFLAGS += -UDEBUG -DNDEBUG
endif
+CODECLDFLAGS += $(GLOBAL_LDOPTS)
$(CODECDIR)/%-pre.map: $(CODEC_CRT0) $(CODECLINK_LDS) $(CODECDIR)/%.o $(CODECLIB)
$(call PRINTS,LD $(@F))$(CC) $(CODECFLAGS) -o $(CODECDIR)/$*-pre.elf \
diff --git a/apps/plugins/plugins.make b/apps/plugins/plugins.make
index febc80ac95..4bd0cc952e 100644
--- a/apps/plugins/plugins.make
+++ b/apps/plugins/plugins.make
@@ -87,6 +87,7 @@ else
PLUGINLDFLAGS = -T$(PLUGINLINK_LDS) -Wl,--gc-sections -Wl,-Map,$*.map
OVERLAYLDFLAGS = -T$(OVERLAYREF_LDS) -Wl,--gc-sections -Wl,-Map,$*.refmap
endif
+PLUGINLDFLAGS += $(GLOBAL_LDOPTS)
$(BUILDDIR)/%.rock:
$(call PRINTS,LD $(@F))$(CC) $(PLUGINFLAGS) -o $(BUILDDIR)/$*.elf \
diff --git a/bootloader/bootloader.make b/bootloader/bootloader.make
index a2883fb2af..0118235bb7 100644
--- a/bootloader/bootloader.make
+++ b/bootloader/bootloader.make
@@ -24,6 +24,7 @@ $(BOOTLINK): $(BOOTLDS)
$(BUILDDIR)/bootloader.elf: $$(OBJ) $$(FIRMLIB) $$(BOOTLINK)
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \
$(FIRMLIB) -lgcc -L$(BUILDDIR)/firmware -T$(BOOTLINK) \
+ $(GLOBAL_LDOPTS) \
-Wl,--gc-sections -Wl,-Map,$(BUILDDIR)/bootloader.map
$(BUILDDIR)/bootloader.bin : $(BUILDDIR)/bootloader.elf
diff --git a/tools/configure b/tools/configure
index 70580dbfe0..c7185f0982 100755
--- a/tools/configure
+++ b/tools/configure
@@ -9,7 +9,10 @@
#
# global CC options for all platforms
-CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe -Wl,-z,defs"
+CCOPTS="-W -Wall -Wundef -O -nostdlib -ffreestanding -Wstrict-prototypes -pipe"
+
+# global LD options for all platforms
+GLOBAL_LDOPTS="-Wl,-z,defs"
use_logf="#undef ROCKBOX_HAS_LOGF"
use_bootchart="#undef DO_BOOTCHART"
@@ -3097,6 +3100,7 @@ sed > Makefile \
-e "s<@GCCOPTS@<${GCCOPTS}<g" \
-e "s<@TARGET_INC@<${TARGET_INC}<g" \
-e "s<@LDOPTS@<${LDOPTS}<g" \
+ -e "s<@GLOBAL_LDOPTS@<${GLOBAL_LDOPTS}<g" \
-e "s<@LOADADDRESS@<${loadaddress}<g" \
-e "s<@EXTRADEF@<${extradefines}<g" \
-e "s<@APPSDIR@<${appsdir}<g" \
@@ -3176,6 +3180,7 @@ export TARGET_INC=@TARGET_INC@
export LOADADDRESS=@LOADADDRESS@
export SHARED_FLAG=@SHARED_FLAG@
export LDOPTS=@LDOPTS@
+export GLOBAL_LDOPTS=@GLOBAL_LDOPTS@
export GCCVER=@GCCVER@
export GCCNUM=@GCCNUM@
export UNAME=@UNAME@
diff --git a/tools/root.make b/tools/root.make
index e30b5b3c18..2b4dfb6bb2 100644
--- a/tools/root.make
+++ b/tools/root.make
@@ -164,13 +164,13 @@ $(BUILDDIR)/rockbox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(L
-L$(BUILDDIR)/firmware -lfirmware \
-L$(BUILDDIR)/lib -lskin_parser \
-L$(BUILDDIR)/apps/codecs $(VOICESPEEXLIB:lib%.a=-l%) \
- -lgcc $(BOOTBOXLDOPTS) \
+ -lgcc $(BOOTBOXLDOPTS) $(GLOBAL_LDOPTS) \
-T$(LINKRAM) -Wl,-Map,$(BUILDDIR)/rockbox.map
$(BUILDDIR)/rombox.elf : $$(OBJ) $$(FIRMLIB) $$(VOICESPEEXLIB) $$(SKINLIB) $$(LINKROM)
$(call PRINTS,LD $(@F))$(CC) $(GCCOPTS) -Os -nostdlib -o $@ $(OBJ) \
- $(VOICESPEEXLIB) $(FIRMLIB) -lgcc -L$(BUILDDIR)/firmware \
- -T$(LINKROM) -Wl,-Map,$(BUILDDIR)/rombox.map
+ $(VOICESPEEXLIB) $(FIRMLIB) -lgcc $(GLOBAL_LDOPTS) \
+ -L$(BUILDDIR)/firmware -T$(LINKROM) -Wl,-Map,$(BUILDDIR)/rombox.map
$(BUILDDIR)/rockbox.bin : $(BUILDDIR)/rockbox.elf
$(call PRINTS,OC $(@F))$(OC) $(if $(filter yes, $(USE_ELF)), -S -x, -O binary) $< $@
diff --git a/uisimulator/uisimulator.make b/uisimulator/uisimulator.make
index 219d890e9c..7efffe9b6c 100644
--- a/uisimulator/uisimulator.make
+++ b/uisimulator/uisimulator.make
@@ -28,7 +28,7 @@ $(SIMLIB): $$(SIMOBJ) $(UIBMP)
# SIMLIB needs to be linked twice for some reason
$(BUILDDIR)/$(BINARY): $$(OBJ) $(SIMLIB) $(VOICESPEEXLIB) $(FIRMLIB) $(SKINLIB)
- $(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(SIMLIB) $(LDOPTS)
+ $(call PRINTS,LD $(BINARY))$(CC) -o $@ $^ $(SIMLIB) $(LDOPTS) $(GLOBAL_LDOPTS)
$(BUILDDIR)/uisimulator/%.o: $(ROOTDIR)/uisimulator/%.c
$(SILENT)mkdir -p $(dir $@)