Index: git/lib_arm/div0.c =================================================================== --- git.orig/lib_arm/div0.c +++ git/lib_arm/div0.c @@ -22,9 +22,3 @@ */ /* Replacement (=dummy) for GNU/Linux division-by zero handler */ -void __div0 (void) -{ - extern void hang (void); - - hang(); -} Index: git/board/neo1973/common/bootmenu.c =================================================================== --- git.orig/board/neo1973/common/bootmenu.c +++ git/board/neo1973/common/bootmenu.c @@ -118,3 +118,14 @@ void neo1973_bootmenu(void) bootmenu_add("Factory reset", factory_reset, NULL); bootmenu(); } + +void raise() +{ + serial_printf( "*** something's wrong... please reset ***\n" ); +} + +void abort() +{ + serial_printf( "*** something's wrong... please reset ***\n" ); +} + Index: git/board/neo1973/gta01/u-boot.lds =================================================================== --- git.orig/board/neo1973/gta01/u-boot.lds +++ git/board/neo1973/gta01/u-boot.lds @@ -39,6 +39,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/neo1973/gta02/u-boot.lds =================================================================== --- git.orig/board/neo1973/gta02/u-boot.lds +++ git/board/neo1973/gta02/u-boot.lds @@ -39,6 +39,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/neo1973/common/lowlevel_foo.lds =================================================================== --- git.orig/board/neo1973/common/lowlevel_foo.lds +++ git/board/neo1973/common/lowlevel_foo.lds @@ -37,6 +37,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/hxd8/hxd8.c =================================================================== --- git.orig/board/hxd8/hxd8.c +++ git/board/hxd8/hxd8.c @@ -187,3 +187,6 @@ unsigned int dynpart_size[] = { char *dynpart_names[] = { "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; +void raise() {} + +void abort() {} Index: git/board/hxd8/u-boot.lds =================================================================== --- git.orig/board/hxd8/u-boot.lds +++ git/board/hxd8/u-boot.lds @@ -39,6 +39,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/hxd8/lowlevel_foo.lds =================================================================== --- git.orig/board/hxd8/lowlevel_foo.lds +++ git/board/hxd8/lowlevel_foo.lds @@ -37,6 +37,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/qt2410/qt2410.c =================================================================== --- git.orig/board/qt2410/qt2410.c +++ git/board/qt2410/qt2410.c @@ -156,3 +156,7 @@ unsigned int dynpart_size[] = { char *dynpart_names[] = { "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; +void raise() {} + +void abort() {} + Index: git/board/qt2410/u-boot.lds =================================================================== --- git.orig/board/qt2410/u-boot.lds +++ git/board/qt2410/u-boot.lds @@ -39,6 +39,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/Makefile =================================================================== --- git.orig/Makefile +++ git/Makefile @@ -225,7 +225,7 @@ LIBS := $(addprefix $(obj),$(LIBS)) .PHONY : $(LIBS) # Add GCC lib -PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc +PLATFORM_LIBS += -L $(shell dirname `$(CC) $(CFLAGS) -print-libgcc-file-name`) -lgcc -lgcc_eh # The "tools" are needed early, so put this first # Don't include stuff already done in $(LIBS) Index: git/board/smdk2440/smdk2440.c =================================================================== --- git.orig/board/smdk2440/smdk2440.c +++ git/board/smdk2440/smdk2440.c @@ -150,3 +150,6 @@ char *dynpart_names[] = { "u-boot", "u-boot_env", "kernel", "splash", "rootfs", NULL }; +void raise() {} +void abort() {} + Index: git/board/smdk2440/u-boot.lds =================================================================== --- git.orig/board/smdk2440/u-boot.lds +++ git/board/smdk2440/u-boot.lds @@ -39,6 +39,10 @@ SECTIONS . = ALIGN(4); .rodata : { *(.rodata) } + .ARM.extab : { *(.ARM.extab* .gnu.linkonce.armextab.*) } + __exidx_start = .; + .ARM.exidx : { *(.ARM.exidx* .gnu.linkonce.armexidx.*) } + __exidx_end = .; . = ALIGN(4); .data : { *(.data) } Index: git/board/neo1973/gta02/gta02.c =================================================================== --- git.orig/board/neo1973/gta02/gta02.c +++ git/board/neo1973/gta02/gta02.c @@ -321,3 +321,7 @@ int neo1973_set_charge_mode(enum neo1973 /* FIXME */ return 0; } + +void raise() {} +void abort() {} +