mirror of
git://projects.qi-hardware.com/openwrt-xburst.git
synced 2025-04-21 12:27:27 +03:00
large target/linux cleanup
git-svn-id: svn://svn.openwrt.org/openwrt/trunk/openwrt@2877 3c298f89-4303-0410-b956-a3cf2f4a3e73
This commit is contained in:
367
target/linux/generic-2.4/patches/113-even_more_gcc4_stuff.patch
Normal file
367
target/linux/generic-2.4/patches/113-even_more_gcc4_stuff.patch
Normal file
@@ -0,0 +1,367 @@
|
||||
diff -Nur linux.old/arch/mips/kernel/mips_ksyms.c linux.dev/arch/mips/kernel/mips_ksyms.c
|
||||
--- linux.old/arch/mips/kernel/mips_ksyms.c 2004-02-18 14:36:30.000000000 +0100
|
||||
+++ linux.dev/arch/mips/kernel/mips_ksyms.c 2005-10-24 14:21:53.702396250 +0200
|
||||
@@ -30,6 +30,10 @@
|
||||
#include <asm/floppy.h>
|
||||
#endif
|
||||
|
||||
+asmlinkage long long __ashldi3 (long long, int);
|
||||
+asmlinkage long long __ashrdi3 (long long, int);
|
||||
+asmlinkage long long __lshrdi3 (long long, int);
|
||||
+asmlinkage long long __muldi3 (long long, long long);
|
||||
extern void *__bzero(void *__s, size_t __count);
|
||||
extern long __strncpy_from_user_nocheck_asm(char *__to,
|
||||
const char *__from, long __len);
|
||||
@@ -78,6 +82,13 @@
|
||||
EXPORT_SYMBOL_NOVERS(__strnlen_user_asm);
|
||||
|
||||
|
||||
+/* Compiler stuff */
|
||||
+EXPORT_SYMBOL_NOVERS(__ashldi3);
|
||||
+EXPORT_SYMBOL_NOVERS(__ashrdi3);
|
||||
+EXPORT_SYMBOL_NOVERS(__lshrdi3);
|
||||
+EXPORT_SYMBOL_NOVERS(__muldi3);
|
||||
+
|
||||
+
|
||||
/* Networking helper routines. */
|
||||
EXPORT_SYMBOL(csum_partial_copy);
|
||||
|
||||
diff -Nur linux.old/arch/mips/lib/Makefile linux.dev/arch/mips/lib/Makefile
|
||||
--- linux.old/arch/mips/lib/Makefile 2004-02-18 14:36:30.000000000 +0100
|
||||
+++ linux.dev/arch/mips/lib/Makefile 2005-10-24 14:21:53.774400750 +0200
|
||||
@@ -9,7 +9,8 @@
|
||||
obj-y += csum_partial.o csum_partial_copy.o \
|
||||
promlib.o rtc-std.o rtc-no.o memcpy.o \
|
||||
memset.o watch.o strlen_user.o \
|
||||
- strncpy_user.o strnlen_user.o
|
||||
+ strncpy_user.o strnlen_user.o \
|
||||
+ ashldi3.o ashrdi3.o lshrdi3.o muldi3.o
|
||||
|
||||
export-objs := rtc-std.o rtc-no.o
|
||||
|
||||
diff -Nur linux.old/arch/mips/lib/ashldi3.c linux.dev/arch/mips/lib/ashldi3.c
|
||||
--- linux.old/arch/mips/lib/ashldi3.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ linux.dev/arch/mips/lib/ashldi3.c 2005-10-24 14:21:53.774400750 +0200
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* ashrdi3.c extracted from gcc-2.95.2/libgcc2.c which is: */
|
||||
+/* Copyright (C) 1989, 92-98, 1999 Free Software Foundation, Inc.
|
||||
+
|
||||
+This file is part of GNU CC.
|
||||
+
|
||||
+GNU CC is free software; you can redistribute it and/or modify
|
||||
+it under the terms of the GNU General Public License as published by
|
||||
+the Free Software Foundation; either version 2, or (at your option)
|
||||
+any later version.
|
||||
+
|
||||
+GNU CC is distributed in the hope that it will be useful,
|
||||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+GNU General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU General Public License
|
||||
+along with GNU CC; see the file COPYING. If not, write to
|
||||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
+Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#define BITS_PER_UNIT 8
|
||||
+
|
||||
+typedef int SItype __attribute__ ((mode (SI)));
|
||||
+typedef unsigned int USItype __attribute__ ((mode (SI)));
|
||||
+typedef int DItype __attribute__ ((mode (DI)));
|
||||
+typedef int word_type __attribute__ ((mode (__word__)));
|
||||
+
|
||||
+struct DIstruct {SItype high, low;};
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ struct DIstruct s;
|
||||
+ DItype ll;
|
||||
+} DIunion;
|
||||
+
|
||||
+DItype
|
||||
+__ashldi3 (DItype u, word_type b)
|
||||
+{
|
||||
+ DIunion w;
|
||||
+ word_type bm;
|
||||
+ DIunion uu;
|
||||
+
|
||||
+ if (b == 0)
|
||||
+ return u;
|
||||
+
|
||||
+ uu.ll = u;
|
||||
+
|
||||
+ bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
|
||||
+ if (bm <= 0)
|
||||
+ {
|
||||
+ w.s.low = 0;
|
||||
+ w.s.high = (USItype)uu.s.low << -bm;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ USItype carries = (USItype)uu.s.low >> bm;
|
||||
+ w.s.low = (USItype)uu.s.low << b;
|
||||
+ w.s.high = ((USItype)uu.s.high << b) | carries;
|
||||
+ }
|
||||
+
|
||||
+ return w.ll;
|
||||
+}
|
||||
diff -Nur linux.old/arch/mips/lib/ashrdi3.c linux.dev/arch/mips/lib/ashrdi3.c
|
||||
--- linux.old/arch/mips/lib/ashrdi3.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ linux.dev/arch/mips/lib/ashrdi3.c 2005-10-24 14:21:53.774400750 +0200
|
||||
@@ -0,0 +1,63 @@
|
||||
+/* ashrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
|
||||
+/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
+
|
||||
+This file is part of GNU CC.
|
||||
+
|
||||
+GNU CC is free software; you can redistribute it and/or modify
|
||||
+it under the terms of the GNU General Public License as published by
|
||||
+the Free Software Foundation; either version 2, or (at your option)
|
||||
+any later version.
|
||||
+
|
||||
+GNU CC is distributed in the hope that it will be useful,
|
||||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+GNU General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU General Public License
|
||||
+along with GNU CC; see the file COPYING. If not, write to
|
||||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
+Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#define BITS_PER_UNIT 8
|
||||
+
|
||||
+typedef int SItype __attribute__ ((mode (SI)));
|
||||
+typedef unsigned int USItype __attribute__ ((mode (SI)));
|
||||
+typedef int DItype __attribute__ ((mode (DI)));
|
||||
+typedef int word_type __attribute__ ((mode (__word__)));
|
||||
+
|
||||
+struct DIstruct {SItype high, low;};
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ struct DIstruct s;
|
||||
+ DItype ll;
|
||||
+} DIunion;
|
||||
+
|
||||
+DItype
|
||||
+__ashrdi3 (DItype u, word_type b)
|
||||
+{
|
||||
+ DIunion w;
|
||||
+ word_type bm;
|
||||
+ DIunion uu;
|
||||
+
|
||||
+ if (b == 0)
|
||||
+ return u;
|
||||
+
|
||||
+ uu.ll = u;
|
||||
+
|
||||
+ bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
|
||||
+ if (bm <= 0)
|
||||
+ {
|
||||
+ /* w.s.high = 1..1 or 0..0 */
|
||||
+ w.s.high = uu.s.high >> (sizeof (SItype) * BITS_PER_UNIT - 1);
|
||||
+ w.s.low = uu.s.high >> -bm;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ USItype carries = (USItype)uu.s.high << bm;
|
||||
+ w.s.high = uu.s.high >> b;
|
||||
+ w.s.low = ((USItype)uu.s.low >> b) | carries;
|
||||
+ }
|
||||
+
|
||||
+ return w.ll;
|
||||
+}
|
||||
diff -Nur linux.old/arch/mips/lib/lshrdi3.c linux.dev/arch/mips/lib/lshrdi3.c
|
||||
--- linux.old/arch/mips/lib/lshrdi3.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ linux.dev/arch/mips/lib/lshrdi3.c 2005-10-24 14:21:53.774400750 +0200
|
||||
@@ -0,0 +1,62 @@
|
||||
+/* lshrdi3.c extracted from gcc-2.7.2/libgcc2.c which is: */
|
||||
+/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
+
|
||||
+This file is part of GNU CC.
|
||||
+
|
||||
+GNU CC is free software; you can redistribute it and/or modify
|
||||
+it under the terms of the GNU General Public License as published by
|
||||
+the Free Software Foundation; either version 2, or (at your option)
|
||||
+any later version.
|
||||
+
|
||||
+GNU CC is distributed in the hope that it will be useful,
|
||||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+GNU General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU General Public License
|
||||
+along with GNU CC; see the file COPYING. If not, write to
|
||||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
+Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#define BITS_PER_UNIT 8
|
||||
+
|
||||
+typedef int SItype __attribute__ ((mode (SI)));
|
||||
+typedef unsigned int USItype __attribute__ ((mode (SI)));
|
||||
+typedef int DItype __attribute__ ((mode (DI)));
|
||||
+typedef int word_type __attribute__ ((mode (__word__)));
|
||||
+
|
||||
+struct DIstruct {SItype high, low;};
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ struct DIstruct s;
|
||||
+ DItype ll;
|
||||
+} DIunion;
|
||||
+
|
||||
+DItype
|
||||
+__lshrdi3 (DItype u, word_type b)
|
||||
+{
|
||||
+ DIunion w;
|
||||
+ word_type bm;
|
||||
+ DIunion uu;
|
||||
+
|
||||
+ if (b == 0)
|
||||
+ return u;
|
||||
+
|
||||
+ uu.ll = u;
|
||||
+
|
||||
+ bm = (sizeof (SItype) * BITS_PER_UNIT) - b;
|
||||
+ if (bm <= 0)
|
||||
+ {
|
||||
+ w.s.high = 0;
|
||||
+ w.s.low = (USItype)uu.s.high >> -bm;
|
||||
+ }
|
||||
+ else
|
||||
+ {
|
||||
+ USItype carries = (USItype)uu.s.high << bm;
|
||||
+ w.s.high = (USItype)uu.s.high >> b;
|
||||
+ w.s.low = ((USItype)uu.s.low >> b) | carries;
|
||||
+ }
|
||||
+
|
||||
+ return w.ll;
|
||||
+}
|
||||
diff -Nur linux.old/arch/mips/lib/muldi3.c linux.dev/arch/mips/lib/muldi3.c
|
||||
--- linux.old/arch/mips/lib/muldi3.c 1970-01-01 01:00:00.000000000 +0100
|
||||
+++ linux.dev/arch/mips/lib/muldi3.c 2005-10-24 14:21:53.774400750 +0200
|
||||
@@ -0,0 +1,63 @@
|
||||
+/* muldi3.c extracted from gcc-2.7.2.3/libgcc2.c and
|
||||
+ gcc-2.7.2.3/longlong.h which is: */
|
||||
+/* Copyright (C) 1989, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
|
||||
+
|
||||
+This file is part of GNU CC.
|
||||
+
|
||||
+GNU CC is free software; you can redistribute it and/or modify
|
||||
+it under the terms of the GNU General Public License as published by
|
||||
+the Free Software Foundation; either version 2, or (at your option)
|
||||
+any later version.
|
||||
+
|
||||
+GNU CC is distributed in the hope that it will be useful,
|
||||
+but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
+GNU General Public License for more details.
|
||||
+
|
||||
+You should have received a copy of the GNU General Public License
|
||||
+along with GNU CC; see the file COPYING. If not, write to
|
||||
+the Free Software Foundation, 59 Temple Place - Suite 330,
|
||||
+Boston, MA 02111-1307, USA. */
|
||||
+
|
||||
+#define BITS_PER_UNIT 8
|
||||
+
|
||||
+#define umul_ppmm(w1, w0, u, v) \
|
||||
+ __asm__ ("multu %2,%3" \
|
||||
+ : "=l" ((USItype)(w0)), \
|
||||
+ "=h" ((USItype)(w1)) \
|
||||
+ : "d" ((USItype)(u)), \
|
||||
+ "d" ((USItype)(v)))
|
||||
+
|
||||
+#define __umulsidi3(u, v) \
|
||||
+ ({DIunion __w; \
|
||||
+ umul_ppmm (__w.s.high, __w.s.low, u, v); \
|
||||
+ __w.ll; })
|
||||
+
|
||||
+typedef int SItype __attribute__ ((mode (SI)));
|
||||
+typedef unsigned int USItype __attribute__ ((mode (SI)));
|
||||
+typedef int DItype __attribute__ ((mode (DI)));
|
||||
+typedef int word_type __attribute__ ((mode (__word__)));
|
||||
+
|
||||
+struct DIstruct {SItype high, low;};
|
||||
+
|
||||
+typedef union
|
||||
+{
|
||||
+ struct DIstruct s;
|
||||
+ DItype ll;
|
||||
+} DIunion;
|
||||
+
|
||||
+DItype
|
||||
+__muldi3 (DItype u, DItype v)
|
||||
+{
|
||||
+ DIunion w;
|
||||
+ DIunion uu, vv;
|
||||
+
|
||||
+ uu.ll = u,
|
||||
+ vv.ll = v;
|
||||
+
|
||||
+ w.ll = __umulsidi3 (uu.s.low, vv.s.low);
|
||||
+ w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
|
||||
+ + (USItype) uu.s.high * (USItype) vv.s.low);
|
||||
+
|
||||
+ return w.ll;
|
||||
+}
|
||||
diff -Nur linux.old/fs/cifs/cifsfs.c linux.dev/fs/cifs/cifsfs.c
|
||||
--- linux.old/fs/cifs/cifsfs.c 2005-10-24 13:48:27.599659000 +0200
|
||||
+++ linux.dev/fs/cifs/cifsfs.c 2005-10-24 14:25:06.526447000 +0200
|
||||
@@ -50,8 +50,6 @@
|
||||
static struct quotactl_ops cifs_quotactl_ops;
|
||||
#endif
|
||||
|
||||
-extern struct file_system_type cifs_fs_type;
|
||||
-
|
||||
int cifsFYI = 0;
|
||||
int cifsERROR = 1;
|
||||
int traceSMB = 0;
|
||||
diff -Nur linux.old/include/asm-mips/uaccess.h linux.dev/include/asm-mips/uaccess.h
|
||||
--- linux.old/include/asm-mips/uaccess.h 2005-01-19 15:10:12.000000000 +0100
|
||||
+++ linux.dev/include/asm-mips/uaccess.h 2005-10-24 14:11:48.563214250 +0200
|
||||
@@ -149,7 +149,7 @@
|
||||
* Returns zero on success, or -EFAULT on error.
|
||||
*/
|
||||
#define put_user(x,ptr) \
|
||||
- __put_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
|
||||
+ __put_user_check((x),(ptr),sizeof(*(ptr)))
|
||||
|
||||
/*
|
||||
* get_user: - Get a simple variable from user space.
|
||||
@@ -169,7 +169,7 @@
|
||||
* On error, the variable @x is set to zero.
|
||||
*/
|
||||
#define get_user(x,ptr) \
|
||||
- __get_user_check((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
|
||||
+ __get_user_check((x),(ptr),sizeof(*(ptr)))
|
||||
|
||||
/*
|
||||
* __put_user: - Write a simple value into user space, with less checking.
|
||||
@@ -191,7 +191,7 @@
|
||||
* Returns zero on success, or -EFAULT on error.
|
||||
*/
|
||||
#define __put_user(x,ptr) \
|
||||
- __put_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
|
||||
+ __put_user_nocheck((x),(ptr),sizeof(*(ptr)))
|
||||
|
||||
/*
|
||||
* __get_user: - Get a simple variable from user space, with less checking.
|
||||
@@ -214,7 +214,7 @@
|
||||
* On error, the variable @x is set to zero.
|
||||
*/
|
||||
#define __get_user(x,ptr) \
|
||||
- __get_user_nocheck((__typeof__(*(ptr)))(x),(ptr),sizeof(*(ptr)))
|
||||
+ __get_user_nocheck((x),(ptr),sizeof(*(ptr)))
|
||||
|
||||
struct __large_struct { unsigned long buf[100]; };
|
||||
#define __m(x) (*(struct __large_struct *)(x))
|
||||
@@ -232,7 +232,7 @@
|
||||
#define __get_user_nocheck(x,ptr,size) \
|
||||
({ \
|
||||
long __gu_err = 0; \
|
||||
- __typeof(*(ptr)) __gu_val = 0; \
|
||||
+ __typeof(*(ptr)) __gu_val = (__typeof(*(ptr))) 0; \
|
||||
long __gu_addr; \
|
||||
__gu_addr = (long) (ptr); \
|
||||
switch (size) { \
|
||||
Reference in New Issue
Block a user