diff --git a/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch b/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch new file mode 100644 index 00000000000..ec94a4b40f0 --- /dev/null +++ b/target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch @@ -0,0 +1,52 @@ +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) }