diff options
| author | Jens Arnold <amiconn@rockbox.org> | 2008-04-29 06:19:32 +0000 |
|---|---|---|
| committer | Jens Arnold <amiconn@rockbox.org> | 2008-04-29 06:19:32 +0000 |
| commit | 2bbacf89fea9f5613fd884b57809070da5b8c925 (patch) | |
| tree | 6af43aad91a09e02f4325b50d361154dc3ea8beb | |
| parent | f3d83c7be7e9cb5700cb5b3d8632867a1862bc80 (diff) | |
| download | rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.zip rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.tar.gz rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.tar.bz2 rockbox-2bbacf89fea9f5613fd884b57809070da5b8c925.tar.xz | |
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
27 files changed, 29 insertions, 42 deletions
diff --git a/bootloader/gigabeat-s.c b/bootloader/gigabeat-s.c index 7fb8608..439c81e 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 7239772..a56beea 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 15eb77e..7163468 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 3725dac..9b35e8d 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 b881624..d8bb2fc 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 ccd23eb..d7159e8 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 1f9c65d..5c80f1f 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 ccd23eb..d7159e8 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 971ec66..77e661f 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 ccd23eb..d7159e8 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 2c02450..7b86ad2 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 20c8bd2..6464b0d 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 e6efe62..e999ef0 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 4516c7d..3cb88c9 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 ccd23eb..d7159e8 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 1c10668..f829076 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 aa4b05c..21fc7db 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 069dd24..97ae2c2 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 657f319..ea4a562 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 ce27502..64610a3 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 8fb40ae..5a4182f 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 63c462c..d3ccce2 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 17b1457..bf307ae 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 3e4c81f..ae21ecd 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 4e2619f..5330cb6 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 94cb437..02ed6be 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 8002f6e..b3c2c90 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) |