summaryrefslogtreecommitdiff
path: root/patches/linux/2.4.26/120-linux-2.4.21-allow-gcc-3.3-arm-lib.patch
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-09-23 17:08:09 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-09-23 17:08:09 (GMT)
commitb1e693e40281dc8c451e8892dfcdf55d78a4ade3 (patch)
treec276bc44f23b42895b459efbf2597f4bef378819 /patches/linux/2.4.26/120-linux-2.4.21-allow-gcc-3.3-arm-lib.patch
parent3ad6464ffe38eb15591b404e0749aa89f4074fd1 (diff)
Renamed all patches file names so that locales are now irrelevant to sort the files.
Removed the locale check as it is now irrelevant. Removed the experimental binutils 2.17.50.0.xx: 2.18 is here now.
Diffstat (limited to 'patches/linux/2.4.26/120-linux-2.4.21-allow-gcc-3.3-arm-lib.patch')
-rw-r--r--patches/linux/2.4.26/120-linux-2.4.21-allow-gcc-3.3-arm-lib.patch203
1 files changed, 203 insertions, 0 deletions
diff --git a/patches/linux/2.4.26/120-linux-2.4.21-allow-gcc-3.3-arm-lib.patch b/patches/linux/2.4.26/120-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/120-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"); \