summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJens Arnold <amiconn@rockbox.org>2008-04-29 06:19:32 +0000
committerJens Arnold <amiconn@rockbox.org>2008-04-29 06:19:32 +0000
commit2bbacf89fea9f5613fd884b57809070da5b8c925 (patch)
tree6af43aad91a09e02f4325b50d361154dc3ea8beb
parentf3d83c7be7e9cb5700cb5b3d8632867a1862bc80 (diff)
downloadrockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.tar.gz
rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.tar.bz2
rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.zip
Make sure the linker considers crt0*.o before all files specified on the command line by using STARTUP() instead of INPUT() in the .lds. Using INPUT() makes the linker process crt0*.o after all files specified on the command line, making linking fail if there are librockbox.a members which are only referenced by crt0*.o. Remove the hackaround that was needed for building the gigabeat S bootloader before (aka UIE() problem).
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@17289 a1c6a512-1295-4272-9138-f99709370657
-rw-r--r--bootloader/gigabeat-s.c7
-rw-r--r--firmware/rom.lds10
-rw-r--r--firmware/system.c6
-rw-r--r--firmware/target/arm/imx31/app.lds2
-rw-r--r--firmware/target/arm/imx31/boot.lds2
-rw-r--r--firmware/target/arm/ipod/app.lds2
-rw-r--r--firmware/target/arm/ipod/boot.lds2
-rw-r--r--firmware/target/arm/iriver/app.lds2
-rw-r--r--firmware/target/arm/iriver/boot.lds2
-rw-r--r--firmware/target/arm/olympus/app.lds2
-rw-r--r--firmware/target/arm/olympus/boot.lds2
-rw-r--r--firmware/target/arm/pnx0101/app.lds2
-rw-r--r--firmware/target/arm/s3c2440/app.lds2
-rw-r--r--firmware/target/arm/s3c2440/boot.lds2
-rw-r--r--firmware/target/arm/sandisk/app.lds2
-rw-r--r--firmware/target/arm/sandisk/boot.lds2
-rw-r--r--firmware/target/arm/tcc77x/boot.lds2
-rw-r--r--firmware/target/arm/tcc780x/app.lds2
-rw-r--r--firmware/target/arm/tcc780x/boot.lds2
-rw-r--r--firmware/target/arm/tms320dm320/app.lds2
-rw-r--r--firmware/target/arm/tms320dm320/boot.lds2
-rw-r--r--firmware/target/coldfire/iaudio/app.lds2
-rw-r--r--firmware/target/coldfire/iaudio/boot.lds2
-rw-r--r--firmware/target/coldfire/iriver/app.lds2
-rw-r--r--firmware/target/coldfire/iriver/boot.lds2
-rw-r--r--firmware/target/sh/archos/app.lds2
-rw-r--r--firmware/target/sh/archos/boot.lds2
27 files changed, 29 insertions, 42 deletions
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c
index 7fb8608c79..439c81edfb 100644
--- a/bootloader/gigabeat-s.c
+++ b/bootloader/gigabeat-s.c
@@ -58,13 +58,6 @@ char *tarbuf = (char *)0x00000040;
extern void reference_system_c(void);
static struct event_queue usb_wait_queue;
-/* Dummy stub that creates C references for C functions only used by
- assembly - never called */
-void reference_files(void)
-{
- reference_system_c();
-}
-
void show_splash(int timeout, const char *msg)
{
lcd_putsxy( (LCD_WIDTH - (SYSFONT_WIDTH * strlen(msg))) / 2,
diff --git a/firmware/rom.lds b/firmware/rom.lds
index 723977295a..a56beea915 100644
--- a/firmware/rom.lds
+++ b/firmware/rom.lds
@@ -4,19 +4,19 @@ ENTRY(start)
#ifdef CPU_COLDFIRE
OUTPUT_FORMAT(elf32-m68k)
-INPUT(target/coldfire/crt0.o)
+STARTUP(target/coldfire/crt0.o)
#elif defined(CPU_PP)
OUTPUT_FORMAT(elf32-littlearm)
-INPUT(target/arm/crt0-pp.o)
+STARTUP(target/arm/crt0-pp.o)
#elif defined(CPU_ARM)
OUTPUT_FORMAT(elf32-littlearm)
-INPUT(target/arm/crt0.o)
+STARTUP(target/arm/crt0.o)
#elif CONFIG_CPU == SH7034
OUTPUT_FORMAT(elf32-sh)
-INPUT(target/sh/crt0.o)
+STARTUP(target/sh/crt0.o)
#else
OUTPUT_FORMAT(elf32-sh)
-INPUT(crt0.o)
+STARTUP(crt0.o)
#endif
diff --git a/firmware/system.c b/firmware/system.c
index 15eb77eada..7163468cf6 100644
--- a/firmware/system.c
+++ b/firmware/system.c
@@ -273,11 +273,5 @@ void __div0(void)
}
#endif
-#ifdef BOOTLOADER
-void reference_system_c(void)
-{
-}
-#endif
-
#endif /* CPU_ARM */
diff --git a/firmware/target/arm/imx31/app.lds b/firmware/target/arm/imx31/app.lds
index 3725daca04..9b35e8dd53 100644
--- a/firmware/target/arm/imx31/app.lds
+++ b/firmware/target/arm/imx31/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/imx31/crt0.o)
+STARTUP(target/arm/imx31/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/imx31/boot.lds b/firmware/target/arm/imx31/boot.lds
index b881624880..d8bb2fc3d1 100644
--- a/firmware/target/arm/imx31/boot.lds
+++ b/firmware/target/arm/imx31/boot.lds
@@ -4,7 +4,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/imx31/crt0.o)
+STARTUP(target/arm/imx31/crt0.o)
#define DRAMSIZE (1 << 20) /* Limit 1 MB for bootloader */
diff --git a/firmware/target/arm/ipod/app.lds b/firmware/target/arm/ipod/app.lds
index ccd23eb31b..d7159e8e1e 100644
--- a/firmware/target/arm/ipod/app.lds
+++ b/firmware/target/arm/ipod/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp.o)
+STARTUP(target/arm/crt0-pp.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/ipod/boot.lds b/firmware/target/arm/ipod/boot.lds
index 1f9c65d31c..5c80f1fbc3 100644
--- a/firmware/target/arm/ipod/boot.lds
+++ b/firmware/target/arm/ipod/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp-bl.o)
+STARTUP(target/arm/crt0-pp-bl.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/iriver/app.lds b/firmware/target/arm/iriver/app.lds
index ccd23eb31b..d7159e8e1e 100644
--- a/firmware/target/arm/iriver/app.lds
+++ b/firmware/target/arm/iriver/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp.o)
+STARTUP(target/arm/crt0-pp.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/iriver/boot.lds b/firmware/target/arm/iriver/boot.lds
index 971ec6627b..77e661f608 100644
--- a/firmware/target/arm/iriver/boot.lds
+++ b/firmware/target/arm/iriver/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp-bl.o)
+STARTUP(target/arm/crt0-pp-bl.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/olympus/app.lds b/firmware/target/arm/olympus/app.lds
index ccd23eb31b..d7159e8e1e 100644
--- a/firmware/target/arm/olympus/app.lds
+++ b/firmware/target/arm/olympus/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp.o)
+STARTUP(target/arm/crt0-pp.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/olympus/boot.lds b/firmware/target/arm/olympus/boot.lds
index 2c0245072c..7b86ad29bc 100644
--- a/firmware/target/arm/olympus/boot.lds
+++ b/firmware/target/arm/olympus/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp-bl.o)
+STARTUP(target/arm/crt0-pp-bl.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/pnx0101/app.lds b/firmware/target/arm/pnx0101/app.lds
index 20c8bd26a2..6464b0d608 100644
--- a/firmware/target/arm/pnx0101/app.lds
+++ b/firmware/target/arm/pnx0101/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/pnx0101/crt0-pnx0101.o)
+STARTUP(target/arm/pnx0101/crt0-pnx0101.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/s3c2440/app.lds b/firmware/target/arm/s3c2440/app.lds
index e6efe62656..e999ef0760 100644
--- a/firmware/target/arm/s3c2440/app.lds
+++ b/firmware/target/arm/s3c2440/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/s3c2440/crt0.o)
+STARTUP(target/arm/s3c2440/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/s3c2440/boot.lds b/firmware/target/arm/s3c2440/boot.lds
index 4516c7ddb0..3cb88c9e7b 100644
--- a/firmware/target/arm/s3c2440/boot.lds
+++ b/firmware/target/arm/s3c2440/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/s3c2440/crt0.o)
+STARTUP(target/arm/s3c2440/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/sandisk/app.lds b/firmware/target/arm/sandisk/app.lds
index ccd23eb31b..d7159e8e1e 100644
--- a/firmware/target/arm/sandisk/app.lds
+++ b/firmware/target/arm/sandisk/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp.o)
+STARTUP(target/arm/crt0-pp.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/sandisk/boot.lds b/firmware/target/arm/sandisk/boot.lds
index 1c1066895f..f829076b12 100644
--- a/firmware/target/arm/sandisk/boot.lds
+++ b/firmware/target/arm/sandisk/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/crt0-pp-bl.o)
+STARTUP(target/arm/crt0-pp-bl.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/tcc77x/boot.lds b/firmware/target/arm/tcc77x/boot.lds
index aa4b05c5ae..21fc7db96a 100644
--- a/firmware/target/arm/tcc77x/boot.lds
+++ b/firmware/target/arm/tcc77x/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/tcc77x/crt0.o)
+STARTUP(target/arm/tcc77x/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/tcc780x/app.lds b/firmware/target/arm/tcc780x/app.lds
index 069dd24b9c..97ae2c2e82 100644
--- a/firmware/target/arm/tcc780x/app.lds
+++ b/firmware/target/arm/tcc780x/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/tcc780x/crt0.o)
+STARTUP(target/arm/tcc780x/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/tcc780x/boot.lds b/firmware/target/arm/tcc780x/boot.lds
index 657f31901a..ea4a562a35 100644
--- a/firmware/target/arm/tcc780x/boot.lds
+++ b/firmware/target/arm/tcc780x/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/tcc780x/crt0.o)
+STARTUP(target/arm/tcc780x/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/arm/tms320dm320/app.lds b/firmware/target/arm/tms320dm320/app.lds
index ce2750235b..64610a3577 100644
--- a/firmware/target/arm/tms320dm320/app.lds
+++ b/firmware/target/arm/tms320dm320/app.lds
@@ -4,7 +4,7 @@ ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/tms320dm320/crt0.o)
+STARTUP(target/arm/tms320dm320/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/arm/tms320dm320/boot.lds b/firmware/target/arm/tms320dm320/boot.lds
index 8fb40ae135..5a4182fe29 100644
--- a/firmware/target/arm/tms320dm320/boot.lds
+++ b/firmware/target/arm/tms320dm320/boot.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-littlearm)
OUTPUT_ARCH(arm)
-INPUT(target/arm/tms320dm320/crt0.o)
+STARTUP(target/arm/tms320dm320/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/coldfire/iaudio/app.lds b/firmware/target/coldfire/iaudio/app.lds
index 63c462cf4a..d3ccce24f0 100644
--- a/firmware/target/coldfire/iaudio/app.lds
+++ b/firmware/target/coldfire/iaudio/app.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-m68k)
-INPUT(target/coldfire/crt0.o)
+STARTUP(target/coldfire/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/coldfire/iaudio/boot.lds b/firmware/target/coldfire/iaudio/boot.lds
index 17b1457747..bf307ae994 100644
--- a/firmware/target/coldfire/iaudio/boot.lds
+++ b/firmware/target/coldfire/iaudio/boot.lds
@@ -2,7 +2,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-m68k)
-INPUT(target/coldfire/crt0.o)
+STARTUP(target/coldfire/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/coldfire/iriver/app.lds b/firmware/target/coldfire/iriver/app.lds
index 3e4c81fe51..ae21ecd9de 100644
--- a/firmware/target/coldfire/iriver/app.lds
+++ b/firmware/target/coldfire/iriver/app.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-m68k)
-INPUT(target/coldfire/crt0.o)
+STARTUP(target/coldfire/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/coldfire/iriver/boot.lds b/firmware/target/coldfire/iriver/boot.lds
index 4e2619f764..5330cb6df7 100644
--- a/firmware/target/coldfire/iriver/boot.lds
+++ b/firmware/target/coldfire/iriver/boot.lds
@@ -2,7 +2,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-m68k)
-INPUT(target/coldfire/crt0.o)
+STARTUP(target/coldfire/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)
diff --git a/firmware/target/sh/archos/app.lds b/firmware/target/sh/archos/app.lds
index 94cb437706..02ed6bef77 100644
--- a/firmware/target/sh/archos/app.lds
+++ b/firmware/target/sh/archos/app.lds
@@ -3,7 +3,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-sh)
-INPUT(target/sh/crt0.o)
+STARTUP(target/sh/crt0.o)
#define PLUGINSIZE PLUGIN_BUFFER_SIZE
#define CODECSIZE CODEC_SIZE
diff --git a/firmware/target/sh/archos/boot.lds b/firmware/target/sh/archos/boot.lds
index 8002f6e87f..b3c2c90a6c 100644
--- a/firmware/target/sh/archos/boot.lds
+++ b/firmware/target/sh/archos/boot.lds
@@ -2,7 +2,7 @@
ENTRY(start)
OUTPUT_FORMAT(elf32-sh)
-INPUT(target/sh/crt0.o)
+STARTUP(target/sh/crt0.o)
#define DRAMSIZE (MEMORYSIZE * 0x100000)