summaryrefslogtreecommitdiff
path: root/patches/linux
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-02-24 11:00:05 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-02-24 11:00:05 (GMT)
commit1906cf93f86d8d66f45f90380a8d3da25c087ee5 (patch)
tree90916c99abe1f1ec26709ee420e6c349eda4670a /patches/linux
parent2609573aede4ce198b3462976725b25eb1637d2e (diff)
Add the full crosstool-NG sources to the new repository of its own.
You might just say: 'Yeah! crosstool-NG's got its own repo!". Unfortunately, that's because the previous repo got damaged beyond repair and I had no backup. That means I'm putting backups in place in the afternoon. That also means we've lost history... :-(
Diffstat (limited to 'patches/linux')
-rw-r--r--patches/linux/2.4.26/01-kmap-types-cleanup.patch306
-rw-r--r--patches/linux/2.4.26/kaz-types.patch60
-rw-r--r--patches/linux/2.4.26/linux-2.4-bsd-expr.patch25
-rw-r--r--patches/linux/2.4.26/linux-2.4.21-allow-gcc-3.3-arm-lib.patch203
-rw-r--r--patches/linux/2.4.26/linux-2.4.26-allow-gcc-3.4-arm-kernel.patch23
-rw-r--r--patches/linux/2.4.26/linux-2.4.26-arm-nonofpu.patch40
-rw-r--r--patches/linux/2.4.26/linux-2.4.26-mkdep-xargs.patch28
-rw-r--r--patches/linux/2.4.26/linux-2.4.26-wdt977-uaccess.patch17
-rw-r--r--patches/linux/2.6.11.3/arch_alpha_kernel_srcons.patch134
-rw-r--r--patches/linux/2.6.11.3/kaz-types.patch60
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-i386.patch150
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-m68k.patch32
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-ppc64.patch30
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-x86_64.patch28
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-i2c.patch58
-rw-r--r--patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-ppc-mikpe.patch86
-rw-r--r--patches/linux/2.6.5/linux-2.6.5-x86_64-unistd.patch80
-rw-r--r--patches/linux/2.6.6/kaz-types.patch60
-rw-r--r--patches/linux/2.6.6/linux-2.6.5-x86_64-unistd.patch80
-rw-r--r--patches/linux/2.6.6/linux-2.6.8-noshared-kconfig.patch28
-rw-r--r--patches/linux/2.6.7/kaz-types.patch60
-rw-r--r--patches/linux/2.6.7/linux-2.6.7-build_on_case_insensitive_fs-1.patch679
-rw-r--r--patches/linux/2.6.7/linux-2.6.8-noshared-kconfig.patch28
-rw-r--r--patches/linux/2.6.8/kaz-types.patch60
-rw-r--r--patches/linux/2.6.8/linux-2.6.8-allow-gcc-4.0-asm-i386.patch138
-rw-r--r--patches/linux/2.6.8/linux-2.6.8-arm-nonofpu.patch50
-rw-r--r--patches/linux/2.6.8/linux-2.6.8-build_on_case_insensitive_fs.patch725
-rw-r--r--patches/linux/2.6.8/linux-2.6.8-m68k-kludge.patch285
-rw-r--r--patches/linux/2.6.8/linux-2.6.8-noshared-kconfig.patch28
29 files changed, 3581 insertions, 0 deletions
diff --git a/patches/linux/2.4.26/01-kmap-types-cleanup.patch b/patches/linux/2.4.26/01-kmap-types-cleanup.patch
new file mode 100644
index 0000000..4a900bc
--- /dev/null
+++ b/patches/linux/2.4.26/01-kmap-types-cleanup.patch
@@ -0,0 +1,306 @@
+From http://www.uwsg.iu.edu/hypermail/linux/kernel/0307.2/att-1234/01-kmap-types-cleanup.patch
+See http://www.uwsg.iu.edu/hypermail/linux/kernel/0307.2/1234.html
+
+From: Marc-Christian Petersen (m.c.p@wolk-project.de)
+
+> > on alpha:
+> > internal.h:19:28: asm/kmap_types.h: No such file or directory
+> Same on s390 and some other platforms.We should just get rid of
+> this problem by providing a generic kmap_types header.
+I agree on this but your patch is bogus. Please use the attached one instead.
+
+Marcello, please apply this one instead. Against 2.4.22-BK (2.4.21-bk14)
+
+[ I commented out the hunk
+#+++ b/include/asm-mips/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+to get this to apply to linux-2.4.26.
+- dank]
+
+diff -Naurp a/crypto/internal.h b/crypto/internal.h
+--- a/crypto/internal.h 2003-07-19 14:09:06.000000000 +0200
++++ b/crypto/internal.h 2003-07-19 14:18:58.000000000 +0200
+@@ -14,9 +14,9 @@
+ #include <linux/mm.h>
+ #include <linux/highmem.h>
+ #include <linux/init.h>
++#include <linux/kmap_types.h>
+ #include <asm/hardirq.h>
+ #include <asm/softirq.h>
+-#include <asm/kmap_types.h>
+
+ extern enum km_type crypto_km_types[];
+
+diff -Naurp a/include/asm-i386/fixmap.h b/include/asm-i386/fixmap.h
+--- a/include/asm-i386/fixmap.h 2003-07-19 14:09:31.000000000 +0200
++++ b/include/asm-i386/fixmap.h 2003-07-19 14:18:58.000000000 +0200
+@@ -20,7 +20,7 @@
+ #include <asm/page.h>
+ #ifdef CONFIG_HIGHMEM
+ #include <linux/threads.h>
+-#include <asm/kmap_types.h>
++#include <linux/kmap_types.h>
+ #endif
+
+ /*
+diff -Naurp a/include/asm-i386/highmem.h b/include/asm-i386/highmem.h
+--- a/include/asm-i386/highmem.h 2003-07-15 10:28:54.000000000 +0200
++++ b/include/asm-i386/highmem.h 2003-07-19 14:18:58.000000000 +0200
+@@ -23,7 +23,6 @@
+ #include <linux/config.h>
+ #include <linux/init.h>
+ #include <linux/interrupt.h>
+-#include <asm/kmap_types.h>
+ #include <asm/pgtable.h>
+
+ #ifdef CONFIG_DEBUG_HIGHMEM
+diff -Naurp a/include/asm-i386/kmap_types.h b/include/asm-i386/kmap_types.h
+--- a/include/asm-i386/kmap_types.h 2003-07-19 14:09:31.000000000 +0200
++++ b/include/asm-i386/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,16 +0,0 @@
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BH_IRQ,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+diff -Naurp a/include/asm-m68k/kmap_types.h b/include/asm-m68k/kmap_types.h
+--- a/include/asm-m68k/kmap_types.h 2003-07-19 14:09:33.000000000 +0200
++++ b/include/asm-m68k/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,18 +0,0 @@
+-#ifdef __KERNEL__
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BH_IRQ,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+-#endif /* __KERNEL__ */
+diff -Naurp a/include/asm-mips/fixmap.h b/include/asm-mips/fixmap.h
+--- a/include/asm-mips/fixmap.h 2002-09-27 23:26:03.000000000 +0200
++++ b/include/asm-mips/fixmap.h 2003-07-19 14:18:58.000000000 +0200
+@@ -18,7 +18,7 @@
+ #include <asm/page.h>
+ #ifdef CONFIG_HIGHMEM
+ #include <linux/threads.h>
+-#include <asm/kmap_types.h>
++#include <linux/kmap_types.h>
+ #endif
+
+ /*
+diff -Naurp a/include/asm-mips/highmem.h b/include/asm-mips/highmem.h
+--- a/include/asm-mips/highmem.h 2002-12-18 01:03:59.000000000 +0100
++++ b/include/asm-mips/highmem.h 2003-07-19 14:18:58.000000000 +0200
+@@ -22,7 +22,6 @@
+
+ #include <linux/init.h>
+ #include <linux/interrupt.h>
+-#include <asm/kmap_types.h>
+ #include <asm/pgtable.h>
+
+ /* undef for production */
+#diff -Naurp a/include/asm-mips/kmap_types.h b/include/asm-mips/kmap_types.h
+#--- a/include/asm-mips/kmap_types.h 2002-12-18 01:03:59.000000000 +0100
+#+++ b/include/asm-mips/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+#@@ -1,14 +0,0 @@
+#-#ifndef _ASM_KMAP_TYPES_H
+#-#define _ASM_KMAP_TYPES_H
+#-
+#-enum km_type {
+#- KM_BOUNCE_READ,
+#- KM_SKB_SUNRPC_DATA,
+#- KM_SKB_DATA_SOFTIRQ,
+#- KM_USER0,
+#- KM_USER1,
+#- KM_BIO_IRQ,
+#- KM_TYPE_NR
+#-};
+#-
+#-#endif
+diff -Naurp a/include/asm-ppc/highmem.h b/include/asm-ppc/highmem.h
+--- a/include/asm-ppc/highmem.h 2003-07-19 14:09:33.000000000 +0200
++++ b/include/asm-ppc/highmem.h 2003-07-19 14:18:58.000000000 +0200
+@@ -24,7 +24,7 @@
+
+ #include <linux/init.h>
+ #include <linux/interrupt.h>
+-#include <asm/kmap_types.h>
++#include <linux/kmap_types.h>
+ #include <asm/pgtable.h>
+
+ /* undef for production */
+diff -Naurp a/include/asm-ppc/kmap_types.h b/include/asm-ppc/kmap_types.h
+--- a/include/asm-ppc/kmap_types.h 2003-07-19 14:09:33.000000000 +0200
++++ b/include/asm-ppc/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,18 +0,0 @@
+-#ifdef __KERNEL__
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BH_IRQ,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+-#endif /* __KERNEL__ */
+diff -Naurp a/include/asm-ppc64/kmap_types.h b/include/asm-ppc64/kmap_types.h
+--- a/include/asm-ppc64/kmap_types.h 2003-07-19 14:09:35.000000000 +0200
++++ b/include/asm-ppc64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,23 +0,0 @@
+-#ifdef __KERNEL__
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BIO_SRC_IRQ,
+- KM_BIO_DST_IRQ,
+- KM_PTE0,
+- KM_PTE1,
+- KM_IRQ0,
+- KM_IRQ1,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+-#endif /* __KERNEL__ */
+diff -Naurp a/include/asm-sparc/highmem.h b/include/asm-sparc/highmem.h
+--- a/include/asm-sparc/highmem.h 2003-07-15 10:28:56.000000000 +0200
++++ b/include/asm-sparc/highmem.h 2003-07-19 14:18:58.000000000 +0200
+@@ -21,7 +21,7 @@
+ #ifdef __KERNEL__
+
+ #include <linux/interrupt.h>
+-#include <asm/kmap_types.h>
++#include <linux/kmap_types.h>
+
+ /* undef for production */
+ #define HIGHMEM_DEBUG 1
+diff -Naurp a/include/asm-sparc/kmap_types.h b/include/asm-sparc/kmap_types.h
+--- a/include/asm-sparc/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
++++ b/include/asm-sparc/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,16 +0,0 @@
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BH_IRQ,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+diff -Naurp a/include/asm-sparc64/kmap_types.h b/include/asm-sparc64/kmap_types.h
+--- a/include/asm-sparc64/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
++++ b/include/asm-sparc64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,20 +0,0 @@
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-/* Dummy header just to define km_type. None of this
+- * is actually used on sparc64. -DaveM
+- */
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_SUNRPC_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_BH_IRQ,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+diff -Naurp a/include/asm-x86_64/kmap_types.h b/include/asm-x86_64/kmap_types.h
+--- a/include/asm-x86_64/kmap_types.h 2003-07-19 14:09:37.000000000 +0200
++++ b/include/asm-x86_64/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
+@@ -1,15 +0,0 @@
+-#ifndef _ASM_KMAP_TYPES_H
+-#define _ASM_KMAP_TYPES_H
+-
+-enum km_type {
+- KM_BOUNCE_READ,
+- KM_SKB_DATA,
+- KM_SKB_DATA_SOFTIRQ,
+- KM_USER0,
+- KM_USER1,
+- KM_SOFTIRQ0,
+- KM_SOFTIRQ1,
+- KM_TYPE_NR
+-};
+-
+-#endif
+diff -Naurp a/include/linux/highmem.h b/include/linux/highmem.h
+--- a/include/linux/highmem.h 2003-07-19 14:09:37.000000000 +0200
++++ b/include/linux/highmem.h 2003-07-19 14:18:58.000000000 +0200
+@@ -2,6 +2,7 @@
+ #define _LINUX_HIGHMEM_H
+
+ #include <linux/config.h>
++#include <linux/kmap_types.h>
+ #include <asm/pgalloc.h>
+
+ #ifdef CONFIG_HIGHMEM
+diff -Naurp a/include/linux/kmap_types.h b/include/linux/kmap_types.h
+--- a/include/linux/kmap_types.h 1970-01-01 01:00:00.000000000 +0100
++++ b/include/linux/kmap_types.h 2003-07-19 14:18:58.000000000 +0200
+@@ -0,0 +1,16 @@
++#ifndef _LINUX_KMAP_TYPES_H
++#define _LINUX_KMAP_TYPES_H
++
++enum km_type {
++ KM_BOUNCE_READ,
++ KM_SKB_SUNRPC_DATA,
++ KM_SKB_DATA_SOFTIRQ,
++ KM_USER0,
++ KM_USER1,
++ KM_BH_IRQ,
++ KM_SOFTIRQ0,
++ KM_SOFTIRQ1,
++ KM_TYPE_NR
++};
++
++#endif
+
diff --git a/patches/linux/2.4.26/kaz-types.patch b/patches/linux/2.4.26/kaz-types.patch
new file mode 100644
index 0000000..ec5de36
--- /dev/null
+++ b/patches/linux/2.4.26/kaz-types.patch
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+ from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+ kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h Wed Mar 5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h Sat Apr 19 10:05:52 2003
+@@ -141,6 +141,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef __KERNEL__
+ /*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+@@ -152,5 +153,6 @@
+ char f_fname[6];
+ char f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff --git a/patches/linux/2.4.26/linux-2.4-bsd-expr.patch b/patches/linux/2.4.26/linux-2.4-bsd-expr.patch
new file mode 100644
index 0000000..17625e5
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4-bsd-expr.patch
@@ -0,0 +1,25 @@
+# http://in3www.epfl.ch/~schaffne/linux-2.4-bsd-expr.patch
+The following makes it possible to compile linux 2.4.19 to 2.4.25 on Mac OS X,
+where "expr" doesn't understand the "length" construct
+(which it doesn't have to, according to SuSv3
+(see http://www.opengroup.org/onlinepubs/007904975/utilities/expr.html)
+See also http://sources.redhat.com/ml/crossgcc/2004-02/msg00131.html
+
+Fixes error
+ expr: syntax error
+ KERNELRELEASE "2.4.21" exceeds 64 characters
+ make: *** [include/linux/version.h] Error 1
+
+
+diff -ur linux-2.4.23-old/Makefile linux-2.4.23/Makefile
+--- linux-2.4.23-old/Makefile 2003-12-09 14:27:56.000000000 +0100
++++ linux-2.4.23/Makefile 2003-12-09 14:28:37.000000000 +0100
+@@ -353,7 +353,7 @@
+ @rm -f .ver1
+
+ include/linux/version.h: ./Makefile
+- @expr length "$(KERNELRELEASE)" \<= $(uts_len) > /dev/null || \
++ @expr "$(KERNELRELEASE)" : '.*' \<= $(uts_len) > /dev/null || \
+ (echo KERNELRELEASE \"$(KERNELRELEASE)\" exceeds $(uts_len) characters >&2; false)
+ @echo \#define UTS_RELEASE \"$(KERNELRELEASE)\" > .ver
+ @echo \#define LINUX_VERSION_CODE `expr $(VERSION) \\* 65536 + $(PATCHLEVEL) \\* 256 + $(SUBLEVEL)` >> .ver
diff --git a/patches/linux/2.4.26/linux-2.4.21-allow-gcc-3.3-arm-lib.patch b/patches/linux/2.4.26/linux-2.4.21-allow-gcc-3.3-arm-lib.patch
new file mode 100644
index 0000000..8f8ddd6
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4.21-allow-gcc-3.3-arm-lib.patch
@@ -0,0 +1,203 @@
+Reconstructed from http://lists.arm.linux.org.uk/pipermail/linux-arm-kernel/2003-December/018647.html
+See also http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=1540
+
+Message-ID: <DDA001.8070502@de.bosch.com>
+Subject: Help cross compiling the kernel for arm.
+From: dirk.behme at de.bosch.com
+
+Aitor Garcia wrote:
+> Hello everybody,
+>
+> I am having problems cross compiling the kernel for arm.
+>
+> This is the error message I get:
+>
+> blkpg.c: In function `blk_ioctl':
+> blkpg.c:252: error: asm-specifier for variable `__r1' conflicts with asm clobber list
+> blkpg.c:252: confused by earlier errors, bailing out make[3]: *** [blkpg.o] Error 1
+> make[3]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers/block'
+> make[2]: *** [first_rule] Error 2
+> make[2]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers/block'
+> make[1]: *** [_subdir_block] Error 2
+> make[1]: Leaving directory `/root/toolchain/kernel-arm/linux-2.4.21/drivers'
+> make: *** [_dir_drivers] Error 2
+>
+> These are the toolchain versions I am using:
+> host=i686-pc-linux-gnu
+> binutils_version=2.14
+> gcc_version=3.3.2
+> glibc_version=2.3.2
+> kernel_version=2.4.21
+> and applied the kernel patch for arm. 2.4.21-rmk1.
+> ...
+> I have also seen references to this bug in ARM linux
+> Developer. Patch Number = 1540. But this patch is
+> classified as discarded.
+
+You need something like 1540 to compile 2.4.21 with gcc 3.3.2. 1540 was
+discarded because of AFLAGS change.
+
+Try the attachment.
+
+Dirk
+-------------- next part --------------
+--- linux/arch/arm/lib/getuser.S.orig Mon Nov 17 07:41:51 2003
++++ linux/arch/arm/lib/getuser.S Mon Nov 17 07:43:16 2003
+@@ -17,7 +17,7 @@
+ *
+ * Inputs: r0 contains the address
+ * Outputs: r0 is the error code
+- * r1, r2 contains the zero-extended value
++ * r1, ip contains the zero-extended value
+ * lr corrupted
+ *
+ * No other registers must be altered. (see include/asm-arm/uaccess.h
+@@ -42,14 +42,14 @@ __get_user_1:
+
+ .global __get_user_2
+ __get_user_2:
+- bic r2, sp, #0x1f00
+- bic r2, r2, #0x00ff
+- ldr r2, [r2, #TSK_ADDR_LIMIT]
+- sub r2, r2, #2
+- cmp r0, r2
++ bic ip, sp, #0x1f00
++ bic ip, ip, #0x00ff
++ ldr ip, [ip, #TSK_ADDR_LIMIT]
++ sub ip, ip, #2
++ cmp r0, ip
+ 2: ldrlsbt r1, [r0], #1
+-3: ldrlsbt r2, [r0]
+- orrls r1, r1, r2, lsl #8
++3: ldrlsbt ip, [r0]
++ orrls r1, r1, ip, lsl #8
+ movls r0, #0
+ movls pc, lr
+ b __get_user_bad
+@@ -68,20 +68,20 @@ __get_user_4:
+
+ .global __get_user_8
+ __get_user_8:
+- bic r2, sp, #0x1f00
+- bic r2, r2, #0x00ff
+- ldr r2, [r2, #TSK_ADDR_LIMIT]
+- sub r2, r2, #8
+- cmp r0, r2
++ bic ip, sp, #0x1f00
++ bic ip, ip, #0x00ff
++ ldr ip, [ip, #TSK_ADDR_LIMIT]
++ sub ip, ip, #8
++ cmp r0, ip
+ 5: ldrlst r1, [r0], #4
+-6: ldrlst r2, [r0]
++6: ldrlst ip, [r0]
+ movls r0, #0
+ movls pc, lr
+
+ /* fall through */
+
+ __get_user_bad_8:
+- mov r2, #0
++ mov ip, #0
+ __get_user_bad:
+ mov r1, #0
+ mov r0, #-14
+--- linux/arch/arm/lib/putuser.S.orig Mon Nov 17 07:41:57 2003
++++ linux/arch/arm/lib/putuser.S Mon Nov 17 07:42:26 2003
+@@ -16,7 +16,7 @@
+ * __put_user_X
+ *
+ * Inputs: r0 contains the address
+- * r1, r2 contains the value
++ * r1, ip contains the value
+ * Outputs: r0 is the error code
+ * lr corrupted
+ *
+@@ -30,11 +30,11 @@
+
+ .global __put_user_1
+ __put_user_1:
+- bic r2, sp, #0x1f00
+- bic r2, r2, #0x00ff
+- ldr r2, [r2, #TSK_ADDR_LIMIT]
+- sub r2, r2, #1
+- cmp r0, r2
++ bic ip, sp, #0x1f00
++ bic ip, ip, #0x00ff
++ ldr ip, [ip, #TSK_ADDR_LIMIT]
++ sub ip, ip, #1
++ cmp r0, ip
+ 1: strlsbt r1, [r0]
+ movls r0, #0
+ movls pc, lr
+@@ -42,11 +42,11 @@ __put_user_1:
+
+ .global __put_user_2
+ __put_user_2:
+- bic r2, sp, #0x1f00
+- bic r2, r2, #0x00ff
+- ldr r2, [r2, #TSK_ADDR_LIMIT]
+- sub r2, r2, #2
+- cmp r0, r2
++ bic ip, sp, #0x1f00
++ bic ip, ip, #0x00ff
++ ldr ip, [ip, #TSK_ADDR_LIMIT]
++ sub ip, ip, #2
++ cmp r0, ip
+ 2: strlsbt r1, [r0], #1
+ movls r1, r1, lsr #8
+ 3: strlsbt r1, [r0]
+@@ -56,11 +56,11 @@ __put_user_2:
+
+ .global __put_user_4
+ __put_user_4:
+- bic r2, sp, #0x1f00
+- bic r2, r2, #0x00ff
+- ldr r2, [r2, #TSK_ADDR_LIMIT]
+- sub r2, r2, #4
+- cmp r0, r2
++ bic ip, sp, #0x1f00
++ bic ip, ip, #0x00ff
++ ldr ip, [ip, #TSK_ADDR_LIMIT]
++ sub ip, ip, #4
++ cmp r0, ip
+ 4: strlst r1, [r0]
+ movls r0, #0
+ movls pc, lr
+@@ -74,7 +74,7 @@ __put_user_8:
+ sub ip, ip, #8
+ cmp r0, ip
+ 5: strlst r1, [r0], #4
+-6: strlst r2, [r0]
++6: strlst ip, [r0]
+ movls r0, #0
+ movls pc, lr
+
+--- linux/include/asm-arm/uaccess.h.orig Mon Nov 17 07:41:04 2003
++++ linux/include/asm-arm/uaccess.h Mon Nov 17 07:41:37 2003
+@@ -86,7 +86,7 @@ extern int __get_user_bad(void);
+ __get_user_x(__r1, __p, __e, 1, "lr"); \
+ break; \
+ case 2: \
+- __get_user_x(__r1, __p, __e, 2, "r2", "lr"); \
++ __get_user_x(__r1, __p, __e, 2, "ip", "lr"); \
+ break; \
+ case 4: \
+ __get_user_x(__r1, __p, __e, 4, "lr"); \
+@@ -122,13 +122,13 @@ extern int __put_user_bad(void);
+ register int __e asm("r0"); \
+ switch (sizeof(*(p))) { \
+ case 1: \
+- __put_user_x(__r1, __p, __e, 1, "r2", "lr"); \
++ __put_user_x(__r1, __p, __e, 1, "ip", "lr"); \
+ break; \
+ case 2: \
+- __put_user_x(__r1, __p, __e, 2, "r2", "lr"); \
++ __put_user_x(__r1, __p, __e, 2, "ip", "lr"); \
+ break; \
+ case 4: \
+- __put_user_x(__r1, __p, __e, 4, "r2", "lr"); \
++ __put_user_x(__r1, __p, __e, 4, "ip", "lr"); \
+ break; \
+ case 8: \
+ __put_user_x(__r1, __p, __e, 8, "ip", "lr"); \
diff --git a/patches/linux/2.4.26/linux-2.4.26-allow-gcc-3.4-arm-kernel.patch b/patches/linux/2.4.26/linux-2.4.26-allow-gcc-3.4-arm-kernel.patch
new file mode 100644
index 0000000..384926d
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4.26-allow-gcc-3.4-arm-kernel.patch
@@ -0,0 +1,23 @@
+Fixes
+semaphore.c:180:5: missing terminating " character
+semaphore.c:213:9: missing terminating " character
+make[1]: *** [semaphore.o] Error 1
+make[1]: Leaving directory `/home/dank/queue/jobdir.fast/crosstool-dev/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.2.5/linux-2.4.26/arch/arm/kernel'
+make: *** [_dir_arch/arm/kernel] Error 2
+
+when building kernel.org 2.4.26 for arm with gcc-3.3.x
+(Note: one probably wants to apply ftp://ftp.arm.linux.org.uk/pub/armlinux/source/kernel-patches/v2.4/patch-2.4.26-vrs1.bz2
+instead of my patches when really building 2.4.26 for arm;
+my patches only include the bare minimum to get the vanilla kernel to compile.)
+
+--- linux-2.4.26/arch/arm/kernel/semaphore.c.old Mon Mar 21 06:50:38 2005
++++ linux-2.4.26/arch/arm/kernel/semaphore.c Mon Mar 21 06:50:55 2005
+@@ -193,7 +193,7 @@
+ bl __down_interruptible \n\
+ mov ip, r0 \n\
+ ldmfd sp!, {r0 - r3, pc}^ \n\
+-
++ \n\
+ .align 5 \n\
+ .globl __down_trylock_failed \n\
+ __down_trylock_failed: \n\
diff --git a/patches/linux/2.4.26/linux-2.4.26-arm-nonofpu.patch b/patches/linux/2.4.26/linux-2.4.26-arm-nonofpu.patch
new file mode 100644
index 0000000..1dd0b5e
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4.26-arm-nonofpu.patch
@@ -0,0 +1,40 @@
+Backport of linux-2.6.8-arm-nonofpu.patch.
+Fixes error when building linux-2.4.26 kernel with gcc-3.4 on arm.
+
+/opt/crosstool/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/bin/arm-unknown-linux-gnu-gcc -D__KERNEL__ -I/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/include -Wall -Wstrict-prototypes -Wno-trigraphs -Os -fno-strict-aliasing -fno-common -Uarm -fno-common -pipe -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4 -mtune=strongarm110 -mshort-load-bytes -msoft-float -Uarm -S -o constants.h.tmp.1 getconstants.c
+cc1: error: invalid option `short-load-bytes'
+make[2]: *** [constants.h] Error 1
+make[2]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/arch/arm/tools'
+make[1]: *** [dep] Error 2
+make[1]: Leaving directory `/home/dank/wk/crosstool-0.28-rc37/build/arm-unknown-linux-gnu/gcc-3.4.2-glibc-2.2.5/linux-2.4.26/arch/arm/tools'
+make: *** [archdep] Error 2
+
+
+--- linux-2.4.26/Makefile.old Thu Sep 30 23:21:14 2004
++++ linux-2.4.26/Makefile Thu Sep 30 23:24:12 2004
+@@ -21,6 +21,10 @@
+
+ CROSS_COMPILE =
+
++# From linux-2.6
++check_gcc = $(shell if $(CC) $(CFLAGS) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi ;)
++export check_gcc
++
+ #
+ # Include the make variables (CC, etc...)
+ #
+--- linux-2.4.26/arch/arm/Makefile.old Thu Sep 30 23:16:49 2004
++++ linux-2.4.26/arch/arm/Makefile Thu Sep 30 23:25:27 2004
+@@ -50,9 +50,9 @@
+ tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
+ tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
+
+-CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
+-CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
+-AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
++CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Uarm
++CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Uarm
++AFLAGS +=$(apcs-y) $(arch-y) -msoft-float
+
+ ifeq ($(CONFIG_CPU_26),y)
+ PROCESSOR := armo
diff --git a/patches/linux/2.4.26/linux-2.4.26-mkdep-xargs.patch b/patches/linux/2.4.26/linux-2.4.26-mkdep-xargs.patch
new file mode 100644
index 0000000..60c68ef
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4.26-mkdep-xargs.patch
@@ -0,0 +1,28 @@
+About ten times, various people have noticed that 'make dep' uses
+really, really long commandlines. This breaks sh even on linux sometimes.
+
+For 2.4, see e.g.
+http://marc.theaimsgroup.com/?l=linux-kernel&m=96589814004919&w=2
+http://marc.theaimsgroup.com/?l=linux-kernel&m=96589814004919&q=p3
+http://www.xraylith.wisc.edu/~khan/software/gnu-win32/cygwin-to-linux-cross-howto.txt
+http://www.uclinux.org/pub/uClinux/archive/1728.html
+
+Fixes error when building linux kernel for some default arm configurations:
+
+scripts/mkdep -- `find /home/dank/wk/crosstool-0.28-rc36/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.2/linux-2.4.26/include/asm /home/dank/wk/crosstool-0.28-rc36/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.2/linux-2.4.26/include/linux /home/dank/wk/crosstool-0.28-rc36/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.2/linux-2.4.26/include/scsi /home/dank/wk/crosstool-0.28-rc36/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.2/linux-2.4.26/include/net /home/dank/wk/crosstool-0.28-rc36/build/arm-unknown-linux-gnu/gcc-3.3.4-glibc-2.3.2/linux-2.4.26/include/math-emu \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
+/bin/sh: line 1: scripts/mkdep: Argument list too long
+make: *** [dep-files] Error 126
+
+[ For linux-2.4.26 ]
+
+--- linux-2.4.26/Makefile.old 2004-04-14 06:05:41.000000000 -0700
++++ linux-2.4.26/Makefile 2004-09-13 21:27:39.000000000 -0700
+@@ -500,7 +500,7 @@
+ ifdef CONFIG_MODVERSIONS
+ $(MAKE) update-modverfile
+ endif
+- scripts/mkdep -- `find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print` > .hdepend
++ find $(FINDHPATH) \( -name SCCS -o -name .svn \) -prune -o -follow -name \*.h ! -name modversions.h -print | xargs scripts/mkdep | cat > .hdepend
+ scripts/mkdep -- init/*.c > .depend
+
+ ifdef CONFIG_MODVERSIONS
diff --git a/patches/linux/2.4.26/linux-2.4.26-wdt977-uaccess.patch b/patches/linux/2.4.26/linux-2.4.26-wdt977-uaccess.patch
new file mode 100644
index 0000000..3dc0a48
--- /dev/null
+++ b/patches/linux/2.4.26/linux-2.4.26-wdt977-uaccess.patch
@@ -0,0 +1,17 @@
+Fixes drivers/char/char.o(.text+0x178a4): In function `$a':
+: undefined reference to `get_user'
+
+Part of ftp://ftp.arm.linux.org.uk/pub/armlinux/source/kernel-patches/v2.4/patch-2.4.26-vrs1.bz2
+
+diff -urN linux-2.4.26/drivers/char/wdt977.c linux-2.4.26-vrs1/drivers/char/wdt977.c
+--- linux-2.4.26/drivers/char/wdt977.c 2002-11-28 23:53:12.000000000 +0000
++++ linux-2.4.26-vrs1/drivers/char/wdt977.c 2004-01-14 21:32:25.000000000 +0000
+@@ -27,6 +27,7 @@
+ #include <asm/io.h>
+ #include <asm/system.h>
+ #include <asm/mach-types.h>
++#include <asm/uaccess.h>
+
+ #define WATCHDOG_MINOR 130
+
+
diff --git a/patches/linux/2.6.11.3/arch_alpha_kernel_srcons.patch b/patches/linux/2.6.11.3/arch_alpha_kernel_srcons.patch
new file mode 100644
index 0000000..c163a1e
--- /dev/null
+++ b/patches/linux/2.6.11.3/arch_alpha_kernel_srcons.patch
@@ -0,0 +1,134 @@
+Date: Sun, 20 Mar 2005 20:26:02 -0800
+From: Richard Henderson <rth@twiddle.net>
+To: Andrew Morton <akpm@osdl.org>
+Cc: Dan Kegel <dank@kegel.com>, jbglaw@lug-owl.de,
+ linux-kernel@vger.kernel.org, torvalds@osdl.org
+Subject: Re: 2.6.11.3 build problem in arch/alpha/kernel/srcons.c with gcc-4.0
+Message-ID: <20050321042602.GA3795@twiddle.net>
+Mail-Followup-To: Andrew Morton <akpm@osdl.org>, Dan Kegel <dank@kegel.com>,
+ jbglaw@lug-owl.de, linux-kernel@vger.kernel.org, torvalds@osdl.org
+References: <423E238F.3030805@kegel.com> <20050320190352.65cc1396.akpm@osdl.org>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=us-ascii
+Content-Disposition: inline
+In-Reply-To: <20050320190352.65cc1396.akpm@osdl.org>
+User-Agent: Mutt/1.4.1i
+
+On Sun, Mar 20, 2005 at 07:03:52PM -0800, Andrew Morton wrote:
+> Dan Kegel <dank@kegel.com> wrote:
+> >
+> > Anyone with an alpha care to suggest a fix for this?
+> >
+> > arch/alpha/kernel/srmcons.c: In function 'srmcons_open':
+> > arch/alpha/kernel/srmcons.c:196: warning: 'srmconsp' may be used uninitialized in this function
+> > make[1]: *** [arch/alpha/kernel/srmcons.o] Error 1
+> > make: *** [arch/alpha/kernel] Error 2
+> >
+> > I get this when building the 2.6.11.3 kernel with a recent gcc-4.0 snapshot.
+> >
+>
+> It's beyond gcc's ability to figure out that the code is OK. Options would
+> be to disable -Werror, or to artificially initialise that variable.
+
+Fixed thus.
+
+Note that even with a _raw_read_trylock implementation, smp still
+doesn't work. Everything that init spawns dies immediately. I
+havn't had a chance to find out why yet...
+
+[ Note: deleted changes to smp.c, since they didn't apply cleanly
+ to 2.6.11.3 (the function had moved, I guess), and they seemed unrelated.]
+
+r~
+
+
+
+You can import this changeset into BK by piping this whole message to:
+'| bk receive [path to repository]' or apply the patch as usual.
+
+===================================================================
+
+
+ChangeSet@1.2289, 2005-03-20 12:29:41-08:00, rth@kanga.twiddle.home
+ [ALPHA] Elimitate two warnings from gcc4.
+
+
+ smp.c | 43 -------------------------------------------
+ srmcons.c | 27 ++++++++++-----------------
+ 2 files changed, 10 insertions(+), 60 deletions(-)
+
+
+diff -Nru a/arch/alpha/kernel/srmcons.c b/arch/alpha/kernel/srmcons.c
+--- a/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00
++++ b/arch/alpha/kernel/srmcons.c 2005-03-20 20:23:28 -08:00
+@@ -164,29 +164,22 @@
+ unsigned long flags;
+ int retval = 0;
+
+- spin_lock_irqsave(&srmconsp_lock, flags);
+-
+- do {
+- if (srmconsp != NULL) {
+- *ps = srmconsp;
+- break;
+- }
++ if (srmconsp == NULL) {
++ spin_lock_irqsave(&srmconsp_lock, flags);
+
+ srmconsp = kmalloc(sizeof(*srmconsp), GFP_KERNEL);
+- if (srmconsp == NULL) {
++ if (srmconsp == NULL)
+ retval = -ENOMEM;
+- break;
++ else {
++ srmconsp->tty = NULL;
++ spin_lock_init(&srmconsp->lock);
++ init_timer(&srmconsp->timer);
+ }
+
+- srmconsp->tty = NULL;
+- spin_lock_init(&srmconsp->lock);
+- init_timer(&srmconsp->timer);
+-
+- *ps = srmconsp;
+- } while(0);
+-
+- spin_unlock_irqrestore(&srmconsp_lock, flags);
++ spin_unlock_irqrestore(&srmconsp_lock, flags);
++ }
+
++ *ps = srmconsp;
+ return retval;
+ }
+
+
+===================================================================
+
+
+This BitKeeper patch contains the following changesets:
+1.2289
+## Wrapped with gzip_uu ##
+
+
+M'XL( $!,/D( [56[V_;-A#]+/X5!Q38FFV628KZY<!!TJ98BP9;D"&?BL)@
+M),H6+%$:2=DQIOWO)>4XSH8D1KK%-F#@>'J\]^[>V6_@6@LU\919H#?PL=%F
+MXG$E?+,N\[P2OA3&QJ^:QL;'BZ868YLY?O=YS&_;$?4C9$\ON<D6L!)*3SSB
+M!_<1LVG%Q+OZ\.OUQ=D50M,IO%]P.1=_" /3*3*-6O$JUZ?<+*I&^D9QJ6MA
+MN)\U=7^?VE.,J7V') YP&/4DPBSN,Y(3PAD1.:8LB=@>3:P:O]%YY3=J_D^4
+M$ <DH4&0!LRBL"A YT!\2I,4<#C&P9AB('1"TPDC(YQ,, 9+]G1I(?B]($X#
+M^)G""*-W\/]2>(\R^')V<?GQ["M\J,JZ--P(,.L&UES)4LXU%*JI89YES$>?
+M@82,8'2Y5Q6-7OA""'.,3AZA:?O><Y4MQKQJ%WR\%$J*:JQ5G352^YEC%&!"
+ML664!%%/+:^PCW-:I 7)XUSDE*;Q$_(= K9]<FK1E(0]HPPS6^'S2C\"6+=;
+ML#O=&::T#^*8QGU*;D@>)3BWJA?I3?Z"*G>@#RND49R&PW0_0\O-^RN)C,R\
+MNCVM2MD9U<CRUL_%EYU:7P]+32@A$644]RQ,*!TL0>B_#4'" X8@&$8D?A5+
+M7(FU*JT1[@J?S869M:I<67/,M%%=9D!W;MTLN(&?6@VE!EZM^4:#>] (Z<RR
+M':3?8:36P\<._^5S'?L.+YV3*(88?;*4@"*O+.#M'5QK^P^_75]<',%?R/-T
+M6\I9U63+6:G^U'PEWOZP2QS"OT!1\;D^.K:0<03$0;HO[W%,EY5LLQ)@-DM4
+M6@P7>;O<T8DQ&]CF'P\'^Q)D:?;WCTY<\&C(<2<S4]9"/3P? D-I"8'$7IHD
+MCNT6L9,[6DIH.PI/,_/^=H^FCI7KV737WO;X*2\Y\QW^W?A/JP#==')YJDVG
+M+=HA'SU8!H1AS!@-^X"F=LJ<AT+R8@]9"['@52QT+BKA'%2W,]-):YML(?+.
+M[HSY,90&\D9H^:,!GIF.5]4&6J&*1M7 Y08Z+8JNLB!%)S-3-M)%:]M:YZKM
+I\COL*J?5=SG*3;1=2J%3<?]?PY:?+7573PFE(L5)@+X!A'U=W,@(
+
+
+
diff --git a/patches/linux/2.6.11.3/kaz-types.patch b/patches/linux/2.6.11.3/kaz-types.patch
new file mode 100644
index 0000000..ec5de36
--- /dev/null
+++ b/patches/linux/2.6.11.3/kaz-types.patch
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+ from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+ kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h Wed Mar 5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h Sat Apr 19 10:05:52 2003
+@@ -141,6 +141,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef __KERNEL__
+ /*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+@@ -152,5 +153,6 @@
+ char f_fname[6];
+ char f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-i386.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-i386.patch
new file mode 100644
index 0000000..1193a8c
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-i386.patch
@@ -0,0 +1,150 @@
+Fixes
+
+In file included from include/asm/thread_info.h:16,
+ from include/linux/thread_info.h:21,
+ from include/linux/spinlock.h:12,
+ from include/linux/capability.h:45,
+ from include/linux/sched.h:7,
+ from arch/i386/kernel/asm-offsets.c:7:
+include/asm/processor.h:87: error: array type has incomplete element type
+make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1
+
+--- linux-2.6.11.3/include/asm-i386/processor.h.old Tue Mar 15 06:45:26 2005
++++ linux-2.6.11.3/include/asm-i386/processor.h Tue Mar 15 06:46:45 2005
+@@ -81,6 +81,64 @@
+ #define X86_VENDOR_UNKNOWN 0xff
+
+ /*
++ * Size of io_bitmap.
++ */
++#define IO_BITMAP_BITS 65536
++#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
++#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
++#define INVALID_IO_BITMAP_OFFSET 0x8000
++#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
++
++struct tss_struct {
++ unsigned short back_link,__blh;
++ unsigned long esp0;
++ unsigned short ss0,__ss0h;
++ unsigned long esp1;
++ unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */
++ unsigned long esp2;
++ unsigned short ss2,__ss2h;
++ unsigned long __cr3;
++ unsigned long eip;
++ unsigned long eflags;
++ unsigned long eax,ecx,edx,ebx;
++ unsigned long esp;
++ unsigned long ebp;
++ unsigned long esi;
++ unsigned long edi;
++ unsigned short es, __esh;
++ unsigned short cs, __csh;
++ unsigned short ss, __ssh;
++ unsigned short ds, __dsh;
++ unsigned short fs, __fsh;
++ unsigned short gs, __gsh;
++ unsigned short ldt, __ldth;
++ unsigned short trace, io_bitmap_base;
++ /*
++ * The extra 1 is there because the CPU will access an
++ * additional byte beyond the end of the IO permission
++ * bitmap. The extra byte must be all 1 bits, and must
++ * be within the limit.
++ */
++ unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
++ /*
++ * Cache the current maximum and the last task that used the bitmap:
++ */
++ unsigned long io_bitmap_max;
++ struct thread_struct *io_bitmap_owner;
++ /*
++ * pads the TSS to be cacheline-aligned (size is 0x100)
++ */
++ unsigned long __cacheline_filler[35];
++ /*
++ * .. and then another 0x100 bytes for emergency kernel stack
++ */
++ unsigned long stack[64];
++} __attribute__((packed));
++
++#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
++#define ARCH_MIN_TASKALIGN 16
++
++/*
+ * capabilities of CPUs
+ */
+
+@@ -308,16 +366,6 @@
+
+ #define HAVE_ARCH_PICK_MMAP_LAYOUT
+
+-/*
+- * Size of io_bitmap.
+- */
+-#define IO_BITMAP_BITS 65536
+-#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
+-#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
+-#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
+-#define INVALID_IO_BITMAP_OFFSET 0x8000
+-#define INVALID_IO_BITMAP_OFFSET_LAZY 0x9000
+-
+ struct i387_fsave_struct {
+ long cwd;
+ long swd;
+@@ -371,54 +419,6 @@
+ } mm_segment_t;
+
+ struct thread_struct;
+-
+-struct tss_struct {
+- unsigned short back_link,__blh;
+- unsigned long esp0;
+- unsigned short ss0,__ss0h;
+- unsigned long esp1;
+- unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */
+- unsigned long esp2;
+- unsigned short ss2,__ss2h;
+- unsigned long __cr3;
+- unsigned long eip;
+- unsigned long eflags;
+- unsigned long eax,ecx,edx,ebx;
+- unsigned long esp;
+- unsigned long ebp;
+- unsigned long esi;
+- unsigned long edi;
+- unsigned short es, __esh;
+- unsigned short cs, __csh;
+- unsigned short ss, __ssh;
+- unsigned short ds, __dsh;
+- unsigned short fs, __fsh;
+- unsigned short gs, __gsh;
+- unsigned short ldt, __ldth;
+- unsigned short trace, io_bitmap_base;
+- /*
+- * The extra 1 is there because the CPU will access an
+- * additional byte beyond the end of the IO permission
+- * bitmap. The extra byte must be all 1 bits, and must
+- * be within the limit.
+- */
+- unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
+- /*
+- * Cache the current maximum and the last task that used the bitmap:
+- */
+- unsigned long io_bitmap_max;
+- struct thread_struct *io_bitmap_owner;
+- /*
+- * pads the TSS to be cacheline-aligned (size is 0x100)
+- */
+- unsigned long __cacheline_filler[35];
+- /*
+- * .. and then another 0x100 bytes for emergency kernel stack
+- */
+- unsigned long stack[64];
+-} __attribute__((packed));
+-
+-#define ARCH_MIN_TASKALIGN 16
+
+ struct thread_struct {
+ /* cached TLS descriptors. */
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-m68k.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-m68k.patch
new file mode 100644
index 0000000..b349ee0
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-m68k.patch
@@ -0,0 +1,32 @@
+Fixes
+
+In file included from include/asm/setup.h:8,
+ from include/asm/machdep.h:8,
+ from include/asm/irq.h:6,
+ from include/asm/hardirq.h:8,
+ from include/linux/hardirq.h:6,
+ from include/asm-generic/local.h:6,
+ from include/asm/local.h:4,
+ from include/linux/module.h:21,
+ from init/main.c:16:
+include/asm-m68k/setup.h:365: error: array type has incomplete element type
+
+when compiling with gcc-4.0. (Affects ppc, too, for some reason.)
+
+--- linux-2.6.11.3/include/asm-m68k/setup.h.old Fri Mar 18 13:48:03 2005
++++ linux-2.6.11.3/include/asm-m68k/setup.h Fri Mar 18 13:48:14 2005
+@@ -362,12 +362,13 @@
+ #ifndef __ASSEMBLY__
+ extern int m68k_num_memory; /* # of memory blocks found (and used) */
+ extern int m68k_realnum_memory; /* real # of memory blocks found */
+-extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
+
+ struct mem_info {
+ unsigned long addr; /* physical address of memory chunk */
+ unsigned long size; /* length of memory chunk (in bytes) */
+ };
++
++extern struct mem_info m68k_memory[NUM_MEMINFO];/* memory description */
+ #endif
+
+ #endif /* __KERNEL__ */
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-ppc64.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-ppc64.patch
new file mode 100644
index 0000000..58e376d
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-ppc64.patch
@@ -0,0 +1,30 @@
+Fixes
+
+In file included from include/asm/current.h:4,
+ from include/linux/wait.h:27,
+ from include/asm/semaphore.h:15,
+ from include/linux/sched.h:19,
+ from arch/ppc64/kernel/asm-offsets.c:18:
+include/asm/paca.h:25: error: array type has incomplete element type
+make[1]: *** [arch/ppc64/kernel/asm-offsets.s] Error 1
+
+when building with gcc-4.0
+
+--- linux-2.6.11.3/include/asm-ppc64/paca.h.old Fri Mar 18 13:23:40 2005
++++ linux-2.6.11.3/include/asm-ppc64/paca.h Fri Mar 18 13:24:04 2005
+@@ -22,7 +22,6 @@
+ #include <asm/iSeries/ItLpRegSave.h>
+ #include <asm/mmu.h>
+
+-extern struct paca_struct paca[];
+ register struct paca_struct *local_paca asm("r13");
+ #define get_paca() local_paca
+
+@@ -114,5 +113,7 @@
+ struct ItLpRegSave reg_save;
+ #endif
+ };
++
++extern struct paca_struct paca[];
+
+ #endif /* _PPC64_PACA_H */
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-x86_64.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-x86_64.patch
new file mode 100644
index 0000000..a87e12e
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-asm-x86_64.patch
@@ -0,0 +1,28 @@
+Fixes:
+
+In file included from include/linux/spinlock.h:16,
+ from include/linux/capability.h:45,
+ from include/linux/sched.h:7,
+ from arch/x86_64/kernel/asm-offsets.c:7:
+include/asm/processor.h:79: error: array type has incomplete element type
+make[1]: *** [arch/x86_64/kernel/asm-offsets.asm] Error 1
+
+--- linux-2.6.11.3/include/asm-x86_64/processor.h.old Tue Mar 15 07:05:07 2005
++++ linux-2.6.11.3/include/asm-x86_64/processor.h Tue Mar 15 07:09:53 2005
+@@ -179,7 +179,6 @@
+ #define IO_BITMAP_BITS 65536
+ #define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
+ #define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
+-#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
+ #define INVALID_IO_BITMAP_OFFSET 0x8000
+
+ struct i387_fxsave_struct {
+@@ -222,6 +221,8 @@
+ */
+ unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
+ } __attribute__((packed)) ____cacheline_aligned;
++
++#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
+
+ extern struct cpuinfo_x86 boot_cpu_data;
+ DECLARE_PER_CPU(struct tss_struct,init_tss);
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-i2c.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-i2c.patch
new file mode 100644
index 0000000..c1df43d
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-i2c.patch
@@ -0,0 +1,58 @@
+Fixes
+
+In file included from fs/compat_ioctl.c:69,
+ from arch/ppc64/kernel/ioctl32.c:24:
+include/linux/i2c.h:58: error: array type has incomplete element type
+include/linux/i2c.h:197: error: array type has incomplete element type
+
+when compiling with gcc-4.0.
+
+--- linux-2.6.11.3/include/linux/i2c.h.old 2005-03-19 10:59:09.000000000 -0800
++++ linux-2.6.11.3/include/linux/i2c.h 2005-03-19 11:01:37.000000000 -0800
+@@ -36,7 +36,22 @@
+
+ /* --- General options ------------------------------------------------ */
+
+-struct i2c_msg;
++/*
++ * I2C Message - used for pure i2c transaction, also from /dev interface
++ */
++struct i2c_msg {
++ __u16 addr; /* slave address */
++ __u16 flags;
++#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
++#define I2C_M_RD 0x01
++#define I2C_M_NOSTART 0x4000
++#define I2C_M_REV_DIR_ADDR 0x2000
++#define I2C_M_IGNORE_NAK 0x1000
++#define I2C_M_NO_RD_ACK 0x0800
++ __u16 len; /* msg length */
++ __u8 *buf; /* pointer to msg data */
++};
++
+ struct i2c_algorithm;
+ struct i2c_adapter;
+ struct i2c_client;
+@@ -379,22 +394,6 @@
+ /* Return 1 if adapter supports everything we need, 0 if not. */
+ extern int i2c_check_functionality (struct i2c_adapter *adap, u32 func);
+
+-/*
+- * I2C Message - used for pure i2c transaction, also from /dev interface
+- */
+-struct i2c_msg {
+- __u16 addr; /* slave address */
+- __u16 flags;
+-#define I2C_M_TEN 0x10 /* we have a ten bit chip address */
+-#define I2C_M_RD 0x01
+-#define I2C_M_NOSTART 0x4000
+-#define I2C_M_REV_DIR_ADDR 0x2000
+-#define I2C_M_IGNORE_NAK 0x1000
+-#define I2C_M_NO_RD_ACK 0x0800
+- __u16 len; /* msg length */
+- __u8 *buf; /* pointer to msg data */
+-};
+-
+ /* To determine what functionality is present */
+
+ #define I2C_FUNC_I2C 0x00000001
diff --git a/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-ppc-mikpe.patch b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-ppc-mikpe.patch
new file mode 100644
index 0000000..60f02e3
--- /dev/null
+++ b/patches/linux/2.6.11.3/linux-2.6.11-allow-gcc-4.0-ppc-mikpe.patch
@@ -0,0 +1,86 @@
+
+Fixes
+
+In file included from arch/ppc/kernel/time.c:68:
+arch/ppc/kernel/time.c:92: error: static declaration of 'time_offset' follows non-static declaration
+include/linux/timex.h:236: error: previous declaration of 'time_offset' was here
+make[1]: *** [arch/ppc/kernel/time.o] Error 1
+
+when compiling with gcc-4.0
+
+Taken from
+http://user.it.uu.se/~mikpe/linux/patches/2.6/patch-gcc4-fixes-v2-2.6.11
+Also removes some obsolete externs that caused problems for Mike
+Mike's patch has a bit more stuff in it, but this was enough for me
+
+
+diff -rupN linux-2.6.11/arch/ppc/kernel/time.c linux-2.6.11.gcc4-fixes-v2/arch/ppc/kernel/time.c
+--- linux-2.6.11/arch/ppc/kernel/time.c 2005-03-02 19:24:14.000000000 +0100
++++ linux-2.6.11.gcc4-fixes-v2/arch/ppc/kernel/time.c 2005-03-02 19:36:26.000000000 +0100
+@@ -89,7 +89,7 @@ unsigned long tb_to_ns_scale;
+
+ extern unsigned long wall_jiffies;
+
+-static long time_offset;
++static long ppc_time_offset;
+
+ DEFINE_SPINLOCK(rtc_lock);
+
+@@ -172,7 +172,7 @@ void timer_interrupt(struct pt_regs * re
+ xtime.tv_sec - last_rtc_update >= 659 &&
+ abs((xtime.tv_nsec / 1000) - (1000000-1000000/HZ)) < 500000/HZ &&
+ jiffies - wall_jiffies == 1) {
+- if (ppc_md.set_rtc_time(xtime.tv_sec+1 + time_offset) == 0)
++ if (ppc_md.set_rtc_time(xtime.tv_sec+1 + ppc_time_offset) == 0)
+ last_rtc_update = xtime.tv_sec+1;
+ else
+ /* Try again one minute later */
+@@ -289,7 +289,7 @@ void __init time_init(void)
+ unsigned old_stamp, stamp, elapsed;
+
+ if (ppc_md.time_init != NULL)
+- time_offset = ppc_md.time_init();
++ ppc_time_offset = ppc_md.time_init();
+
+ if (__USE_RTC()) {
+ /* 601 processor: dec counts down by 128 every 128ns */
+@@ -334,10 +334,10 @@ void __init time_init(void)
+ set_dec(tb_ticks_per_jiffy);
+
+ /* If platform provided a timezone (pmac), we correct the time */
+- if (time_offset) {
+- sys_tz.tz_minuteswest = -time_offset / 60;
++ if (ppc_time_offset) {
++ sys_tz.tz_minuteswest = -ppc_time_offset / 60;
+ sys_tz.tz_dsttime = 0;
+- xtime.tv_sec -= time_offset;
++ xtime.tv_sec -= ppc_time_offset;
+ }
+ set_normalized_timespec(&wall_to_monotonic,
+ -xtime.tv_sec, -xtime.tv_nsec);
+diff -rupN linux-2.6.11/arch/ppc/syslib/open_pic_defs.h linux-2.6.11.gcc4-fixes-v2/arch/ppc/syslib/open_pic_defs.h
+--- linux-2.6.11/arch/ppc/syslib/open_pic_defs.h 2005-03-02 19:24:14.000000000 +0100
++++ linux-2.6.11.gcc4-fixes-v2/arch/ppc/syslib/open_pic_defs.h 2005-03-02 19:36:26.000000000 +0100
+@@ -172,9 +172,6 @@ struct OpenPIC {
+ OpenPIC_Processor Processor[OPENPIC_MAX_PROCESSORS];
+ };
+
+-extern volatile struct OpenPIC __iomem *OpenPIC;
+-
+-
+ /*
+ * Current Task Priority Register
+ */
+diff -rupN linux-2.6.11/include/asm-ppc/prom.h linux-2.6.11.gcc4-fixes-v2/include/asm-ppc/prom.h
+--- linux-2.6.11/include/asm-ppc/prom.h 2003-09-28 12:19:57.000000000 +0200
++++ linux-2.6.11.gcc4-fixes-v2/include/asm-ppc/prom.h 2005-03-02 19:36:26.000000000 +0100
+@@ -13,9 +13,6 @@
+ typedef void *phandle;
+ typedef void *ihandle;
+
+-extern char *prom_display_paths[];
+-extern unsigned int prom_num_displays;
+-
+ struct address_range {
+ unsigned int space;
+ unsigned int address;
diff --git a/patches/linux/2.6.5/linux-2.6.5-x86_64-unistd.patch b/patches/linux/2.6.5/linux-2.6.5-x86_64-unistd.patch
new file mode 100644
index 0000000..829f0d9
--- /dev/null
+++ b/patches/linux/2.6.5/linux-2.6.5-x86_64-unistd.patch
@@ -0,0 +1,80 @@
+Retrieved with wget http://www.x86-64.org/lists/discuss/msg04963.html
+then tabs fixed up by rediffing
+
+Message-Id: EFF62C7EE88E71429E38641A1172F4C2077104@net.teracruz.com
+To: discuss@xxxxxxxxxx
+Subject: Compile error with glibc 2.3.2 + Linux 2.6.5 ARCH=x86_64
+From: "David Lee" david.lee@xxxxxxxxxxxx
+Date: Wed, 21 Apr 2004 15:26:04 -0500</li>
+
+I am getting compiler errors when trying to compile glibc 2.3.2 using
+the kernel headers from linux 2.6.5. The headers from linux 2.6.3 work
+fine.
+
+I've traced the cause of the problem to a change made in
+./include/asm-x86_64/unistd.h in the 2.6.4 release.
+
++#ifndef __ASSEMBLY__
++
++#include <linux/linkage.h>
++#include <linux/compiler.h>
++#include <linux/types.h>
++#include <asm/ptrace.h>
++
++asmlinkage long sys_ptrace(long request, long pid,
++ unsigned long addr, long data);
++asmlinkage long sys_iopl(unsigned int level, struct pt_regs regs);
++asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int
+turn_on);
++struct sigaction;
++asmlinkage long sys_rt_sigaction(int sig,
++ const struct sigaction __user *act,
++ struct sigaction __user *oact,
++ size_t sigsetsize);
++
++#endif /* __ASSEMBLY__ */
+
+Within glibc, ./sysdeps/unix/sysv/linux/x86_64/syscall.S ends up
+including this file, which chokes the assembler with the struct
+declarations in the above #include's.
+
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/posix_types.h: Assembler messages:
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/posix_types.h:36: Error: no such
+instruction: `typedef struct{'
+
+There are also errors about conflicting re-declarations further along in
+the glibc build.
+
+../posix/sys/types.h:62: error: conflicting types for `dev_t'
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/types.h:23: error: previous declaration of
+`dev_t'
+
+Changing the '#ifndef __ASSEMBLY__' to '#if ((!defined __ASSEMBLY__) &&
+(defined __KERNEL__))' clears up the problem. My patch is below.
+
+dave
+
+
+--- linux-2.6.5/include/asm-x86_64/unistd.h.old 2004-04-03 19:37:36.000000000 -0800
++++ linux-2.6.5/include/asm-x86_64/unistd.h 2004-05-05 11:07:11.000000000 -0700
+@@ -713,7 +713,7 @@
+
+ #endif /* __KERNEL_SYSCALLS__ */
+
+-#ifndef __ASSEMBLY__
++#if ((!defined __ASSEMBLY__) && (defined __KERNEL__))
+
+ #include <linux/linkage.h>
+ #include <linux/compiler.h>
+@@ -730,7 +730,7 @@
+ struct sigaction __user *oact,
+ size_t sigsetsize);
+
+-#endif /* __ASSEMBLY__ */
++#endif /* ((!defined __ASSEMBLY__) && (defined __KERNEL__) */
+
+ #endif /* __NO_STUBS */
+
diff --git a/patches/linux/2.6.6/kaz-types.patch b/patches/linux/2.6.6/kaz-types.patch
new file mode 100644
index 0000000..ec5de36
--- /dev/null
+++ b/patches/linux/2.6.6/kaz-types.patch
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+ from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+ kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h Wed Mar 5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h Sat Apr 19 10:05:52 2003
+@@ -141,6 +141,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef __KERNEL__
+ /*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+@@ -152,5 +153,6 @@
+ char f_fname[6];
+ char f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff --git a/patches/linux/2.6.6/linux-2.6.5-x86_64-unistd.patch b/patches/linux/2.6.6/linux-2.6.5-x86_64-unistd.patch
new file mode 100644
index 0000000..829f0d9
--- /dev/null
+++ b/patches/linux/2.6.6/linux-2.6.5-x86_64-unistd.patch
@@ -0,0 +1,80 @@
+Retrieved with wget http://www.x86-64.org/lists/discuss/msg04963.html
+then tabs fixed up by rediffing
+
+Message-Id: EFF62C7EE88E71429E38641A1172F4C2077104@net.teracruz.com
+To: discuss@xxxxxxxxxx
+Subject: Compile error with glibc 2.3.2 + Linux 2.6.5 ARCH=x86_64
+From: "David Lee" david.lee@xxxxxxxxxxxx
+Date: Wed, 21 Apr 2004 15:26:04 -0500</li>
+
+I am getting compiler errors when trying to compile glibc 2.3.2 using
+the kernel headers from linux 2.6.5. The headers from linux 2.6.3 work
+fine.
+
+I've traced the cause of the problem to a change made in
+./include/asm-x86_64/unistd.h in the 2.6.4 release.
+
++#ifndef __ASSEMBLY__
++
++#include <linux/linkage.h>
++#include <linux/compiler.h>
++#include <linux/types.h>
++#include <asm/ptrace.h>
++
++asmlinkage long sys_ptrace(long request, long pid,
++ unsigned long addr, long data);
++asmlinkage long sys_iopl(unsigned int level, struct pt_regs regs);
++asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int
+turn_on);
++struct sigaction;
++asmlinkage long sys_rt_sigaction(int sig,
++ const struct sigaction __user *act,
++ struct sigaction __user *oact,
++ size_t sigsetsize);
++
++#endif /* __ASSEMBLY__ */
+
+Within glibc, ./sysdeps/unix/sysv/linux/x86_64/syscall.S ends up
+including this file, which chokes the assembler with the struct
+declarations in the above #include's.
+
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/posix_types.h: Assembler messages:
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/posix_types.h:36: Error: no such
+instruction: `typedef struct{'
+
+There are also errors about conflicting re-declarations further along in
+the glibc build.
+
+../posix/sys/types.h:62: error: conflicting types for `dev_t'
+/home/dlee/vcs/Products/Breeze/Dev/Prj/LinuxRH8/tscale2/tools/x86_64/x86
+_64-linux/glibcinclude/linux/types.h:23: error: previous declaration of
+`dev_t'
+
+Changing the '#ifndef __ASSEMBLY__' to '#if ((!defined __ASSEMBLY__) &&
+(defined __KERNEL__))' clears up the problem. My patch is below.
+
+dave
+
+
+--- linux-2.6.5/include/asm-x86_64/unistd.h.old 2004-04-03 19:37:36.000000000 -0800
++++ linux-2.6.5/include/asm-x86_64/unistd.h 2004-05-05 11:07:11.000000000 -0700
+@@ -713,7 +713,7 @@
+
+ #endif /* __KERNEL_SYSCALLS__ */
+
+-#ifndef __ASSEMBLY__
++#if ((!defined __ASSEMBLY__) && (defined __KERNEL__))
+
+ #include <linux/linkage.h>
+ #include <linux/compiler.h>
+@@ -730,7 +730,7 @@
+ struct sigaction __user *oact,
+ size_t sigsetsize);
+
+-#endif /* __ASSEMBLY__ */
++#endif /* ((!defined __ASSEMBLY__) && (defined __KERNEL__) */
+
+ #endif /* __NO_STUBS */
+
diff --git a/patches/linux/2.6.6/linux-2.6.8-noshared-kconfig.patch b/patches/linux/2.6.6/linux-2.6.8-noshared-kconfig.patch
new file mode 100644
index 0000000..326cdcd
--- /dev/null
+++ b/patches/linux/2.6.6/linux-2.6.8-noshared-kconfig.patch
@@ -0,0 +1,28 @@
+Lets you run 'make oldconfig' and 'make menuconfig' on systems
+where shared libraries aren't easy. (There's no harm in using the
+static version of libkconfig.)
+Idea mentioned by Bertrand Marquis, but this patch is a bit simpler than his.
+
+
+--- linux-2.6.8.1/scripts/kconfig/Makefile.old 2004-09-09 20:30:25.000000000 -0700
++++ linux-2.6.8.1/scripts/kconfig/Makefile 2004-09-09 20:47:51.000000000 -0700
+@@ -68,8 +68,8 @@
+ libkconfig-objs := zconf.tab.o
+
+ host-progs := conf mconf qconf gconf
+-conf-objs := conf.o libkconfig.so
+-mconf-objs := mconf.o libkconfig.so
++conf-objs := conf.o $(libkconfig-objs)
++mconf-objs := mconf.o $(libkconfig-objs)
+
+ ifeq ($(MAKECMDGOALS),xconfig)
+ qconf-target := 1
+@@ -88,7 +88,7 @@
+ gconf-objs := gconf.o kconfig_load.o
+ endif
+
+-clean-files := libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \
++clean-files := $(libkconfig-objs) lkc_defs.h qconf.moc .tmp_qtcheck \
+ .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c
+
+ # generated files seem to need this to find local include files
diff --git a/patches/linux/2.6.7/kaz-types.patch b/patches/linux/2.6.7/kaz-types.patch
new file mode 100644
index 0000000..ec5de36
--- /dev/null
+++ b/patches/linux/2.6.7/kaz-types.patch
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+ from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+ kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h Wed Mar 5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h Sat Apr 19 10:05:52 2003
+@@ -141,6 +141,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef __KERNEL__
+ /*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+@@ -152,5 +153,6 @@
+ char f_fname[6];
+ char f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff --git a/patches/linux/2.6.7/linux-2.6.7-build_on_case_insensitive_fs-1.patch b/patches/linux/2.6.7/linux-2.6.7-build_on_case_insensitive_fs-1.patch
new file mode 100644
index 0000000..c9e0dd3
--- /dev/null
+++ b/patches/linux/2.6.7/linux-2.6.7-build_on_case_insensitive_fs-1.patch
@@ -0,0 +1,679 @@
+Submitted By: Martin Schaffner <schaffner@gmx.li>
+Date: 2004-06-19
+Initial Package Version: 2.6.7
+Upstream Status: Not submitted
+Origin: Martin Schaffner
+Description: Enables build on case-insensitive file systems
+URL: http://mirror.vtx.ch/lfs/patches/downloads/linux/linux-2.6.7-build_on_case_insensitive_fs-1.patch
+
+diff -ur linux-2.6.7/Makefile linux-2.6.7-mod/Makefile
+--- linux-2.6.7/Makefile Fri Jun 18 22:51:03 2004
++++ linux-2.6.7-mod/Makefile Sat Jun 19 12:43:10 2004
+@@ -549,7 +549,7 @@
+ $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
+ endef
+
+-LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s
++LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.asm
+
+ # Generate section listing all symbols and add it into vmlinux
+ # It's a three stage process:
+@@ -575,23 +575,23 @@
+ .tmp_kallsyms%.S: .tmp_vmlinux%
+ $(call cmd,kallsyms)
+
+-.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ +$(call if_changed_rule,vmlinux__)
+
+-.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux__)
+
+ endif
+
+ # Finally the vmlinux rule
+
+-vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux)
+
+ # The actual objects are generated when descending,
+ # make sure no implicit rule kicks in
+
+-$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.s: $(vmlinux-dirs) ;
++$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.asm: $(vmlinux-dirs) ;
+
+ # Handle descending into subdirectories listed in $(vmlinux-dirs)
+
+@@ -640,7 +640,7 @@
+ # Single targets
+ # ---------------------------------------------------------------------------
+
+-%.s: %.c scripts FORCE
++%.asm: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+ %.i: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+@@ -650,7 +650,7 @@
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D)
+ %.lst: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+-%.s: %.S scripts FORCE
++%.asm: %.S scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+ %.o: %.S scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+diff -ur linux-2.6.7/arch/alpha/Makefile linux-2.6.7-mod/arch/alpha/Makefile
+--- linux-2.6.7/arch/alpha/Makefile Fri Jun 18 22:51:03 2004
++++ linux-2.6.7-mod/arch/alpha/Makefile Sat Jun 19 12:46:32 2004
+@@ -114,10 +114,10 @@
+
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/alpha/kernel/Makefile linux-2.6.7-mod/arch/alpha/kernel/Makefile
+--- linux-2.6.7/arch/alpha/kernel/Makefile Mon May 10 04:32:29 2004
++++ linux-2.6.7-mod/arch/alpha/kernel/Makefile Sat Jun 19 12:46:48 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o vmlinux.lds.s
++extra-y := head.o vmlinux.lds.asm
+ EXTRA_AFLAGS := $(CFLAGS)
+ EXTRA_CFLAGS := -Werror -Wno-sign-compare
+
+diff -ur linux-2.6.7/arch/arm/Makefile linux-2.6.7-mod/arch/arm/Makefile
+--- linux-2.6.7/arch/arm/Makefile Fri Jun 18 22:51:04 2004
++++ linux-2.6.7-mod/arch/arm/Makefile Sat Jun 19 12:47:07 2004
+@@ -175,10 +175,10 @@
+ i:; $(Q)$(MAKE) $(build)=$(boot) install
+ zi:; $(Q)$(MAKE) $(build)=$(boot) zinstall
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/asm-arm/.arch
+
+-include/asm-$(ARCH)/constants.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/constants.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/arm/kernel/Makefile linux-2.6.7-mod/arch/arm/kernel/Makefile
+--- linux-2.6.7/arch/arm/kernel/Makefile Mon May 10 04:33:19 2004
++++ linux-2.6.7-mod/arch/arm/kernel/Makefile Sat Jun 19 12:47:25 2004
+@@ -27,7 +27,7 @@
+ head-y := head.o
+ obj-$(CONFIG_DEBUG_LL) += debug.o
+
+-extra-y := $(head-y) init_task.o vmlinux.lds.s
++extra-y := $(head-y) init_task.o vmlinux.lds.asm
+
+ # Spell out some dependencies that aren't automatically figured out
+ $(obj)/entry-armv.o: $(obj)/entry-header.S include/asm-arm/constants.h
+diff -ur linux-2.6.7/arch/arm26/Makefile linux-2.6.7-mod/arch/arm26/Makefile
+--- linux-2.6.7/arch/arm26/Makefile Mon May 10 04:32:28 2004
++++ linux-2.6.7-mod/arch/arm26/Makefile Sat Jun 19 12:48:24 2004
+@@ -101,10 +101,10 @@
+ fi; \
+ )
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/arm26/kernel/Makefile linux-2.6.7-mod/arch/arm26/kernel/Makefile
+--- linux-2.6.7/arch/arm26/kernel/Makefile Mon May 10 04:32:29 2004
++++ linux-2.6.7-mod/arch/arm26/kernel/Makefile Sat Jun 19 12:48:30 2004
+@@ -14,5 +14,5 @@
+ obj-$(CONFIG_FIQ) += fiq.o
+ obj-$(CONFIG_MODULES) += armksyms.o
+
+-extra-y := init_task.o vmlinux.lds.s
++extra-y := init_task.o vmlinux.lds.asm
+
+diff -ur linux-2.6.7/arch/cris/Makefile linux-2.6.7-mod/arch/cris/Makefile
+--- linux-2.6.7/arch/cris/Makefile Fri Jun 18 22:51:07 2004
++++ linux-2.6.7-mod/arch/cris/Makefile Sat Jun 19 12:48:47 2004
+@@ -107,8 +107,8 @@
+ @ln -sf $(SARCH) include/asm-$(ARCH)/arch
+ @touch $@
+
+-arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/$(SARCH)/offset.h: arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/$(SARCH)/offset.h: arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+diff -ur linux-2.6.7/arch/cris/kernel/Makefile linux-2.6.7-mod/arch/cris/kernel/Makefile
+--- linux-2.6.7/arch/cris/kernel/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/cris/kernel/Makefile Sat Jun 19 12:48:53 2004
+@@ -3,7 +3,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y := process.o traps.o irq.o ptrace.o setup.o \
+ time.o sys_cris.o semaphore.o
+diff -ur linux-2.6.7/arch/h8300/Makefile linux-2.6.7-mod/arch/h8300/Makefile
+--- linux-2.6.7/arch/h8300/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/h8300/Makefile Sat Jun 19 12:49:12 2004
+@@ -64,7 +64,7 @@
+
+ prepare: include/asm-$(ARCH)/asm-offsets.h
+
+-include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
++include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm \
+ include/asm include/linux/version.h
+ $(call filechk,gen-asm-offsets)
+
+diff -ur linux-2.6.7/arch/h8300/kernel/Makefile linux-2.6.7-mod/arch/h8300/kernel/Makefile
+--- linux-2.6.7/arch/h8300/kernel/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/h8300/kernel/Makefile Sat Jun 19 12:49:32 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y := process.o traps.o ptrace.o ints.o \
+ sys_h8300.o time.o semaphore.o signal.o \
+diff -ur linux-2.6.7/arch/i386/Makefile linux-2.6.7-mod/arch/i386/Makefile
+--- linux-2.6.7/arch/i386/Makefile Fri Jun 18 22:51:10 2004
++++ linux-2.6.7-mod/arch/i386/Makefile Sat Jun 19 12:49:43 2004
+@@ -141,10 +141,10 @@
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+ CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/i386/kernel/Makefile linux-2.6.7-mod/arch/i386/kernel/Makefile
+--- linux-2.6.7/arch/i386/kernel/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/i386/kernel/Makefile Sat Jun 19 12:49:54 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \
+ ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_i386.o \
+diff -ur linux-2.6.7/arch/ia64/Makefile linux-2.6.7-mod/arch/ia64/Makefile
+--- linux-2.6.7/arch/ia64/Makefile Mon May 10 04:31:59 2004
++++ linux-2.6.7-mod/arch/ia64/Makefile Sat Jun 19 12:50:12 2004
+@@ -88,12 +88,12 @@
+
+ prepare: include/asm-ia64/offsets.h
+
+-arch/ia64/kernel/asm-offsets.s: include/asm include/linux/version.h include/config/MARKER
++arch/ia64/kernel/asm-offsets.asm: include/asm include/linux/version.h include/config/MARKER
+
+-include/asm-ia64/offsets.h: arch/ia64/kernel/asm-offsets.s
++include/asm-ia64/offsets.h: arch/ia64/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+-arch/ia64/kernel/asm-offsets.s: include/asm-ia64/.offsets.h.stamp
++arch/ia64/kernel/asm-offsets.asm: include/asm-ia64/.offsets.h.stamp
+
+ include/asm-ia64/.offsets.h.stamp:
+ mkdir -p include/asm-ia64
+diff -ur linux-2.6.7/arch/ia64/kernel/Makefile linux-2.6.7-mod/arch/ia64/kernel/Makefile
+--- linux-2.6.7/arch/ia64/kernel/Makefile Fri Jun 18 22:51:13 2004
++++ linux-2.6.7-mod/arch/ia64/kernel/Makefile Sat Jun 19 12:52:14 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := acpi.o entry.o efi.o efi_stub.o gate-data.o fsys.o ia64_ksyms.o irq.o irq_ia64.o \
+ irq_lsapic.o ivt.o machvec.o pal.o patch.o process.o perfmon.o ptrace.o sal.o \
+@@ -21,7 +21,7 @@
+ # The gate DSO image is built using a special linker script.
+ targets += gate.so gate-syms.o
+
+-extra-y += gate.so gate-syms.o gate.lds.s gate.o
++extra-y += gate.so gate-syms.o gate.lds.asm gate.o
+
+ # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
+ CFLAGS_traps.o += -mfixed-range=f2-f5,f16-f31
+@@ -32,14 +32,14 @@
+ cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
+
+ GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1
+-$(obj)/gate.so: $(obj)/gate.lds.s $(obj)/gate.o FORCE
++$(obj)/gate.so: $(obj)/gate.lds.asm $(obj)/gate.o FORCE
+ $(call if_changed,gate)
+
+ $(obj)/built-in.o: $(obj)/gate-syms.o
+ $(obj)/built-in.o: ld_flags += -R $(obj)/gate-syms.o
+
+ GATECFLAGS_gate-syms.o = -r
+-$(obj)/gate-syms.o: $(src)/gate.lds.s $(obj)/gate.o FORCE
++$(obj)/gate-syms.o: $(src)/gate.lds.asm $(obj)/gate.o FORCE
+ $(call if_changed,gate)
+
+ # gate-data.o contains the gate DSO image as data in section .data.gate.
+diff -ur linux-2.6.7/arch/m68k/Makefile linux-2.6.7-mod/arch/m68k/Makefile
+--- linux-2.6.7/arch/m68k/Makefile Fri Jun 18 22:51:14 2004
++++ linux-2.6.7-mod/arch/m68k/Makefile Sat Jun 19 12:52:30 2004
+@@ -114,10 +114,10 @@
+ prepare: include/asm-$(ARCH)/offsets.h
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/m68k/kernel/Makefile linux-2.6.7-mod/arch/m68k/kernel/Makefile
+--- linux-2.6.7/arch/m68k/kernel/Makefile Mon May 10 04:33:10 2004
++++ linux-2.6.7-mod/arch/m68k/kernel/Makefile Sat Jun 19 12:52:35 2004
+@@ -7,7 +7,7 @@
+ else
+ extra-y := sun3-head.o
+ endif
+-extra-y += vmlinux.lds.s
++extra-y += vmlinux.lds.asm
+
+ obj-y := entry.o process.o traps.o ints.o signal.o ptrace.o \
+ sys_m68k.o time.o semaphore.o setup.o m68k_ksyms.o
+diff -ur linux-2.6.7/arch/m68knommu/Makefile linux-2.6.7-mod/arch/m68knommu/Makefile
+--- linux-2.6.7/arch/m68knommu/Makefile Mon May 10 04:32:54 2004
++++ linux-2.6.7-mod/arch/m68knommu/Makefile Sat Jun 19 12:52:57 2004
+@@ -89,7 +89,7 @@
+ head-y := arch/m68knommu/platform/$(platform-y)/$(board-y)/crt0_$(model-y).o
+
+ CLEAN_FILES := include/asm-$(ARCH)/asm-offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s
++ arch/$(ARCH)/kernel/asm-offsets.asm
+
+ core-y += arch/m68knommu/kernel/ \
+ arch/m68knommu/mm/ \
+@@ -102,7 +102,7 @@
+ archclean:
+ $(call descend arch/$(ARCH)/boot, subdirclean)
+
+-include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
++include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm \
+ include/asm include/linux/version.h \
+ include/config/MARKER
+ $(call filechk,gen-asm-offsets)
+diff -ur linux-2.6.7/arch/m68knommu/kernel/Makefile linux-2.6.7-mod/arch/m68knommu/kernel/Makefile
+--- linux-2.6.7/arch/m68knommu/kernel/Makefile Mon May 10 04:32:26 2004
++++ linux-2.6.7-mod/arch/m68knommu/kernel/Makefile Sat Jun 19 12:53:20 2004
+@@ -2,7 +2,7 @@
+ # Makefile for arch/m68knommu/kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y += dma.o entry.o init_task.o m68k_ksyms.o process.o ptrace.o semaphore.o \
+ setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
+diff -ur linux-2.6.7/arch/mips/Makefile linux-2.6.7-mod/arch/mips/Makefile
+--- linux-2.6.7/arch/mips/Makefile Fri Jun 18 22:51:19 2004
++++ linux-2.6.7-mod/arch/mips/Makefile Sat Jun 19 12:53:35 2004
+@@ -752,12 +752,12 @@
+ prepare: include/asm-$(ARCH)/offset.h \
+ include/asm-$(ARCH)/reg.h
+
+-arch/$(ARCH)/kernel/offset.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/offset.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/offset.s
++include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/offset.asm
+ $(call filechk,gen-asm-offset.h)
+-include/asm-$(ARCH)/reg.h: arch/$(ARCH)/kernel/reg.s
++include/asm-$(ARCH)/reg.h: arch/$(ARCH)/kernel/reg.asm
+ $(call filechk,gen-asm-reg.h)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offset.h.tmp \
+diff -ur linux-2.6.7/arch/mips/kernel/Makefile linux-2.6.7-mod/arch/mips/kernel/Makefile
+--- linux-2.6.7/arch/mips/kernel/Makefile Mon May 10 04:32:28 2004
++++ linux-2.6.7-mod/arch/mips/kernel/Makefile Sat Jun 19 12:53:41 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the Linux/MIPS kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
+ ptrace.o reset.o semaphore.o setup.o signal.o syscall.o \
+diff -ur linux-2.6.7/arch/parisc/Makefile linux-2.6.7-mod/arch/parisc/Makefile
+--- linux-2.6.7/arch/parisc/Makefile Fri Jun 18 22:51:21 2004
++++ linux-2.6.7-mod/arch/parisc/Makefile Sat Jun 19 12:53:47 2004
+@@ -88,10 +88,10 @@
+
+ prepare: include/asm-parisc/offsets.h
+
+-arch/parisc/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/parisc/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-parisc/offsets.h: arch/parisc/kernel/asm-offsets.s
++include/asm-parisc/offsets.h: arch/parisc/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += lifimage include/asm-parisc/offsets.h
+diff -ur linux-2.6.7/arch/parisc/kernel/Makefile linux-2.6.7-mod/arch/parisc/kernel/Makefile
+--- linux-2.6.7/arch/parisc/kernel/Makefile Fri Jun 18 22:51:21 2004
++++ linux-2.6.7-mod/arch/parisc/kernel/Makefile Sat Jun 19 12:53:53 2004
+@@ -4,7 +4,7 @@
+
+ head-y := head.o
+ head-$(CONFIG_PARISC64) := head64.o
+-extra-y := init_task.o $(head-y) vmlinux.lds.s
++extra-y := init_task.o $(head-y) vmlinux.lds.asm
+
+ AFLAGS_entry.o := -traditional
+ AFLAGS_pacache.o := -traditional
+diff -ur linux-2.6.7/arch/ppc/Makefile linux-2.6.7-mod/arch/ppc/Makefile
+--- linux-2.6.7/arch/ppc/Makefile Fri Jun 18 22:51:22 2004
++++ linux-2.6.7-mod/arch/ppc/Makefile Sat Jun 19 12:54:09 2004
+@@ -78,10 +78,10 @@
+
+ prepare: include/asm-$(ARCH)/offsets.h checkbin
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ ifdef CONFIG_6xx
+@@ -104,4 +104,4 @@
+ endif
+
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s
++ arch/$(ARCH)/kernel/asm-offsets.asm
+diff -ur linux-2.6.7/arch/ppc/kernel/Makefile linux-2.6.7-mod/arch/ppc/kernel/Makefile
+--- linux-2.6.7/arch/ppc/kernel/Makefile Fri Jun 18 22:51:24 2004
++++ linux-2.6.7-mod/arch/ppc/kernel/Makefile Sat Jun 19 12:43:10 2004
+@@ -15,7 +15,7 @@
+ extra-$(CONFIG_8xx) := head_8xx.o
+ extra-$(CONFIG_6xx) += idle_6xx.o
+ extra-$(CONFIG_POWER4) += idle_power4.o
+-extra-y += vmlinux.lds.s
++extra-y += vmlinux.lds.asm
+
+ obj-y := entry.o traps.o irq.o idle.o time.o misc.o \
+ process.o signal.o ptrace.o align.o \
+diff -ur linux-2.6.7/arch/ppc64/Makefile linux-2.6.7-mod/arch/ppc64/Makefile
+--- linux-2.6.7/arch/ppc64/Makefile Fri Jun 18 22:51:26 2004
++++ linux-2.6.7-mod/arch/ppc64/Makefile Sat Jun 19 12:54:32 2004
+@@ -67,10 +67,10 @@
+
+ prepare: include/asm-ppc64/offsets.h
+
+-arch/ppc64/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/ppc64/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-ppc64/offsets.h: arch/ppc64/kernel/asm-offsets.s
++include/asm-ppc64/offsets.h: arch/ppc64/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/ppc64/kernel/Makefile linux-2.6.7-mod/arch/ppc64/kernel/Makefile
+--- linux-2.6.7/arch/ppc64/kernel/Makefile Mon May 10 04:33:20 2004
++++ linux-2.6.7-mod/arch/ppc64/kernel/Makefile Sat Jun 19 12:54:39 2004
+@@ -3,7 +3,7 @@
+ #
+
+ EXTRA_CFLAGS += -mno-minimal-toc
+-extra-y := head.o vmlinux.lds.s
++extra-y := head.o vmlinux.lds.asm
+
+ obj-y := setup.o entry.o traps.o irq.o idle.o dma.o \
+ time.o process.o signal.o syscalls.o misc.o ptrace.o \
+diff -ur linux-2.6.7/arch/s390/Makefile linux-2.6.7-mod/arch/s390/Makefile
+--- linux-2.6.7/arch/s390/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/s390/Makefile Sat Jun 19 12:54:46 2004
+@@ -68,10 +68,10 @@
+
+ prepare: include/asm-$(ARCH)/offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h
+diff -ur linux-2.6.7/arch/s390/kernel/Makefile linux-2.6.7-mod/arch/s390/kernel/Makefile
+--- linux-2.6.7/arch/s390/kernel/Makefile Mon May 10 04:33:20 2004
++++ linux-2.6.7-mod/arch/s390/kernel/Makefile Sat Jun 19 12:54:52 2004
+@@ -10,7 +10,7 @@
+
+ extra-$(CONFIG_ARCH_S390_31) += head.o
+ extra-$(CONFIG_ARCH_S390X) += head64.o
+-extra-y += init_task.o vmlinux.lds.s
++extra-y += init_task.o vmlinux.lds.asm
+
+ obj-$(CONFIG_MODULES) += s390_ksyms.o module.o
+ obj-$(CONFIG_SMP) += smp.o
+diff -ur linux-2.6.7/arch/sh/kernel/Makefile linux-2.6.7-mod/arch/sh/kernel/Makefile
+--- linux-2.6.7/arch/sh/kernel/Makefile Mon May 10 04:32:39 2004
++++ linux-2.6.7-mod/arch/sh/kernel/Makefile Sat Jun 19 12:55:33 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the Linux/SuperH kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o signal.o entry.o traps.o irq.o \
+ ptrace.o setup.o time.o sys_sh.o semaphore.o \
+diff -ur linux-2.6.7/arch/sparc/Makefile linux-2.6.7-mod/arch/sparc/Makefile
+--- linux-2.6.7/arch/sparc/Makefile Fri Jun 18 22:51:29 2004
++++ linux-2.6.7-mod/arch/sparc/Makefile Sat Jun 19 12:55:48 2004
+@@ -61,14 +61,14 @@
+
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s \
++ arch/$(ARCH)/kernel/asm-offsets.asm \
+ arch/$(ARCH)/boot/System.map
+
+ # Don't use tabs in echo arguments.
+diff -ur linux-2.6.7/arch/sparc/kernel/Makefile linux-2.6.7-mod/arch/sparc/kernel/Makefile
+--- linux-2.6.7/arch/sparc/kernel/Makefile Mon May 10 04:33:13 2004
++++ linux-2.6.7-mod/arch/sparc/kernel/Makefile Sat Jun 19 12:55:52 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ EXTRA_AFLAGS := -ansi
+
+diff -ur linux-2.6.7/arch/sparc64/kernel/Makefile linux-2.6.7-mod/arch/sparc64/kernel/Makefile
+--- linux-2.6.7/arch/sparc64/kernel/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/sparc64/kernel/Makefile Sat Jun 19 12:56:24 2004
+@@ -5,7 +5,7 @@
+ EXTRA_AFLAGS := -ansi
+ EXTRA_CFLAGS := -Werror
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o setup.o cpu.o idprom.o \
+ traps.o devices.o auxio.o \
+diff -ur linux-2.6.7/arch/um/Makefile linux-2.6.7-mod/arch/um/Makefile
+--- linux-2.6.7/arch/um/Makefile Mon May 10 04:32:52 2004
++++ linux-2.6.7-mod/arch/um/Makefile Sat Jun 19 12:57:07 2004
+@@ -77,7 +77,7 @@
+ # CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
+
+ LINK_TT = -static
+-LD_SCRIPT_TT := uml.lds.s
++LD_SCRIPT_TT := uml.lds.asm
+
+ ifeq ($(CONFIG_STATIC_LINK),y)
+ LINK-y += $(LINK_TT)
+@@ -103,11 +103,11 @@
+ -DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
+ -DKERNEL_STACK_SIZE=$(STACK_SIZE)
+
+-AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
++AFLAGS_$(LD_SCRIPT-y:.asm=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
+
+ LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
+
+-$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
++$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.asm=.S) scripts FORCE
+ $(call if_changed_dep,as_s_S)
+
+ linux: vmlinux $(LD_SCRIPT-y)
+@@ -122,8 +122,8 @@
+ # To get a definition of F_SETSIG
+ USER_CFLAGS += -D_GNU_SOURCE
+
+-CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
+- $(ARCH_DIR)/dyn_link.ld.s $(GEN_HEADERS)
++CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.asm \
++ $(ARCH_DIR)/dyn_link.ld.asm $(GEN_HEADERS)
+
+ $(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
+ $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+diff -ur linux-2.6.7/arch/um/kernel/Makefile linux-2.6.7-mod/arch/um/kernel/Makefile
+--- linux-2.6.7/arch/um/kernel/Makefile Mon May 10 04:32:53 2004
++++ linux-2.6.7-mod/arch/um/kernel/Makefile Sat Jun 19 12:57:15 2004
+@@ -3,7 +3,7 @@
+ # Licensed under the GPL
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y = checksum.o config.o exec_kern.o exitcode.o frame_kern.o frame.o \
+ helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
+diff -ur linux-2.6.7/arch/v850/Makefile linux-2.6.7-mod/arch/v850/Makefile
+--- linux-2.6.7/arch/v850/Makefile Mon May 10 04:33:21 2004
++++ linux-2.6.7-mod/arch/v850/Makefile Sat Jun 19 12:57:59 2004
+@@ -52,12 +52,12 @@
+ prepare: include/asm-$(ARCH)/asm-consts.h
+
+ # Generate constants from C code for use by asm files
+-arch/$(ARCH)/kernel/asm-consts.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-consts.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm-consts.h: arch/$(ARCH)/kernel/asm-consts.s
++include/asm-$(ARCH)/asm-consts.h: arch/$(ARCH)/kernel/asm-consts.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/asm-consts.h \
+- arch/$(ARCH)/kernel/asm-consts.s \
++ arch/$(ARCH)/kernel/asm-consts.asm \
+ root_fs_image.o
+diff -ur linux-2.6.7/arch/v850/kernel/Makefile linux-2.6.7-mod/arch/v850/kernel/Makefile
+--- linux-2.6.7/arch/v850/kernel/Makefile Mon May 10 04:33:21 2004
++++ linux-2.6.7-mod/arch/v850/kernel/Makefile Sat Jun 19 12:58:04 2004
+@@ -9,7 +9,7 @@
+ # for more details.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y += intv.o entry.o process.o syscalls.o time.o semaphore.o setup.o \
+ signal.o irq.o mach.o ptrace.o bug.o
+diff -ur linux-2.6.7/arch/x86_64/Makefile linux-2.6.7-mod/arch/x86_64/Makefile
+--- linux-2.6.7/arch/x86_64/Makefile Mon May 10 04:33:19 2004
++++ linux-2.6.7-mod/arch/x86_64/Makefile Sat Jun 19 12:58:10 2004
+@@ -93,10 +93,10 @@
+
+ prepare: include/asm-$(ARCH)/offset.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offset.h
+diff -ur linux-2.6.7/arch/x86_64/kernel/Makefile linux-2.6.7-mod/arch/x86_64/kernel/Makefile
+--- linux-2.6.7/arch/x86_64/kernel/Makefile Fri Jun 18 22:51:32 2004
++++ linux-2.6.7-mod/arch/x86_64/kernel/Makefile Sat Jun 19 12:58:17 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o head64.o init_task.o vmlinux.lds.s
++extra-y := head.o head64.o init_task.o vmlinux.lds.asm
+ EXTRA_AFLAGS := -traditional
+ obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \
+ ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_x86_64.o \
+diff -ur linux-2.6.7/scripts/Makefile.build linux-2.6.7-mod/scripts/Makefile.build
+--- linux-2.6.7/scripts/Makefile.build Mon May 10 04:33:13 2004
++++ linux-2.6.7-mod/scripts/Makefile.build Sat Jun 19 12:43:10 2004
+@@ -110,7 +110,7 @@
+ quiet_cmd_cc_s_c = CC $(quiet_modtag) $@
+ cmd_cc_s_c = $(CC) $(c_flags) -S -o $@ $<
+
+-%.s: %.c FORCE
++%.asm: %.c FORCE
+ $(call if_changed_dep,cc_s_c)
+
+ quiet_cmd_cc_i_c = CPP $(quiet_modtag) $@
+@@ -197,7 +197,7 @@
+ quiet_cmd_as_s_S = CPP $(quiet_modtag) $@
+ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
+
+-%.s: %.S FORCE
++%.asm: %.S FORCE
+ $(call if_changed_dep,as_s_S)
+
+ quiet_cmd_as_o_S = AS $(quiet_modtag) $@
diff --git a/patches/linux/2.6.7/linux-2.6.8-noshared-kconfig.patch b/patches/linux/2.6.7/linux-2.6.8-noshared-kconfig.patch
new file mode 100644
index 0000000..326cdcd
--- /dev/null
+++ b/patches/linux/2.6.7/linux-2.6.8-noshared-kconfig.patch
@@ -0,0 +1,28 @@
+Lets you run 'make oldconfig' and 'make menuconfig' on systems
+where shared libraries aren't easy. (There's no harm in using the
+static version of libkconfig.)
+Idea mentioned by Bertrand Marquis, but this patch is a bit simpler than his.
+
+
+--- linux-2.6.8.1/scripts/kconfig/Makefile.old 2004-09-09 20:30:25.000000000 -0700
++++ linux-2.6.8.1/scripts/kconfig/Makefile 2004-09-09 20:47:51.000000000 -0700
+@@ -68,8 +68,8 @@
+ libkconfig-objs := zconf.tab.o
+
+ host-progs := conf mconf qconf gconf
+-conf-objs := conf.o libkconfig.so
+-mconf-objs := mconf.o libkconfig.so
++conf-objs := conf.o $(libkconfig-objs)
++mconf-objs := mconf.o $(libkconfig-objs)
+
+ ifeq ($(MAKECMDGOALS),xconfig)
+ qconf-target := 1
+@@ -88,7 +88,7 @@
+ gconf-objs := gconf.o kconfig_load.o
+ endif
+
+-clean-files := libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \
++clean-files := $(libkconfig-objs) lkc_defs.h qconf.moc .tmp_qtcheck \
+ .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c
+
+ # generated files seem to need this to find local include files
diff --git a/patches/linux/2.6.8/kaz-types.patch b/patches/linux/2.6.8/kaz-types.patch
new file mode 100644
index 0000000..ec5de36
--- /dev/null
+++ b/patches/linux/2.6.8/kaz-types.patch
@@ -0,0 +1,60 @@
+The following fixes an error that occurs when building glibc-2.3.2 (but not glibc-2.2.5) for sh4:
+
+In file included from sys/ustat.h:30,
+ from ../sysdeps/unix/sysv/linux/ustat.c:21:
+../sysdeps/generic/bits/ustat.h:26: error: redefinition of `struct ustat'
+make[2]: *** [/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/build-glibc/misc/ustat.o] Error 1
+make[2]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2/misc'
+make[1]: *** [misc/subdir_lib] Error 2
+make[1]: Leaving directory `/home3/dank/crosstool-0.7/build/sh4-unknown-linux-gnu/gcc-3.3-glibc-2.3.2/glibc-2.3.2'
+make: *** [all] Error 2
+
+----------- snip ---------------
+
+Date: Fri, 06 Jun 2003 08:00:00 +0900
+From: kaz Kojima <kkojima@rr.iij4u.or.jp>
+Subject: [linux-sh:02770] Re: Compiling glibc-2.3.2 for sh4 fails with "include/asm/user.h:32:
+ error: redefinition of `struct user_fpu_struct'"
+To: linux-sh@m17n.org
+Message-Id: <200306052250.h55Moeb08707@r-rr.iij4u.or.jp>
+
+Hi,
+
+Dan Kegel <dank@kegel.com> wrote:
+> When I try to build glibc-2.3.2 for sh4, it fails with the error
+[snip]
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:32: error: redefinition of `struct user_fpu_struct'
+> /home3/dank/crosstool-0.3/result/sh4-linux/gcc-3.3-glibc-2.3.2/sh4-linux/include/asm/user.h:39: error: redefinition of `struct user'
+[snip]
+> The error reminds me of the kind of thing fixed by
+> http://www.kegel.com/crossgcc/crosstool-0.4/glibc-2.3.2-patches/sh-user.patch
+
+It seems that the definitions in asm/user.h and the above patch collide.
+I'm not sure why you need this patch, but is it needed for the problem
+about struct ustat that you pointed out in this list, isn't it?
+I found why I don't hit ustat problem - my local kernel tree includes
+the following patch, though I can't recall about it.
+
+Regards,
+ kaz
+--
+diff -u linux-2.5.69-sf-orig/include/linux/types.h /usr/local/sh4-unknown-linux-gnu/include/linux/types.h
+--- linux-2.5.69-sf-orig/include/linux/types.h Wed Mar 5 12:29:34 2003
++++ sh4-unknown-linux-gnu/include/linux/types.h Sat Apr 19 10:05:52 2003
+@@ -141,6 +141,7 @@
+
+ #endif /* __KERNEL_STRICT_NAMES */
+
++#ifdef __KERNEL__
+ /*
+ * Below are truly Linux-specific types that should never collide with
+ * any application/library that wants linux/types.h.
+@@ -152,5 +153,6 @@
+ char f_fname[6];
+ char f_fpack[6];
+ };
++#endif
+
+ #endif /* _LINUX_TYPES_H */
+
+
diff --git a/patches/linux/2.6.8/linux-2.6.8-allow-gcc-4.0-asm-i386.patch b/patches/linux/2.6.8/linux-2.6.8-allow-gcc-4.0-asm-i386.patch
new file mode 100644
index 0000000..71d4e23
--- /dev/null
+++ b/patches/linux/2.6.8/linux-2.6.8-allow-gcc-4.0-asm-i386.patch
@@ -0,0 +1,138 @@
+Fixes
+
+In file included from include/asm/thread_info.h:16,
+ from include/linux/thread_info.h:21,
+ from include/linux/spinlock.h:12,
+ from include/linux/capability.h:45,
+ from include/linux/sched.h:7,
+ from arch/i386/kernel/asm-offsets.c:7:
+include/asm/processor.h:87: error: array type has incomplete element type
+make[1]: *** [arch/i386/kernel/asm-offsets.asm] Error 1
+
+--- linux-2.6.8/include/asm-i386/processor.h.old Tue Mar 15 00:14:42 2005
++++ linux-2.6.8/include/asm-i386/processor.h Tue Mar 15 00:18:45 2005
+@@ -79,6 +79,58 @@
+ #define X86_VENDOR_UNKNOWN 0xff
+
+ /*
++ * Size of io_bitmap.
++ */
++#define IO_BITMAP_BITS 65536
++#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
++#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
++#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
++#define INVALID_IO_BITMAP_OFFSET 0x8000
++
++struct tss_struct {
++ unsigned short back_link,__blh;
++ unsigned long esp0;
++ unsigned short ss0,__ss0h;
++ unsigned long esp1;
++ unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */
++ unsigned long esp2;
++ unsigned short ss2,__ss2h;
++ unsigned long __cr3;
++ unsigned long eip;
++ unsigned long eflags;
++ unsigned long eax,ecx,edx,ebx;
++ unsigned long esp;
++ unsigned long ebp;
++ unsigned long esi;
++ unsigned long edi;
++ unsigned short es, __esh;
++ unsigned short cs, __csh;
++ unsigned short ss, __ssh;
++ unsigned short ds, __dsh;
++ unsigned short fs, __fsh;
++ unsigned short gs, __gsh;
++ unsigned short ldt, __ldth;
++ unsigned short trace, io_bitmap_base;
++ /*
++ * The extra 1 is there because the CPU will access an
++ * additional byte beyond the end of the IO permission
++ * bitmap. The extra byte must be all 1 bits, and must
++ * be within the limit.
++ */
++ unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
++ /*
++ * pads the TSS to be cacheline-aligned (size is 0x100)
++ */
++ unsigned long __cacheline_filler[37];
++ /*
++ * .. and then another 0x100 bytes for emergency kernel stack
++ */
++ unsigned long stack[64];
++} __attribute__((packed));
++
++#define ARCH_MIN_TASKALIGN 16
++
++/*
+ * capabilities of CPUs
+ */
+
+@@ -296,15 +348,6 @@
+ */
+ #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
+
+-/*
+- * Size of io_bitmap.
+- */
+-#define IO_BITMAP_BITS 65536
+-#define IO_BITMAP_BYTES (IO_BITMAP_BITS/8)
+-#define IO_BITMAP_LONGS (IO_BITMAP_BYTES/sizeof(long))
+-#define IO_BITMAP_OFFSET offsetof(struct tss_struct,io_bitmap)
+-#define INVALID_IO_BITMAP_OFFSET 0x8000
+-
+ struct i387_fsave_struct {
+ long cwd;
+ long swd;
+@@ -356,49 +399,6 @@
+ typedef struct {
+ unsigned long seg;
+ } mm_segment_t;
+-
+-struct tss_struct {
+- unsigned short back_link,__blh;
+- unsigned long esp0;
+- unsigned short ss0,__ss0h;
+- unsigned long esp1;
+- unsigned short ss1,__ss1h; /* ss1 is used to cache MSR_IA32_SYSENTER_CS */
+- unsigned long esp2;
+- unsigned short ss2,__ss2h;
+- unsigned long __cr3;
+- unsigned long eip;
+- unsigned long eflags;
+- unsigned long eax,ecx,edx,ebx;
+- unsigned long esp;
+- unsigned long ebp;
+- unsigned long esi;
+- unsigned long edi;
+- unsigned short es, __esh;
+- unsigned short cs, __csh;
+- unsigned short ss, __ssh;
+- unsigned short ds, __dsh;
+- unsigned short fs, __fsh;
+- unsigned short gs, __gsh;
+- unsigned short ldt, __ldth;
+- unsigned short trace, io_bitmap_base;
+- /*
+- * The extra 1 is there because the CPU will access an
+- * additional byte beyond the end of the IO permission
+- * bitmap. The extra byte must be all 1 bits, and must
+- * be within the limit.
+- */
+- unsigned long io_bitmap[IO_BITMAP_LONGS + 1];
+- /*
+- * pads the TSS to be cacheline-aligned (size is 0x100)
+- */
+- unsigned long __cacheline_filler[37];
+- /*
+- * .. and then another 0x100 bytes for emergency kernel stack
+- */
+- unsigned long stack[64];
+-} __attribute__((packed));
+-
+-#define ARCH_MIN_TASKALIGN 16
+
+ struct thread_struct {
+ /* cached TLS descriptors. */
diff --git a/patches/linux/2.6.8/linux-2.6.8-arm-nonofpu.patch b/patches/linux/2.6.8/linux-2.6.8-arm-nonofpu.patch
new file mode 100644
index 0000000..f638a00
--- /dev/null
+++ b/patches/linux/2.6.8/linux-2.6.8-arm-nonofpu.patch
@@ -0,0 +1,50 @@
+http://www.spinics.net/lists/arm/msg08012.html
+
+To: Dimitry Andric <dimitry@xxxxxxxxxx>
+Subject: Re: Kernel Compile Error: use of old and new-style options to set FPU type
+From: Marc Britten <maillists@xxxxxxxxxxxxxxxxx>
+Date: Wed, 16 Jun 2004 03:03:15 -0400
+Cc: linux-arm@xxxxxxxxxxxxxxxxxxxxxx
+In-reply-to: <1525495613.20040615202902@andric.com>
+
+Dimitry Andric wrote:
+
+>>Assembler messages:
+>>Error: use of old and new-style options to set FPU type
+> Try removing -Wa,-mno-fpu from CFLAGS (and possibly AFLAGS, but I'm
+> not sure, depends on what your compiler generates by default) in
+> arch/arm/Makefile.
+
+Just to let people know, this was successful.
+
+Thanks,
+
+Marc Britten
+
+--------
+
+Fixes error
+
+...
+make -f scripts/Makefile.build obj=scripts/mod
+ /opt/crosstool/arm-unknown-linux-gnu/gcc-3.4.1-glibc-2.3.3/bin/arm-unknown-linux-gnu-gcc -Wp,-MD,scripts/mod/.empty.o.d -nostdinc -iwithprefix include -D__KERNEL__ -Iinclude -Wall -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fno-omit-frame-pointer -mapcs -mno-sched-prolog -mlittle-endian -mapcs-32 -malignment-traps -msoft-float -Wa,-mno-fpu -Uarm -Os -Wdeclaration-after-statement -DKBUILD_BASENAME=empty -DKBUILD_MODNAME=empty -c -o scripts/mod/empty.o scripts/mod/empty.c
+Assembler messages:
+Error: use of old and new-style options to set FPU type
+make[2]: *** [scripts/mod/empty.o] Error 1
+make[1]: *** [scripts/mod] Error 2
+make: *** [scripts] Error 2
+
+
+--- linux-2.6.8/arch/arm/Makefile.old 2004-09-01 21:27:07.000000000 -0700
++++ linux-2.6.8/arch/arm/Makefile 2004-09-01 21:27:31.000000000 -0700
+@@ -55,8 +55,8 @@
+ tune-$(CONFIG_CPU_V6) :=-mtune=strongarm
+
+ # Need -Uarm for gcc < 3.x
+-CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Wa,-mno-fpu -Uarm
+-AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float -Wa,-mno-fpu
++CFLAGS +=-mapcs-32 $(arch-y) $(tune-y) $(call check_gcc,-malignment-traps,-mshort-load-bytes) -msoft-float -Uarm
++AFLAGS +=-mapcs-32 $(arch-y) $(tune-y) -msoft-float
+
+ CHECK := $(CHECK) -D__arm__=1
+
diff --git a/patches/linux/2.6.8/linux-2.6.8-build_on_case_insensitive_fs.patch b/patches/linux/2.6.8/linux-2.6.8-build_on_case_insensitive_fs.patch
new file mode 100644
index 0000000..6472c17
--- /dev/null
+++ b/patches/linux/2.6.8/linux-2.6.8-build_on_case_insensitive_fs.patch
@@ -0,0 +1,725 @@
+Submitted By: Martin Schaffner <schaffner@gmx.li>
+Date: 2004-06-19
+Initial Package Version: 2.6.7
+Upstream Status: Not submitted
+Origin: Martin Schaffner
+Description: Enables build on case-insensitive file systems
+URL: xxxhttp://mirror.vtx.ch/lfs/patches/downloads/linux/linux-2.6.7-build_on_case_insensitive_fs-1.patch
+--- Rediffed against 2.6.8 by dank@kegel.com
+--- plus a few missing hunks added to fix sparc32 build
+
+--- linux-2.6.8/Makefile.orig 2004-08-13 22:37:25.000000000 -0700
++++ linux-2.6.8/Makefile 2004-09-01 21:39:39.000000000 -0700
+@@ -540,7 +540,7 @@
+
+ do_system_map = $(NM) $(1) | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > $(2)
+
+-LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.s
++LDFLAGS_vmlinux += -T arch/$(ARCH)/kernel/vmlinux.lds.asm
+
+ # Generate section listing all symbols and add it into vmlinux
+ # It's a three stage process:
+@@ -584,13 +584,13 @@
+ .tmp_kallsyms%.S: .tmp_vmlinux%
+ $(call cmd,kallsyms)
+
+-.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++.tmp_vmlinux1: $(vmlinux-objs) arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux__)
+
+-.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++.tmp_vmlinux2: $(vmlinux-objs) .tmp_kallsyms1.o arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux__)
+
+-.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++.tmp_vmlinux3: $(vmlinux-objs) .tmp_kallsyms2.o arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux__)
+
+ endif
+@@ -603,13 +603,13 @@
+ $(rule_verify_kallsyms)
+ endef
+
+-vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.s FORCE
++vmlinux: $(vmlinux-objs) $(kallsyms.o) arch/$(ARCH)/kernel/vmlinux.lds.asm FORCE
+ $(call if_changed_rule,vmlinux)
+
+ # The actual objects are generated when descending,
+ # make sure no implicit rule kicks in
+
+-$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.s: $(vmlinux-dirs) ;
++$(sort $(vmlinux-objs)) arch/$(ARCH)/kernel/vmlinux.lds.asm: $(vmlinux-dirs) ;
+
+ # Handle descending into subdirectories listed in $(vmlinux-dirs)
+ # Preset locale variables to speed up the build process. Limit locale
+@@ -672,7 +672,7 @@
+ # Single targets
+ # ---------------------------------------------------------------------------
+
+-%.s: %.c scripts FORCE
++%.asm: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+ %.i: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+@@ -682,7 +682,7 @@
+ $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) $(build)=$(@D)
+ %.lst: %.c scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+-%.s: %.S scripts FORCE
++%.asm: %.S scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+ %.o: %.S scripts FORCE
+ $(Q)$(MAKE) $(build)=$(@D) $@
+diff -ur linux-2.6.7/arch/alpha/Makefile linux-2.6.7-mod/arch/alpha/Makefile
+--- linux-2.6.7/arch/alpha/Makefile Fri Jun 18 22:51:03 2004
++++ linux-2.6.7-mod/arch/alpha/Makefile Sat Jun 19 12:46:32 2004
+@@ -114,10 +114,10 @@
+
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/alpha/kernel/Makefile linux-2.6.7-mod/arch/alpha/kernel/Makefile
+--- linux-2.6.7/arch/alpha/kernel/Makefile Mon May 10 04:32:29 2004
++++ linux-2.6.7-mod/arch/alpha/kernel/Makefile Sat Jun 19 12:46:48 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o vmlinux.lds.s
++extra-y := head.o vmlinux.lds.asm
+ EXTRA_AFLAGS := $(CFLAGS)
+ EXTRA_CFLAGS := -Werror -Wno-sign-compare
+
+--- linux-2.6.8/arch/arm/Makefile.orig 2004-08-13 22:36:56.000000000 -0700
++++ linux-2.6.8/arch/arm/Makefile 2004-09-01 21:40:21.000000000 -0700
+@@ -176,10 +176,10 @@
+ bp:; $(Q)$(MAKE) $(build)=$(boot) $(boot)/bootpImage
+ i zi:; $(Q)$(MAKE) $(build)=$(boot) $@
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/asm-arm/.arch
+
+-include/asm-$(ARCH)/constants.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/constants.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/arm/kernel/Makefile linux-2.6.7-mod/arch/arm/kernel/Makefile
+--- linux-2.6.7/arch/arm/kernel/Makefile Mon May 10 04:33:19 2004
++++ linux-2.6.7-mod/arch/arm/kernel/Makefile Sat Jun 19 12:47:25 2004
+@@ -27,7 +27,7 @@
+ head-y := head.o
+ obj-$(CONFIG_DEBUG_LL) += debug.o
+
+-extra-y := $(head-y) init_task.o vmlinux.lds.s
++extra-y := $(head-y) init_task.o vmlinux.lds.asm
+
+ # Spell out some dependencies that aren't automatically figured out
+ $(obj)/entry-armv.o: $(obj)/entry-header.S include/asm-arm/constants.h
+diff -ur linux-2.6.7/arch/arm26/Makefile linux-2.6.7-mod/arch/arm26/Makefile
+--- linux-2.6.7/arch/arm26/Makefile Mon May 10 04:32:28 2004
++++ linux-2.6.7-mod/arch/arm26/Makefile Sat Jun 19 12:48:24 2004
+@@ -101,10 +101,10 @@
+ fi; \
+ )
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/arm26/kernel/Makefile linux-2.6.7-mod/arch/arm26/kernel/Makefile
+--- linux-2.6.7/arch/arm26/kernel/Makefile Mon May 10 04:32:29 2004
++++ linux-2.6.7-mod/arch/arm26/kernel/Makefile Sat Jun 19 12:48:30 2004
+@@ -14,5 +14,5 @@
+ obj-$(CONFIG_FIQ) += fiq.o
+ obj-$(CONFIG_MODULES) += armksyms.o
+
+-extra-y := init_task.o vmlinux.lds.s
++extra-y := init_task.o vmlinux.lds.asm
+
+diff -ur linux-2.6.7/arch/cris/Makefile linux-2.6.7-mod/arch/cris/Makefile
+--- linux-2.6.7/arch/cris/Makefile Fri Jun 18 22:51:07 2004
++++ linux-2.6.7-mod/arch/cris/Makefile Sat Jun 19 12:48:47 2004
+@@ -107,8 +107,8 @@
+ @ln -sf $(SARCH) include/asm-$(ARCH)/arch
+ @touch $@
+
+-arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/$(SARCH)/offset.h: arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/$(SARCH)/offset.h: arch/$(ARCH)/$(SARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+diff -ur linux-2.6.7/arch/cris/kernel/Makefile linux-2.6.7-mod/arch/cris/kernel/Makefile
+--- linux-2.6.7/arch/cris/kernel/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/cris/kernel/Makefile Sat Jun 19 12:48:53 2004
+@@ -3,7 +3,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y := process.o traps.o irq.o ptrace.o setup.o \
+ time.o sys_cris.o semaphore.o
+diff -ur linux-2.6.7/arch/h8300/Makefile linux-2.6.7-mod/arch/h8300/Makefile
+--- linux-2.6.7/arch/h8300/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/h8300/Makefile Sat Jun 19 12:49:12 2004
+@@ -64,7 +64,7 @@
+
+ prepare: include/asm-$(ARCH)/asm-offsets.h
+
+-include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
++include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm \
+ include/asm include/linux/version.h
+ $(call filechk,gen-asm-offsets)
+
+diff -ur linux-2.6.7/arch/h8300/kernel/Makefile linux-2.6.7-mod/arch/h8300/kernel/Makefile
+--- linux-2.6.7/arch/h8300/kernel/Makefile Fri Jun 18 22:51:09 2004
++++ linux-2.6.7-mod/arch/h8300/kernel/Makefile Sat Jun 19 12:49:32 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y := process.o traps.o ptrace.o ints.o \
+ sys_h8300.o time.o semaphore.o signal.o \
+diff -ur linux-2.6.7/arch/i386/Makefile linux-2.6.7-mod/arch/i386/Makefile
+--- linux-2.6.7/arch/i386/Makefile Fri Jun 18 22:51:10 2004
++++ linux-2.6.7-mod/arch/i386/Makefile Sat Jun 19 12:49:43 2004
+@@ -141,10 +141,10 @@
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+ CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/i386/kernel/Makefile linux-2.6.7-mod/arch/i386/kernel/Makefile
+--- linux-2.6.7/arch/i386/kernel/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/i386/kernel/Makefile Sat Jun 19 12:49:54 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o vm86.o \
+ ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_i386.o \
+diff -ur linux-2.6.7/arch/ia64/Makefile linux-2.6.7-mod/arch/ia64/Makefile
+--- linux-2.6.7/arch/ia64/Makefile Mon May 10 04:31:59 2004
++++ linux-2.6.7-mod/arch/ia64/Makefile Sat Jun 19 12:50:12 2004
+@@ -88,12 +88,12 @@
+
+ prepare: include/asm-ia64/offsets.h
+
+-arch/ia64/kernel/asm-offsets.s: include/asm include/linux/version.h include/config/MARKER
++arch/ia64/kernel/asm-offsets.asm: include/asm include/linux/version.h include/config/MARKER
+
+-include/asm-ia64/offsets.h: arch/ia64/kernel/asm-offsets.s
++include/asm-ia64/offsets.h: arch/ia64/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+-arch/ia64/kernel/asm-offsets.s: include/asm-ia64/.offsets.h.stamp
++arch/ia64/kernel/asm-offsets.asm: include/asm-ia64/.offsets.h.stamp
+
+ include/asm-ia64/.offsets.h.stamp:
+ mkdir -p include/asm-ia64
+diff -ur linux-2.6.7/arch/ia64/kernel/Makefile linux-2.6.7-mod/arch/ia64/kernel/Makefile
+--- linux-2.6.7/arch/ia64/kernel/Makefile Fri Jun 18 22:51:13 2004
++++ linux-2.6.7-mod/arch/ia64/kernel/Makefile Sat Jun 19 12:52:14 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := acpi.o entry.o efi.o efi_stub.o gate-data.o fsys.o ia64_ksyms.o irq.o irq_ia64.o \
+ irq_lsapic.o ivt.o machvec.o pal.o patch.o process.o perfmon.o ptrace.o sal.o \
+@@ -21,7 +21,7 @@
+ # The gate DSO image is built using a special linker script.
+ targets += gate.so gate-syms.o
+
+-extra-y += gate.so gate-syms.o gate.lds.s gate.o
++extra-y += gate.so gate-syms.o gate.lds.asm gate.o
+
+ # fp_emulate() expects f2-f5,f16-f31 to contain the user-level state.
+ CFLAGS_traps.o += -mfixed-range=f2-f5,f16-f31
+@@ -32,14 +32,14 @@
+ cmd_gate = $(CC) -nostdlib $(GATECFLAGS_$(@F)) -Wl,-T,$(filter-out FORCE,$^) -o $@
+
+ GATECFLAGS_gate.so = -shared -s -Wl,-soname=linux-gate.so.1
+-$(obj)/gate.so: $(obj)/gate.lds.s $(obj)/gate.o FORCE
++$(obj)/gate.so: $(obj)/gate.lds.asm $(obj)/gate.o FORCE
+ $(call if_changed,gate)
+
+ $(obj)/built-in.o: $(obj)/gate-syms.o
+ $(obj)/built-in.o: ld_flags += -R $(obj)/gate-syms.o
+
+ GATECFLAGS_gate-syms.o = -r
+-$(obj)/gate-syms.o: $(src)/gate.lds.s $(obj)/gate.o FORCE
++$(obj)/gate-syms.o: $(src)/gate.lds.asm $(obj)/gate.o FORCE
+ $(call if_changed,gate)
+
+ # gate-data.o contains the gate DSO image as data in section .data.gate.
+diff -ur linux-2.6.7/arch/m68k/Makefile linux-2.6.7-mod/arch/m68k/Makefile
+--- linux-2.6.7/arch/m68k/Makefile Fri Jun 18 22:51:14 2004
++++ linux-2.6.7-mod/arch/m68k/Makefile Sat Jun 19 12:52:30 2004
+@@ -114,10 +114,10 @@
+ prepare: include/asm-$(ARCH)/offsets.h
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ archclean:
+diff -ur linux-2.6.7/arch/m68k/kernel/Makefile linux-2.6.7-mod/arch/m68k/kernel/Makefile
+--- linux-2.6.7/arch/m68k/kernel/Makefile Mon May 10 04:33:10 2004
++++ linux-2.6.7-mod/arch/m68k/kernel/Makefile Sat Jun 19 12:52:35 2004
+@@ -7,7 +7,7 @@
+ else
+ extra-y := sun3-head.o
+ endif
+-extra-y += vmlinux.lds.s
++extra-y += vmlinux.lds.asm
+
+ obj-y := entry.o process.o traps.o ints.o signal.o ptrace.o \
+ sys_m68k.o time.o semaphore.o setup.o m68k_ksyms.o
+diff -ur linux-2.6.7/arch/m68knommu/Makefile linux-2.6.7-mod/arch/m68knommu/Makefile
+--- linux-2.6.7/arch/m68knommu/Makefile Mon May 10 04:32:54 2004
++++ linux-2.6.7-mod/arch/m68knommu/Makefile Sat Jun 19 12:52:57 2004
+@@ -89,7 +89,7 @@
+ head-y := arch/m68knommu/platform/$(platform-y)/$(board-y)/crt0_$(model-y).o
+
+ CLEAN_FILES := include/asm-$(ARCH)/asm-offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s
++ arch/$(ARCH)/kernel/asm-offsets.asm
+
+ core-y += arch/m68knommu/kernel/ \
+ arch/m68knommu/mm/ \
+@@ -102,7 +102,7 @@
+ archclean:
+ $(call descend arch/$(ARCH)/boot, subdirclean)
+
+-include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
++include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm \
+ include/asm include/linux/version.h \
+ include/config/MARKER
+ $(call filechk,gen-asm-offsets)
+diff -ur linux-2.6.7/arch/m68knommu/kernel/Makefile linux-2.6.7-mod/arch/m68knommu/kernel/Makefile
+--- linux-2.6.7/arch/m68knommu/kernel/Makefile Mon May 10 04:32:26 2004
++++ linux-2.6.7-mod/arch/m68knommu/kernel/Makefile Sat Jun 19 12:53:20 2004
+@@ -2,7 +2,7 @@
+ # Makefile for arch/m68knommu/kernel.
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y += dma.o entry.o init_task.o m68k_ksyms.o process.o ptrace.o semaphore.o \
+ setup.o signal.o syscalltable.o sys_m68k.o time.o traps.o
+diff -ur linux-2.6.7/arch/mips/Makefile linux-2.6.7-mod/arch/mips/Makefile
+--- linux-2.6.7/arch/mips/Makefile Fri Jun 18 22:51:19 2004
++++ linux-2.6.7-mod/arch/mips/Makefile Sat Jun 19 12:53:35 2004
+@@ -752,12 +752,12 @@
+ prepare: include/asm-$(ARCH)/offset.h \
+ include/asm-$(ARCH)/reg.h
+
+-arch/$(ARCH)/kernel/offset.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/offset.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/offset.s
++include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/offset.asm
+ $(call filechk,gen-asm-offset.h)
+-include/asm-$(ARCH)/reg.h: arch/$(ARCH)/kernel/reg.s
++include/asm-$(ARCH)/reg.h: arch/$(ARCH)/kernel/reg.asm
+ $(call filechk,gen-asm-reg.h)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offset.h.tmp \
+diff -ur linux-2.6.7/arch/mips/kernel/Makefile linux-2.6.7-mod/arch/mips/kernel/Makefile
+--- linux-2.6.7/arch/mips/kernel/Makefile Mon May 10 04:32:28 2004
++++ linux-2.6.7-mod/arch/mips/kernel/Makefile Sat Jun 19 12:53:41 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the Linux/MIPS kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y += cpu-probe.o branch.o entry.o genex.o irq.o process.o \
+ ptrace.o reset.o semaphore.o setup.o signal.o syscall.o \
+diff -ur linux-2.6.7/arch/parisc/Makefile linux-2.6.7-mod/arch/parisc/Makefile
+--- linux-2.6.7/arch/parisc/Makefile Fri Jun 18 22:51:21 2004
++++ linux-2.6.7-mod/arch/parisc/Makefile Sat Jun 19 12:53:47 2004
+@@ -88,10 +88,10 @@
+
+ prepare: include/asm-parisc/offsets.h
+
+-arch/parisc/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/parisc/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-parisc/offsets.h: arch/parisc/kernel/asm-offsets.s
++include/asm-parisc/offsets.h: arch/parisc/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += lifimage include/asm-parisc/offsets.h
+diff -ur linux-2.6.7/arch/parisc/kernel/Makefile linux-2.6.7-mod/arch/parisc/kernel/Makefile
+--- linux-2.6.7/arch/parisc/kernel/Makefile Fri Jun 18 22:51:21 2004
++++ linux-2.6.7-mod/arch/parisc/kernel/Makefile Sat Jun 19 12:53:53 2004
+@@ -4,7 +4,7 @@
+
+ head-y := head.o
+ head-$(CONFIG_PARISC64) := head64.o
+-extra-y := init_task.o $(head-y) vmlinux.lds.s
++extra-y := init_task.o $(head-y) vmlinux.lds.asm
+
+ AFLAGS_entry.o := -traditional
+ AFLAGS_pacache.o := -traditional
+diff -ur linux-2.6.7/arch/ppc/Makefile linux-2.6.7-mod/arch/ppc/Makefile
+--- linux-2.6.7/arch/ppc/Makefile Fri Jun 18 22:51:22 2004
++++ linux-2.6.7-mod/arch/ppc/Makefile Sat Jun 19 12:54:09 2004
+@@ -78,10 +78,10 @@
+
+ prepare: include/asm-$(ARCH)/offsets.h checkbin
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ ifdef CONFIG_6xx
+@@ -104,4 +104,4 @@
+ endif
+
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s
++ arch/$(ARCH)/kernel/asm-offsets.asm
+diff -ur linux-2.6.7/arch/ppc/kernel/Makefile linux-2.6.7-mod/arch/ppc/kernel/Makefile
+--- linux-2.6.7/arch/ppc/kernel/Makefile Fri Jun 18 22:51:24 2004
++++ linux-2.6.7-mod/arch/ppc/kernel/Makefile Sat Jun 19 12:43:10 2004
+@@ -15,7 +15,7 @@
+ extra-$(CONFIG_8xx) := head_8xx.o
+ extra-$(CONFIG_6xx) += idle_6xx.o
+ extra-$(CONFIG_POWER4) += idle_power4.o
+-extra-y += vmlinux.lds.s
++extra-y += vmlinux.lds.asm
+
+ obj-y := entry.o traps.o irq.o idle.o time.o misc.o \
+ process.o signal.o ptrace.o align.o \
+diff -ur linux-2.6.7/arch/ppc64/Makefile linux-2.6.7-mod/arch/ppc64/Makefile
+--- linux-2.6.7/arch/ppc64/Makefile Fri Jun 18 22:51:26 2004
++++ linux-2.6.7-mod/arch/ppc64/Makefile Sat Jun 19 12:54:32 2004
+@@ -67,10 +67,10 @@
+
+ prepare: include/asm-ppc64/offsets.h
+
+-arch/ppc64/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/ppc64/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-ppc64/offsets.h: arch/ppc64/kernel/asm-offsets.s
++include/asm-ppc64/offsets.h: arch/ppc64/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ define archhelp
+diff -ur linux-2.6.7/arch/ppc64/kernel/Makefile linux-2.6.7-mod/arch/ppc64/kernel/Makefile
+--- linux-2.6.7/arch/ppc64/kernel/Makefile Mon May 10 04:33:20 2004
++++ linux-2.6.7-mod/arch/ppc64/kernel/Makefile Sat Jun 19 12:54:39 2004
+@@ -3,7 +3,7 @@
+ #
+
+ EXTRA_CFLAGS += -mno-minimal-toc
+-extra-y := head.o vmlinux.lds.s
++extra-y := head.o vmlinux.lds.asm
+
+ obj-y := setup.o entry.o traps.o irq.o idle.o dma.o \
+ time.o process.o signal.o syscalls.o misc.o ptrace.o \
+diff -ur linux-2.6.7/arch/s390/Makefile linux-2.6.7-mod/arch/s390/Makefile
+--- linux-2.6.7/arch/s390/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/s390/Makefile Sat Jun 19 12:54:46 2004
+@@ -68,10 +68,10 @@
+
+ prepare: include/asm-$(ARCH)/offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offsets.h
+diff -ur linux-2.6.7/arch/s390/kernel/Makefile linux-2.6.7-mod/arch/s390/kernel/Makefile
+--- linux-2.6.7/arch/s390/kernel/Makefile Mon May 10 04:33:20 2004
++++ linux-2.6.7-mod/arch/s390/kernel/Makefile Sat Jun 19 12:54:52 2004
+@@ -10,7 +10,7 @@
+
+ extra-$(CONFIG_ARCH_S390_31) += head.o
+ extra-$(CONFIG_ARCH_S390X) += head64.o
+-extra-y += init_task.o vmlinux.lds.s
++extra-y += init_task.o vmlinux.lds.asm
+
+ obj-$(CONFIG_MODULES) += s390_ksyms.o module.o
+ obj-$(CONFIG_SMP) += smp.o
+diff -ur linux-2.6.7/arch/sh/kernel/Makefile linux-2.6.7-mod/arch/sh/kernel/Makefile
+--- linux-2.6.7/arch/sh/kernel/Makefile Mon May 10 04:32:39 2004
++++ linux-2.6.7-mod/arch/sh/kernel/Makefile Sat Jun 19 12:55:33 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the Linux/SuperH kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o signal.o entry.o traps.o irq.o \
+ ptrace.o setup.o time.o sys_sh.o semaphore.o \
+diff -ur linux-2.6.7/arch/sparc/Makefile linux-2.6.7-mod/arch/sparc/Makefile
+--- linux-2.6.7/arch/sparc/Makefile Fri Jun 18 22:51:29 2004
++++ linux-2.6.7-mod/arch/sparc/Makefile Sat Jun 19 12:55:48 2004
+@@ -61,14 +61,14 @@
+
+ prepare: include/asm-$(ARCH)/asm_offsets.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/asm_offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/asm_offsets.h \
+- arch/$(ARCH)/kernel/asm-offsets.s \
++ arch/$(ARCH)/kernel/asm-offsets.asm \
+ arch/$(ARCH)/boot/System.map
+
+ # Don't use tabs in echo arguments.
+diff -ur linux-2.6.7/arch/sparc/kernel/Makefile linux-2.6.7-mod/arch/sparc/kernel/Makefile
+--- linux-2.6.7/arch/sparc/kernel/Makefile Mon May 10 04:33:13 2004
++++ linux-2.6.7-mod/arch/sparc/kernel/Makefile Sat Jun 19 12:55:52 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ EXTRA_AFLAGS := -ansi
+
+diff -ur linux-2.6.7/arch/sparc64/kernel/Makefile linux-2.6.7-mod/arch/sparc64/kernel/Makefile
+--- linux-2.6.7/arch/sparc64/kernel/Makefile Mon May 10 04:32:02 2004
++++ linux-2.6.7-mod/arch/sparc64/kernel/Makefile Sat Jun 19 12:56:24 2004
+@@ -5,7 +5,7 @@
+ EXTRA_AFLAGS := -ansi
+ EXTRA_CFLAGS := -Werror
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y := process.o setup.o cpu.o idprom.o \
+ traps.o devices.o auxio.o \
+diff -ur linux-2.6.7/arch/um/Makefile linux-2.6.7-mod/arch/um/Makefile
+--- linux-2.6.7/arch/um/Makefile Mon May 10 04:32:52 2004
++++ linux-2.6.7-mod/arch/um/Makefile Sat Jun 19 12:57:07 2004
+@@ -77,7 +77,7 @@
+ # CONFIG_MODE_SKAS + CONFIG_STATIC_LINK case.
+
+ LINK_TT = -static
+-LD_SCRIPT_TT := uml.lds.s
++LD_SCRIPT_TT := uml.lds.asm
+
+ ifeq ($(CONFIG_STATIC_LINK),y)
+ LINK-y += $(LINK_TT)
+@@ -103,11 +103,11 @@
+ -DELF_FORMAT=\"$(ELF_FORMAT)\" $(CPP_MODE_TT) \
+ -DKERNEL_STACK_SIZE=$(STACK_SIZE)
+
+-AFLAGS_$(LD_SCRIPT-y:.s=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
++AFLAGS_$(LD_SCRIPT-y:.asm=).o = $(AFLAGS_vmlinux.lds.o) -P -C -Uum
+
+ LD_SCRIPT-y := $(ARCH_DIR)/$(LD_SCRIPT-y)
+
+-$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.s=.S) scripts FORCE
++$(LD_SCRIPT-y) : $(LD_SCRIPT-y:.asm=.S) scripts FORCE
+ $(call if_changed_dep,as_s_S)
+
+ linux: vmlinux $(LD_SCRIPT-y)
+@@ -122,8 +122,8 @@
+ # To get a definition of F_SETSIG
+ USER_CFLAGS += -D_GNU_SOURCE
+
+-CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.s \
+- $(ARCH_DIR)/dyn_link.ld.s $(GEN_HEADERS)
++CLEAN_FILES += linux x.i gmon.out $(ARCH_DIR)/uml.lds.asm \
++ $(ARCH_DIR)/dyn_link.ld.asm $(GEN_HEADERS)
+
+ $(ARCH_DIR)/main.o: $(ARCH_DIR)/main.c
+ $(CC) $(USER_CFLAGS) $(EXTRA_CFLAGS) -c -o $@ $<
+diff -ur linux-2.6.7/arch/um/kernel/Makefile linux-2.6.7-mod/arch/um/kernel/Makefile
+--- linux-2.6.7/arch/um/kernel/Makefile Mon May 10 04:32:53 2004
++++ linux-2.6.7-mod/arch/um/kernel/Makefile Sat Jun 19 12:57:15 2004
+@@ -3,7 +3,7 @@
+ # Licensed under the GPL
+ #
+
+-extra-y := vmlinux.lds.s
++extra-y := vmlinux.lds.asm
+
+ obj-y = checksum.o config.o exec_kern.o exitcode.o frame_kern.o frame.o \
+ helper.o init_task.o irq.o irq_user.o ksyms.o mem.o mem_user.o \
+diff -ur linux-2.6.7/arch/v850/Makefile linux-2.6.7-mod/arch/v850/Makefile
+--- linux-2.6.7/arch/v850/Makefile Mon May 10 04:33:21 2004
++++ linux-2.6.7-mod/arch/v850/Makefile Sat Jun 19 12:57:59 2004
+@@ -52,12 +52,12 @@
+ prepare: include/asm-$(ARCH)/asm-consts.h
+
+ # Generate constants from C code for use by asm files
+-arch/$(ARCH)/kernel/asm-consts.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-consts.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/asm-consts.h: arch/$(ARCH)/kernel/asm-consts.s
++include/asm-$(ARCH)/asm-consts.h: arch/$(ARCH)/kernel/asm-consts.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/asm-consts.h \
+- arch/$(ARCH)/kernel/asm-consts.s \
++ arch/$(ARCH)/kernel/asm-consts.asm \
+ root_fs_image.o
+diff -ur linux-2.6.7/arch/v850/kernel/Makefile linux-2.6.7-mod/arch/v850/kernel/Makefile
+--- linux-2.6.7/arch/v850/kernel/Makefile Mon May 10 04:33:21 2004
++++ linux-2.6.7-mod/arch/v850/kernel/Makefile Sat Jun 19 12:58:04 2004
+@@ -9,7 +9,7 @@
+ # for more details.
+ #
+
+-extra-y := head.o init_task.o vmlinux.lds.s
++extra-y := head.o init_task.o vmlinux.lds.asm
+
+ obj-y += intv.o entry.o process.o syscalls.o time.o semaphore.o setup.o \
+ signal.o irq.o mach.o ptrace.o bug.o
+diff -ur linux-2.6.7/arch/x86_64/Makefile linux-2.6.7-mod/arch/x86_64/Makefile
+--- linux-2.6.7/arch/x86_64/Makefile Mon May 10 04:33:19 2004
++++ linux-2.6.7-mod/arch/x86_64/Makefile Sat Jun 19 12:58:10 2004
+@@ -93,10 +93,10 @@
+
+ prepare: include/asm-$(ARCH)/offset.h
+
+-arch/$(ARCH)/kernel/asm-offsets.s: include/asm include/linux/version.h \
++arch/$(ARCH)/kernel/asm-offsets.asm: include/asm include/linux/version.h \
+ include/config/MARKER
+
+-include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/asm-offsets.s
++include/asm-$(ARCH)/offset.h: arch/$(ARCH)/kernel/asm-offsets.asm
+ $(call filechk,gen-asm-offsets)
+
+ CLEAN_FILES += include/asm-$(ARCH)/offset.h
+diff -ur linux-2.6.7/arch/x86_64/kernel/Makefile linux-2.6.7-mod/arch/x86_64/kernel/Makefile
+--- linux-2.6.7/arch/x86_64/kernel/Makefile Fri Jun 18 22:51:32 2004
++++ linux-2.6.7-mod/arch/x86_64/kernel/Makefile Sat Jun 19 12:58:17 2004
+@@ -2,7 +2,7 @@
+ # Makefile for the linux kernel.
+ #
+
+-extra-y := head.o head64.o init_task.o vmlinux.lds.s
++extra-y := head.o head64.o init_task.o vmlinux.lds.asm
+ EXTRA_AFLAGS := -traditional
+ obj-y := process.o semaphore.o signal.o entry.o traps.o irq.o \
+ ptrace.o i8259.o ioport.o ldt.o setup.o time.o sys_x86_64.o \
+diff -ur linux-2.6.7/scripts/Makefile.build linux-2.6.7-mod/scripts/Makefile.build
+--- linux-2.6.7/scripts/Makefile.build Mon May 10 04:33:13 2004
++++ linux-2.6.7-mod/scripts/Makefile.build Sat Jun 19 12:43:10 2004
+@@ -110,7 +110,7 @@
+ quiet_cmd_cc_s_c = CC $(quiet_modtag) $@
+ cmd_cc_s_c = $(CC) $(c_flags) -S -o $@ $<
+
+-%.s: %.c FORCE
++%.asm: %.c FORCE
+ $(call if_changed_dep,cc_s_c)
+
+ quiet_cmd_cc_i_c = CPP $(quiet_modtag) $@
+@@ -197,7 +197,7 @@
+ quiet_cmd_as_s_S = CPP $(quiet_modtag) $@
+ cmd_as_s_S = $(CPP) $(a_flags) -o $@ $<
+
+-%.s: %.S FORCE
++%.asm: %.S FORCE
+ $(call if_changed_dep,as_s_S)
+
+ quiet_cmd_as_o_S = AS $(quiet_modtag) $@
+--- linux-2.6.8/arch/sparc/boot/Makefile.old 2004-09-21 21:46:18.000000000 -0700
++++ linux-2.6.8/arch/sparc/boot/Makefile 2004-09-21 21:52:35.000000000 -0700
+@@ -19,7 +19,7 @@
+
+ BTOBJS := $(HEAD_Y) $(INIT_Y)
+ BTLIBS := $(CORE_Y) $(LIBS_Y) $(DRIVERS_Y) $(NET_Y)
+-LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds.s $(BTOBJS) --start-group $(BTLIBS) --end-group $(kallsyms.o)
++LDFLAGS_image := -T arch/sparc/kernel/vmlinux.lds.asm $(BTOBJS) --start-group $(BTLIBS) --end-group $(kallsyms.o)
+
+ # Actual linking
+ $(obj)/image: $(obj)/btfix.o FORCE
+--- linux-2.6.8/arch/sh64/Makefile.old 2004-09-21 21:46:18.000000000 -0700
++++ linux-2.6.8/arch/sh64/Makefile 2004-09-21 21:54:31.000000000 -0700
+@@ -71,7 +71,7 @@
+
+ prepare: include/asm-$(ARCH)/asm-offsets.h arch/$(ARCH)/lib/syscalltab.h
+
+-include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.s \
++include/asm-$(ARCH)/asm-offsets.h: arch/$(ARCH)/kernel/asm-offsets.asm \
+ include/asm include/linux/version.h
+ $(call filechk,gen-asm-offsets)
+
+--- linux-2.6.8/arch/sh64/boot/compressed/Makefile.old 2004-09-21 21:46:18.000000000 -0700
++++ linux-2.6.8/arch/sh64/boot/compressed/Makefile 2004-09-21 21:54:41.000000000 -0700
+@@ -25,7 +25,7 @@
+ ZIMAGE_OFFSET = $(shell printf "0x%8x" $$[$(CONFIG_MEMORY_START)+0x400000+0x10000])
+
+ LDFLAGS_vmlinux := -Ttext $(ZIMAGE_OFFSET) -e startup \
+- -T $(obj)/../../kernel/vmlinux.lds.s \
++ -T $(obj)/../../kernel/vmlinux.lds.asm \
+ --no-warn-mismatch
+
+ $(obj)/vmlinux: $(OBJECTS) $(obj)/piggy.o FORCE
+@@ -41,6 +41,6 @@
+ LDFLAGS_piggy.o := -r --format binary --oformat elf32-sh64-linux -T
+ OBJCOPYFLAGS += -R .empty_zero_page
+
+-$(obj)/piggy.o: $(obj)/vmlinux.lds.s $(obj)/vmlinux.bin.gz FORCE
++$(obj)/piggy.o: $(obj)/vmlinux.lds.asm $(obj)/vmlinux.bin.gz FORCE
+ $(call if_changed,ld)
+
diff --git a/patches/linux/2.6.8/linux-2.6.8-m68k-kludge.patch b/patches/linux/2.6.8/linux-2.6.8-m68k-kludge.patch
new file mode 100644
index 0000000..9cef549
--- /dev/null
+++ b/patches/linux/2.6.8/linux-2.6.8-m68k-kludge.patch
@@ -0,0 +1,285 @@
+[ This patch not accepted into kernel for now - it touches the core too much -
+ but it's ok for crosstool since we just want to check whether toolchain is ok,
+ I think. I had to rediff the sched.h changes with -U5 to get them to
+ apply properly -- patch got confused with just three lines of context?! -dank ]
+
+Date: Sun, 5 Sep 2004 12:41:08 +0200 (CEST)
+From: Geert Uytterhoeven <geert@linux-m68k.org>
+Sender: geert@linux-m68k.org
+To: Dan Kegel <dank@kegel.com>
+cc: Roman Zippel <zippel@linux-m68k.org>,
+ Matthias Urlichs <smurf@smurf.noris.de>,
+ Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
+ Linux/m68k <linux-m68k@lists.linux-m68k.org>
+Subject: Re: Getting kernel.org kernel to build for m68k?
+In-Reply-To: <Pine.GSO.4.58.0409011029390.15681@waterleaf.sonytel.be>
+Message-ID: <Pine.LNX.4.58.0409051224020.30282@anakin>
+
+On Wed, 1 Sep 2004, Geert Uytterhoeven wrote:
+> On Tue, 31 Aug 2004, Dan Kegel wrote:
+> > I noticed today that Linus's m68k kernel can't be built (at least with gcc-3.4.1).
+> >
+> > The first problem I ran into,
+> > CC arch/m68k/kernel/asm-offsets.s
+> > In file included from include/linux/spinlock.h:12,
+> > from include/linux/capability.h:45,
+> > from include/linux/sched.h:7,
+> > from arch/m68k/kernel/asm-offsets.c:12:
+> > include/linux/thread_info.h:30: error: parse error before '{' token
+> > is solved already in the m68k tree.
+> > (In particular,
+> > the #ifndef __HAVE_THREAD_FUNCTIONS ... #endif in
+> > http://linux-m68k-cvs.apia.dhs.org/c/cvsweb/linux/include/linux/thread_info.h?rev=1.5;content-type=text%2Fplain
+> > probably solves it.)
+> > There are other problems after that.
+>
+> Roman Zippel changed the threading stuff on m68k. Since it would affect other
+> architectures, I never submitted it on my own.
+>
+> In short, we never really compile this code, since the m68k tree doesn't use it
+> anymore. And yes, it even fails with older compiler versions, like 2.95.2.
+
+The second part doesn't seem to be true: the code is used. And it does compile
+after applying the fixes below, even with gcc 3.4.1.
+
+> > Any chance you could spend a bit of time sending Linus enough
+> > patches for his kernel to build for m68k, if not run?
+>
+> I'll make sure a plain kernel.org kernel can build an m68k kernel.
+
+The patch below makes the plain kernel.org 2.6.8.1 compile for m68k,
+using gcc 2.95.2 or 3.3.3 (3.4.1 needs a few more changes in random
+places). The resulting kernel (I booted the gcc 2.95.2 case) works fine on my
+Amiga.
+
+It's more or less the patch created by Matthias Urlichs last year, so
+the credits are his:
+
+| This change implements a reasonable compromise between the task_info->flags
+| variable in other ports, which is too much work in the syscall path on m68k,
+| and moving the whole structure to thread_struct, which is way too intrusive
+| on other ports.
+
+The patch does affect generic code a bit, but the collateral damage is
+kept to a minimum.
+
+We can still keep Roman's thread info abstractions[*] in Linux/m68k CVS, but
+I'd really like the plain kernel.org kernel to be in a working state as well.
+That way more people may do cross-compile tests for m68k.
+
+Hence if no one objects, I'll submit the patch to Andrew and Linus.
+
+All comments are welcome!
+
+--- linux-2.6.8.1/arch/m68k/kernel/asm-offsets.c 2004-04-28 15:48:59.000000000 +0200
++++ linux-m68k-2.6.8.1/arch/m68k/kernel/asm-offsets.c 2004-09-05 12:04:00.000000000 +0200
+@@ -31,6 +31,7 @@ int main(void)
+ DEFINE(TASK_SIGPENDING, offsetof(struct task_struct, thread.work.sigpending));
+ DEFINE(TASK_NOTIFY_RESUME, offsetof(struct task_struct, thread.work.notify_resume));
+ DEFINE(TASK_THREAD, offsetof(struct task_struct, thread));
++ DEFINE(TASK_TINFO, offsetof(struct task_struct, thread_info));
+ DEFINE(TASK_MM, offsetof(struct task_struct, mm));
+ DEFINE(TASK_ACTIVE_MM, offsetof(struct task_struct, active_mm));
+
+@@ -45,6 +46,9 @@ int main(void)
+ DEFINE(THREAD_FPCNTL, offsetof(struct thread_struct, fpcntl));
+ DEFINE(THREAD_FPSTATE, offsetof(struct thread_struct, fpstate));
+
++ /* offsets into the thread_info struct */
++ DEFINE(TINFO_PREEMPT, offsetof(struct thread_info, preempt_count));
++
+ /* offsets into the pt_regs */
+ DEFINE(PT_D0, offsetof(struct pt_regs, d0));
+ DEFINE(PT_ORIG_D0, offsetof(struct pt_regs, orig_d0));
+--- linux-2.6.8.1/arch/m68k/kernel/entry.S 2004-05-24 11:13:22.000000000 +0200
++++ linux-m68k-2.6.8.1/arch/m68k/kernel/entry.S 2004-09-02 20:13:12.000000000 +0200
+@@ -134,13 +134,13 @@ ENTRY(system_call)
+
+ syscall_exit_work:
+ btst #5,%sp@(PT_SR) | check if returning to kernel
+- bnes 1b | if so, skip resched, signals
++ bnes 1b | if so, skip everything
+ tstw %d0
+- jeq do_signal_return
++ jeq do_signal_return | jump if only sig_pending or notify_resume
+ tstb %d0
+- jne do_delayed_trace
++ jne do_delayed_trace | jump if delayed_trace
+
+- pea resume_userspace
++ pea resume_userspace | need_resched is set
+ jmp schedule
+
+ ret_from_exception:
+@@ -223,10 +223,14 @@ ENTRY(nmi_handler)
+ */
+ inthandler:
+ SAVE_ALL_INT
+- GET_CURRENT(%d0)
+- addqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+2)
+- | put exception # in d0
+- bfextu %sp@(PT_VECTOR){#4,#10},%d0
++ /* GET_CURRENT(%d0) */
++ movel %sp,%d0
++ andw #-THREAD_SIZE,%d0
++ movel %d0,%a1
++ addqb #1,%a1@(TINFO_PREEMPT+2)
++ movel %a1@,%curptr
++
++ bfextu %sp@(PT_VECTOR){#4,#10},%d0 | put exception # in d0
+
+ movel %sp,%sp@-
+ movel %d0,%sp@- | put vector # on stack
+@@ -243,7 +247,8 @@ inthandler:
+ 3: addql #8,%sp | pop parameters off stack
+
+ ret_from_interrupt:
+- subqb #1,%curptr@(TASK_INFO+TINFO_PREEMPT+2)
++ movel %curptr@(TASK_TINFO),%a1
++ subqb #1,%a1@(TINFO_PREEMPT+2)
+ jeq 1f
+ 2:
+ RESTORE_ALL
+--- linux-2.6.8.1/include/asm-m68k/processor.h 2004-04-28 15:49:03.000000000 +0200
++++ linux-m68k-2.6.8.1/include/asm-m68k/processor.h 2004-09-02 20:29:32.000000000 +0200
+@@ -84,7 +84,6 @@ struct thread_struct {
+ ksp: sizeof(init_stack) + (unsigned long) init_stack, \
+ sr: PS_S, \
+ fs: __KERNEL_DS, \
+- info: INIT_THREAD_INFO(init_task) \
+ }
+
+ /*
+--- linux-2.6.8.1/include/asm-m68k/thread_info.h 2004-05-24 11:13:53.000000000 +0200
++++ linux-m68k-2.6.8.1/include/asm-m68k/thread_info.h 2004-09-05 12:19:47.000000000 +0200
+@@ -6,7 +6,7 @@
+ #include <asm/page.h>
+
+ struct thread_info {
+- struct task_struct *task; /* main task structure */
++ struct task_struct *task; /* main task structure, must be first! */
+ struct exec_domain *exec_domain; /* execution domain */
+ __s32 preempt_count; /* 0 => preemptable, <0 => BUG */
+ __u32 cpu; /* should always be 0 on m68k */
+@@ -21,7 +21,8 @@ struct thread_info {
+ { \
+ .task = &tsk, \
+ .exec_domain = &default_exec_domain, \
+- .restart_block = { \
++ .preempt_count = 1, \
++ .restart_block = { \
+ .fn = do_no_restart_syscall, \
+ }, \
+ }
+@@ -35,10 +36,11 @@ struct thread_info {
+ #define free_thread_info(ti) free_pages((unsigned long)(ti),1)
+ #endif /* PAGE_SHIFT == 13 */
+
+-//#define init_thread_info (init_task.thread.info)
++#define init_thread_info (init_thread_union.thread_info)
+ #define init_stack (init_thread_union.stack)
+
+-#define current_thread_info() (current->thread_info)
++register __u32 current_thread_info_reg asm("sp");
++#define current_thread_info() ((struct thread_info *)(current_thread_info_reg & ~0x1fff))
+
+
+ #define __HAVE_THREAD_FUNCTIONS
+@@ -91,8 +93,12 @@ extern int thread_flag_fixme(void);
+ })
+
+ #define __get_set_tsk_thread_flag(tsk, flag, val) ({ \
+- int __res = __get_tsk_thread_flag(tsk, flag); \
++ int __res; \
++ unsigned long __flags; \
++ local_irq_save(__flags); \
++ __res = __get_tsk_thread_flag(tsk, flag); \
+ __set_tsk_thread_flag(tsk, flag, val); \
++ local_irq_restore(__flags); \
+ __res; \
+ })
+
+@@ -105,7 +111,4 @@ extern int thread_flag_fixme(void);
+ #define clear_thread_flag(flag) clear_tsk_thread_flag(current, flag)
+ #define test_thread_flag(flag) test_tsk_thread_flag(current, flag)
+
+-#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
+-#define clear_need_resched() clear_thread_flag(TIF_NEED_RESCHED)
+-
+ #endif /* _ASM_M68K_THREAD_INFO_H */
+--- linux-2.6.8/include/linux/sched.h.old 2004-09-13 21:48:58.000000000 -0700
++++ linux-2.6.8/include/linux/sched.h 2004-09-13 21:50:26.000000000 -0700
+@@ -975,10 +975,11 @@
+ task_unlock(task);
+
+ return mm;
+ }
+
++#ifndef __HAVE_THREAD_FUNCTIONS
+
+ /* set thread flags in other task's structures
+ * - see asm/thread_info.h for TIF_xxxx flags available
+ */
+ static inline void set_tsk_thread_flag(struct task_struct *tsk, int flag)
+@@ -1004,10 +1005,12 @@
+ static inline int test_tsk_thread_flag(struct task_struct *tsk, int flag)
+ {
+ return test_ti_thread_flag(tsk->thread_info,flag);
+ }
+
++#endif /* __HAVE_THREAD_FUNCTIONS */
++
+ static inline void set_tsk_need_resched(struct task_struct *tsk)
+ {
+ set_tsk_thread_flag(tsk,TIF_NEED_RESCHED);
+ }
+
+--- linux-2.6.8.1/include/linux/thread_info.h 2004-04-27 20:42:22.000000000 +0200
++++ linux-m68k-2.6.8.1/include/linux/thread_info.h 2004-09-04 21:24:36.000000000 +0200
+@@ -21,6 +21,7 @@ extern long do_no_restart_syscall(struct
+ #include <asm/thread_info.h>
+
+ #ifdef __KERNEL__
++#ifndef __HAVE_THREAD_FUNCTIONS
+
+ /*
+ * flag set/clear/test wrappers
+@@ -77,16 +78,11 @@ static inline int test_ti_thread_flag(st
+ return test_bit(flag,&ti->flags);
+ }
+
+-static inline void set_need_resched(void)
+-{
+- set_thread_flag(TIF_NEED_RESCHED);
+-}
++#endif /* __HAVE_THREAD_FUNCTIONS */
+
+-static inline void clear_need_resched(void)
+-{
+- clear_thread_flag(TIF_NEED_RESCHED);
+-}
++#define set_need_resched() set_thread_flag(TIF_NEED_RESCHED)
++#define clear_need_resched(void) clear_thread_flag(TIF_NEED_RESCHED)
+
+-#endif
++#endif /* __KERNEL__ */
+
+ #endif /* _LINUX_THREAD_INFO_H */
+
+Gr{oetje,eeting}s,
+
+ Geert
+
+[*] For reference:
+
+ http://linux-m68k-cvs.ubb.ca/~geert/linux-m68k-2.6.x-merging/POSTPONED/156-thread_info.diff
+
+--
+Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
+
+In personal conversations with technical people, I call myself a hacker. But
+when I'm talking to journalists I just say "programmer" or something like that.
+ -- Linus Torvalds
+
+
+
diff --git a/patches/linux/2.6.8/linux-2.6.8-noshared-kconfig.patch b/patches/linux/2.6.8/linux-2.6.8-noshared-kconfig.patch
new file mode 100644
index 0000000..326cdcd
--- /dev/null
+++ b/patches/linux/2.6.8/linux-2.6.8-noshared-kconfig.patch
@@ -0,0 +1,28 @@
+Lets you run 'make oldconfig' and 'make menuconfig' on systems
+where shared libraries aren't easy. (There's no harm in using the
+static version of libkconfig.)
+Idea mentioned by Bertrand Marquis, but this patch is a bit simpler than his.
+
+
+--- linux-2.6.8.1/scripts/kconfig/Makefile.old 2004-09-09 20:30:25.000000000 -0700
++++ linux-2.6.8.1/scripts/kconfig/Makefile 2004-09-09 20:47:51.000000000 -0700
+@@ -68,8 +68,8 @@
+ libkconfig-objs := zconf.tab.o
+
+ host-progs := conf mconf qconf gconf
+-conf-objs := conf.o libkconfig.so
+-mconf-objs := mconf.o libkconfig.so
++conf-objs := conf.o $(libkconfig-objs)
++mconf-objs := mconf.o $(libkconfig-objs)
+
+ ifeq ($(MAKECMDGOALS),xconfig)
+ qconf-target := 1
+@@ -88,7 +88,7 @@
+ gconf-objs := gconf.o kconfig_load.o
+ endif
+
+-clean-files := libkconfig.so lkc_defs.h qconf.moc .tmp_qtcheck \
++clean-files := $(libkconfig-objs) lkc_defs.h qconf.moc .tmp_qtcheck \
+ .tmp_gtkcheck zconf.tab.c zconf.tab.h lex.zconf.c
+
+ # generated files seem to need this to find local include files