summaryrefslogtreecommitdiffstats
path: root/target
diff options
context:
space:
mode:
authorflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-10-29 16:00:37 +0000
committerflorian <florian@3c298f89-4303-0410-b956-a3cf2f4a3e73>2009-10-29 16:00:37 +0000
commit7ac41a58e02231b5a4102d086a9acbf127d609d9 (patch)
tree4b419f096124c9c93f9648c2adc70b711b9336d3 /target
parent6bc0d6136909b9328501d4150e7f9e6821860c43 (diff)
[at91] fix u-boot linking failure with an EABI toolchain
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@18207 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'target')
-rw-r--r--target/linux/at91/image/u-boot/patches/015-eabi_fixes.patch52
1 files changed, 52 insertions, 0 deletions
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 000000000..ec94a4b40
--- /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) }