# --- SDE-COPYRIGHT-NOTE-BEGIN ---
# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
#
# Filename: package/.../linux24-psionw/gcc-4x.patch
# Copyright (C) 2006 The T2 SDE Project
#
# More information can be found in the files COPYING and README.
#
# This patch file is dual-licensed. It is available under the license the
# patched project is licensed under, as long as it is an OpenSource license
# as defined at http://www.opensource.org/ (e.g. BSD, X11) or under the terms
# of the GNU General Public License as published by the Free Software
# Foundation; either version 2 of the License, or (at your option) any later
# version.
# --- SDE-COPYRIGHT-NOTE-END ---

--- linux24-psionw/fs/proc/proc_misc.c.vanilla	2006-04-11 19:56:36.000000000 +0200
+++ linux24-psionw/fs/proc/proc_misc.c	2006-04-11 19:56:43.000000000 +0200
@@ -562,7 +562,7 @@
 /*
  * writing 'C' to /proc/sysrq-trigger is like sysrq-C
  */
-static ssize_t write_sysrq_trigger(struct file *file, const char *buf,
+static ssize_t write_sysrq_trigger(struct file *file, char *buf,
 				     size_t count, loff_t *ppos)
 {
 	if (count) {
--- linux24-psionw/fs/readdir.c.vanilla	2006-04-11 20:06:42.000000000 +0200
+++ linux24-psionw/fs/readdir.c	2006-04-11 20:13:32.000000000 +0200
@@ -264,7 +264,7 @@
 	put_user(reclen, &dirent->d_reclen);
 	copy_to_user(dirent->d_name, name, namlen);
 	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (char*) dirent + reclen;
 	buf->current_dir = dirent;
 	buf->count -= reclen;
 	return 0;
@@ -347,7 +347,7 @@
 	copy_to_user(dirent, &d, NAME_OFFSET(&d));
 	copy_to_user(dirent->d_name, name, namlen);
 	put_user(0, dirent->d_name + namlen);
-	((char *) dirent) += reclen;
+	dirent = (char*) dirent + reclen;
 	buf->current_dir = dirent;
 	buf->count -= reclen;
 	return 0;
--- linux24-psionw/net/irda/irlan/irlan_event.c.vanilla	2006-04-11 20:20:28.000000000 +0200
+++ linux24-psionw/net/irda/irlan/irlan_event.c	2006-04-11 20:20:35.000000000 +0200
@@ -24,7 +24,7 @@
 
 #include <net/irda/irlan_event.h>
 
-char *irlan_state[] = {
+static char *irlan_state[] = {
 	"IRLAN_IDLE",
 	"IRLAN_QUERY",
 	"IRLAN_CONN",
--- linux24-psionw/arch/arm/lib/longlong.h.vanilla	2006-04-11 21:01:31.000000000 +0200
+++ linux24-psionw/arch/arm/lib/longlong.h	2006-04-11 21:01:38.000000000 +0200
@@ -161,7 +161,7 @@
 #define UDIV_NEEDS_NORMALIZATION 1
 #define udiv_qrnnd __udiv_qrnnd_c
 
-extern const UQItype __clz_tab[];
+static const UQItype __clz_tab[];
 #define count_leading_zeros(count, x) \
   do {									\
     USItype __xr = (x);							\
--- linux24-psionw/arch/arm/nwfpe/fpa11_cpdt.c.vanilla	2006-04-11 21:02:16.000000000 +0200
+++ linux24-psionw/arch/arm/nwfpe/fpa11_cpdt.c	2006-04-11 21:03:33.000000000 +0200
@@ -28,14 +28,14 @@
 
 #include <asm/uaccess.h>
 
-static inline void loadSingle(const unsigned int Fn, const unsigned int *pMem)
+static inline void loadSingle(unsigned int Fn, unsigned int *pMem)
 {
 	FPA11 *fpa11 = GET_FPA11();
 	fpa11->fType[Fn] = typeSingle;
 	get_user(fpa11->fpreg[Fn].fSingle, pMem);
 }
 
-static inline void loadDouble(const unsigned int Fn, const unsigned int *pMem)
+static inline void loadDouble(const unsigned int Fn, unsigned int *pMem)
 {
 	FPA11 *fpa11 = GET_FPA11();
 	unsigned int *p;
@@ -46,7 +46,7 @@
 }
 
 #ifdef CONFIG_FPE_NWFPE_XP
-static inline void loadExtended(const unsigned int Fn, const unsigned int *pMem)
+static inline void loadExtended(const unsigned int Fn, unsigned int *pMem)
 {
 	FPA11 *fpa11 = GET_FPA11();
 	unsigned int *p;
@@ -58,7 +58,7 @@
 }
 #endif
 
-static inline void loadMultiple(const unsigned int Fn, const unsigned int *pMem)
+static inline void loadMultiple(unsigned int Fn, unsigned int *pMem)
 {
 	FPA11 *fpa11 = GET_FPA11();
 	register unsigned int *p;
--- linux24-psionw/arch/arm/kernel/io.c.vanilla	2006-04-11 20:58:56.000000000 +0200
+++ linux24-psionw/arch/arm/kernel/io.c	2006-04-11 21:00:10.000000000 +0200
@@ -12,7 +12,7 @@
 	while (count) {
 		count--;
 		*(char *) to = readb(from);
-		((char *) to)++;
+		to = (char *) to + 1;
 		from++;
 	}
 }
@@ -26,7 +26,7 @@
 	while (count) {
 		count--;
 		writeb(*(char *) from, to);
-		((char *) from)++;
+		from = (char *) from + 1;
 		to++;
 	}
 }
--- linux24-psionw/init/do_mounts.c.vanilla	2006-04-11 18:05:05.000000000 +0200
+++ linux24-psionw/init/do_mounts.c	2006-04-11 18:05:30.000000000 +0200
@@ -52,7 +52,7 @@
 int __initdata rd_doload;	/* 1 = load RAM disk, 0 = don't load */
 
 int root_mountflags = MS_RDONLY | MS_VERBOSE;
-static char root_device_name[64];
+char root_device_name[64];
 
 /* this is initialized in init/main.c */
 kdev_t ROOT_DEV;
--- linux24-psionw/drivers/char/vc_screen.c.vanilla	2006-04-11 19:51:32.000000000 +0200
+++ linux24-psionw/drivers/char/vc_screen.c	2006-04-11 19:51:54.000000000 +0200
@@ -421,7 +421,7 @@
 			while (this_round > 1) {
 				unsigned short w;
 
-				w = get_unaligned(((const unsigned short *)con_buf0));
+				w = get_unaligned(((unsigned short *)con_buf0));
 				vcs_scr_writew(currcons, w, org++);
 				con_buf0 += 2;
 				this_round -= 2;
--- linux24-psionw/drivers/char/n_tty.c.vanilla	2006-04-11 19:50:37.000000000 +0200
+++ linux24-psionw/drivers/char/n_tty.c	2006-04-11 19:51:07.000000000 +0200
@@ -1147,9 +1147,9 @@
 }
 
 static ssize_t write_chan(struct tty_struct * tty, struct file * file,
-			  const unsigned char * buf, size_t nr)
+			  unsigned char * buf, size_t nr)
 {
-	const unsigned char *b = buf;
+	unsigned char *b = buf;
 	DECLARE_WAITQUEUE(wait, current);
 	int c;
 	ssize_t retval = 0;
--- linux24-psionw/drivers/sound/sound_firmware.c.vanilla	2006-04-11 19:52:28.000000000 +0200
+++ linux24-psionw/drivers/sound/sound_firmware.c	2006-04-11 19:52:56.000000000 +0200
@@ -7,7 +7,7 @@
 #include <linux/unistd.h>
 #include <asm/uaccess.h>
 
-static int errno;
+//int errno;
 static int do_mod_firmware_load(const char *fn, char **fp)
 {
 	int fd;
--- linux24-psionw/drivers/video/fbcon.c.vanilla	2006-04-11 19:53:32.000000000 +0200
+++ linux24-psionw/drivers/video/fbcon.c	2006-04-11 19:55:44.000000000 +0200
@@ -1877,7 +1877,7 @@
        font length must be multiple of 256, at least. And 256 is multiple
        of 4 */
     k = 0;
-    while (p > new_data) k += *--(u32 *)p;
+    for (; p > new_data; p-=4) k += *p;
     FNTSUM(new_data) = k;
     /* Check if the same font is on some other console already */
     for (i = 0; i < MAX_NR_CONSOLES; i++) {
--- linux24-psionw/kernel/sysctl.c.vanilla	2006-04-11 19:38:32.000000000 +0200
+++ linux24-psionw/kernel/sysctl.c	2006-04-11 19:50:06.000000000 +0200
@@ -879,7 +879,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer++;
 			}
 			if (!left)
 				break;
@@ -1032,7 +1032,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer++;
 			}
 			if (!left)
 				break;
@@ -1133,7 +1133,7 @@
 				if (!isspace(c))
 					break;
 				left--;
-				((char *) buffer)++;
+				buffer++;
 			}
 			if (!left)
 				break;
--- linux24-psionw/include/net/irda/irttp.h.vanilla	2006-04-11 20:56:55.000000000 +0200
+++ linux24-psionw/include/net/irda/irttp.h	2006-04-11 20:57:05.000000000 +0200
@@ -209,6 +209,6 @@
 	return(irlap_is_primary(self->lsap->lap->irlap));
 }
 
-extern struct irttp_cb *irttp;
+static struct irttp_cb *irttp;
 
 #endif /* IRTTP_H */
--- linux24-psionw/include/net/irda/irlan_event.h.vanilla	2006-04-11 20:19:39.000000000 +0200
+++ linux24-psionw/include/net/irda/irlan_event.h	2006-04-11 20:57:23.000000000 +0200
@@ -67,7 +67,7 @@
 	IRLAN_WATCHDOG_TIMEOUT,
 } IRLAN_EVENT;
 
-extern char *irlan_state[];
+static char *irlan_state[];
 
 void irlan_do_client_event(struct irlan_cb *self, IRLAN_EVENT event, 
 			   struct sk_buff *skb);
--- linux24-psionw/include/net/ipv6.h.vanilla	2006-04-11 20:15:01.000000000 +0200
+++ linux24-psionw/include/net/ipv6.h	2006-04-11 20:15:34.000000000 +0200
@@ -20,6 +20,8 @@
 #include <net/ndisc.h>
 #include <net/flow.h>
 
+#include <net/snmp.h>
+
 #define SIN6_LEN_RFC2133	24
 
 /*
--- linux24-psionw/include/net/icmp.h.vanilla	2006-04-11 20:16:38.000000000 +0200
+++ linux24-psionw/include/net/icmp.h	2006-04-11 20:17:49.000000000 +0200
@@ -24,6 +24,8 @@
 #include <net/sock.h>
 #include <net/protocol.h>
 
+#include <net/snmp.h>
+
 struct icmp_err {
   int		errno;
   unsigned	fatal:1;
--- linux24-psionw/include/linux/irq_cpustat.h.vanilla	2006-04-11 19:37:23.000000000 +0200
+++ linux24-psionw/include/linux/irq_cpustat.h	2006-04-11 19:37:27.000000000 +0200
@@ -22,7 +22,7 @@
 #ifdef CONFIG_SMP
 #define __IRQ_STAT(cpu, member)	(irq_stat[cpu].member)
 #else
-#define __IRQ_STAT(cpu, member)	((void)(cpu), irq_stat[0].member)
+#define __IRQ_STAT(cpu, member) (irq_stat[((void)(cpu), 0)].member)
 #endif	
 
   /* arch independent irq_stat fields */
--- linux24-psionw/include/asm-arm/setup.h.vanilla	2006-04-11 21:06:30.000000000 +0200
+++ linux24-psionw/include/asm-arm/setup.h	2006-04-11 21:07:16.000000000 +0200
@@ -265,6 +265,6 @@
 	} bank[NR_BANKS];
 };
 
-extern struct meminfo meminfo;
+// extern struct meminfo meminfo;
 
 #endif
--- linux24-psionw/arch/arm/Makefile.vanilla	2006-04-11 23:07:45.000000000 +0200
+++ linux24-psionw/arch/arm/Makefile	2006-04-11 23:07:50.000000000 +0200
@@ -27,7 +27,7 @@
 #
 # Note!  For APCS-26 YOU MUST HAVE AN APCS-26 LIBGCC.A
 #
-apcs-y				:=-mapcs-32
+apcs-y				:=
 apcs-$(CONFIG_CPU_26)		:=-mapcs-26 -mcpu=arm3 -Os
 
 # This selects which instruction set is used.
--- linux24-psionw/lib/crc32.c.vanilla	2006-07-29 20:12:35.000000000 +0200
+++ linux24-psionw/lib/crc32.c	2006-07-29 20:13:40.000000000 +0200
@@ -99,7 +99,7 @@
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			DO_CRC(*(b)++);
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -120,7 +120,7 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			DO_CRC(*(b)++);
 		} while (--len);
 	}
 
@@ -200,7 +200,7 @@
 	/* Align it */
 	if(unlikely(((long)b)&3 && len)){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			DO_CRC(*(b)++);
 		} while ((--len) && ((long)b)&3 );
 	}
 	if(likely(len >= 4)){
@@ -221,7 +221,7 @@
 	/* And the last few bytes */
 	if(len){
 		do {
-			DO_CRC(*((u8 *)b)++);
+			DO_CRC(*(b)++);
 		} while (--len);
 	}
 	return __be32_to_cpu(crc);
--- linux24-psionw/drivers/pcmcia/bulkmem.c.vanilla	2006-07-29 20:09:16.000000000 +0200
+++ linux24-psionw/drivers/pcmcia/bulkmem.c	2006-07-29 20:10:40.000000000 +0200
@@ -301,7 +301,7 @@
     {
 	window_handle_t w;
         int ret = pcmcia_request_window(a1, a2, &w);
-        (window_handle_t *)a1 = w;
+        a1 = w;
 	return  ret;
     }
         break;