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/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)
--- a/board/vlink/vlink.c	2009-10-29 16:40:33.000000000 +0100
+++ b/board/vlink/vlink.c	2009-10-29 16:43:27.000000000 +0100
@@ -33,6 +33,9 @@
  * Miscelaneous platform dependent initialisations
  */
 
+void raise() {}
+void abort() {}
+
 int board_init (void)
 {
 	DECLARE_GLOBAL_DATA_PTR;
--- a/board/vlink/u-boot.lds	2009-10-29 16:40:33.000000000 +0100
+++ b/board/vlink/u-boot.lds	2009-10-29 16:43:57.000000000 +0100
@@ -38,6 +38,10 @@
 
 	. = 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) }