Fixes for gcc 3.4 based m68k toolchain,
based on patch by Jate Sujjavanich.
diff --git a/CHANGELOG b/CHANGELOG
index 7483fa6..c637d01 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -2,6 +2,9 @@
 Changes since U-Boot 1.1.4:
 ======================================================================
 
+* Fixes for gcc 3.4 based m68k toolchain,
+  based on patch by Jate Sujjavanich.
+
 * Added support for BC3450 board
   Patch by Stefan Strobl, 21. Oct 2005
 
diff --git a/board/cobra5272/flash.c b/board/cobra5272/flash.c
index 73cc2f2..82452e2 100644
--- a/board/cobra5272/flash.c
+++ b/board/cobra5272/flash.c
@@ -65,6 +65,7 @@
 	printf ("\n");
 
 Done:
+	return;
 }
 
 
diff --git a/board/m5272c3/flash.c b/board/m5272c3/flash.c
index f156342..ea0b1fd 100644
--- a/board/m5272c3/flash.c
+++ b/board/m5272c3/flash.c
@@ -65,6 +65,7 @@
 	printf ("\n");
 
       Done:
+	return;
 }
 
 
diff --git a/board/m5282evb/flash.c b/board/m5282evb/flash.c
index 95f35ad..36a7c31 100644
--- a/board/m5282evb/flash.c
+++ b/board/m5282evb/flash.c
@@ -65,6 +65,7 @@
 	printf ("\n");
 
       Done:
+	return;
 }
 
 
diff --git a/config.mk b/config.mk
index dfbb1b7..b1e1d8f 100644
--- a/config.mk
+++ b/config.mk
@@ -143,7 +143,14 @@
 endif
 endif
 
+# turn jbsr into jsr for m68k
+ifeq ($(ARCH),m68k)
+ifeq ($(findstring 3.4,$(shell $(CC) --version)),3.4)
+AFLAGS_DEBUG := -Wa,-gstabs,-S
+endif
+else
 AFLAGS_DEBUG := -Wa,-gstabs
+endif
 AFLAGS := $(AFLAGS_DEBUG) -D__ASSEMBLY__ $(CPPFLAGS)
 
 LDFLAGS += -Bstatic -T $(LDSCRIPT) -Ttext $(TEXT_BASE) $(PLATFORM_LDFLAGS)
diff --git a/lib_m68k/board.c b/lib_m68k/board.c
index e25833b..c13268c 100644
--- a/lib_m68k/board.c
+++ b/lib_m68k/board.c
@@ -261,6 +261,7 @@
 {
 	bd_t *bd;
 	ulong len, addr, addr_sp;
+	ulong *paddr;
 	gd_t *id;
 	init_fnc_t **init_fnc_ptr;
 #ifdef CONFIG_PRAM
@@ -357,8 +358,12 @@
 	 */
 	addr_sp -= 16;
 	addr_sp &= ~0xF;
-	*((ulong *) addr_sp)-- = 0;
-	*((ulong *) addr_sp)-- = 0;
+
+	paddr = (ulong *)addr_sp;
+	*paddr-- = 0;
+	*paddr-- = 0;
+	addr_sp = (ulong)paddr;
+	
 	debug ("Stack Pointer at: %08lx\n", addr_sp);
 
 	/*