GCC-4.x fixes: clean up global data pointer initialization for all boards.
diff --git a/drivers/netconsole.c b/drivers/netconsole.c
index 9a0a24f..69089f9 100644
--- a/drivers/netconsole.c
+++ b/drivers/netconsole.c
@@ -29,6 +29,8 @@
 #include <devices.h>
 #include <net.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 static char input_buffer[512];
 static int input_size = 0;		/* char count in input buffer */
 static int input_offset = 0;		/* offset to valid chars in input buffer */
@@ -105,8 +107,6 @@
 
 static void nc_send_packet (const char *buf, int len)
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	struct eth_device *eth;
 	int inited = 0;
 	uchar *pkt;
diff --git a/drivers/ns9750_serial.c b/drivers/ns9750_serial.c
index aced3da..8dff367 100644
--- a/drivers/ns9750_serial.c
+++ b/drivers/ns9750_serial.c
@@ -33,6 +33,8 @@
 #include "ns9750_bbus.h"	/* for GPIOs */
 #include "ns9750_ser.h"		/* for serial configuration */
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #define CONSOLE CONFIG_CONS_INDEX
 
 static unsigned int calcBitrateRegister( void );
@@ -183,8 +185,6 @@
 
 static unsigned int calcBitrateRegister( void )
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	return ( NS9750_SER_BITRATE_EBIT |
 		 NS9750_SER_BITRATE_CLKMUX_BCLK |
 		 NS9750_SER_BITRATE_TMODE |
@@ -204,8 +204,6 @@
 
 static unsigned int calcRxCharGapRegister( void )
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	return NS9750_SER_RX_CHAR_TIMER_TRUN;
 }
 
diff --git a/drivers/ps2ser.c b/drivers/ps2ser.c
index e2a38dc..724fa40 100644
--- a/drivers/ps2ser.c
+++ b/drivers/ps2ser.c
@@ -21,6 +21,8 @@
 #include <asm/atomic.h>
 #include <ps2mult.h>
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /* #define	DEBUG */
 
 #define PS2SER_BAUD	57600
@@ -61,8 +63,6 @@
 #ifdef CONFIG_MPC5xxx
 int ps2ser_init(void)
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	volatile struct mpc5xxx_psc *psc = (struct mpc5xxx_psc *)PSC_BASE;
 	unsigned long baseclk;
 	int div;
diff --git a/drivers/s3c4510b_uart.c b/drivers/s3c4510b_uart.c
index 44b96a9..ddcd591 100644
--- a/drivers/s3c4510b_uart.c
+++ b/drivers/s3c4510b_uart.c
@@ -50,6 +50,8 @@
 #include <asm/hardware.h>
 #include "s3c4510b_uart.h"
 
+DECLARE_GLOBAL_DATA_PTR;
+
 static UART    *uart;
 
 /* flush serial input queue. returns 0 on success or negative error
@@ -82,8 +84,6 @@
 
 void serial_setbrg (void)
 {
-	DECLARE_GLOBAL_DATA_PTR;
-
 	UART_LINE_CTRL ulctrl;
 	UART_CTRL      uctrl;
 	UART_BAUD_DIV  ubd;
diff --git a/drivers/serial.c b/drivers/serial.c
index 057a1ab..228781b 100644
--- a/drivers/serial.c
+++ b/drivers/serial.c
@@ -30,6 +30,8 @@
 #include <ns87308.h>
 #endif
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #if !defined(CONFIG_CONS_INDEX)
 #error	"No console index specified."
 #elif (CONFIG_CONS_INDEX < 1) || (CONFIG_CONS_INDEX > 4)
@@ -77,7 +79,6 @@
 
 static int calc_divisor (NS16550_t port)
 {
-	DECLARE_GLOBAL_DATA_PTR;
 #ifdef CONFIG_OMAP1510
 	/* If can't cleanly clock 115200 set div to 1 */
 	if ((CFG_NS16550_CLK == 12000000) && (gd->baudrate == 115200)) {
diff --git a/drivers/serial_max3100.c b/drivers/serial_max3100.c
index bbe212b..35c5596 100644
--- a/drivers/serial_max3100.c
+++ b/drivers/serial_max3100.c
@@ -28,6 +28,8 @@
 
 #ifdef CONFIG_MAX3100_SERIAL
 
+DECLARE_GLOBAL_DATA_PTR;
+
 /**************************************************************/
 
 /* convienient macros */
@@ -217,7 +219,6 @@
 {
 	unsigned int wconf, rconf;
 	int i;
-	DECLARE_GLOBAL_DATA_PTR;
 
 	wconf = 0;
 
diff --git a/drivers/tsec.c b/drivers/tsec.c
index 4c5e1b5..7ec565c 100644
--- a/drivers/tsec.c
+++ b/drivers/tsec.c
@@ -23,6 +23,8 @@
 #include "tsec.h"
 #include "miiphy.h"
 
+DECLARE_GLOBAL_DATA_PTR;
+
 #define TX_BUF_CNT		2
 
 static uint rxIdx;	/* index of the current RX buffer */
@@ -1082,7 +1084,6 @@
 	struct phy_cmd **cmdlistptr;
 	struct phy_cmd *cmd;
 	int i,j,k;
-	DECLARE_GLOBAL_DATA_PTR;
 
 	for(i=0; phy_info[i]; i++) {
 		/* First thing's first: relocate the pointers to the