summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell King <rmk@flint.arm.linux.org.uk>2003-04-30 12:04:09 +0100
committerRussell King <rmk@flint.arm.linux.org.uk>2003-04-30 12:04:09 +0100
commit3af3fd45a7219a28f63ae0dcc22d34cc6887b8ce (patch)
treebf042e347cee105ba4ee6809ab4091556ff548a7
parentd1f880abc403575e9166ec673a855877352d3af3 (diff)
parentc4da9254005d9bfd0f89d584fd41ae23467033b0 (diff)
Merge flint.arm.linux.org.uk:/usr/src/linux-bk-2.5/linux-2.5
into flint.arm.linux.org.uk:/usr/src/linux-bk-2.5/linux-2.5-rmk
-rw-r--r--arch/arm/kernel/asm-offsets.c24
-rw-r--r--arch/arm/kernel/calls.S4
-rw-r--r--arch/arm/mm/consistent.c2
-rw-r--r--include/asm-arm/bugs.h2
4 files changed, 19 insertions, 13 deletions
diff --git a/arch/arm/kernel/asm-offsets.c b/arch/arm/kernel/asm-offsets.c
index 9506ae5f60dd..785fed8a2384 100644
--- a/arch/arm/kernel/asm-offsets.c
+++ b/arch/arm/kernel/asm-offsets.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 1995-2001 Russell King
+ * Copyright (C) 1995-2003 Russell King
* 2001-2002 Keith Owens
*
* Generate definitions needed by assembly language modules.
@@ -24,12 +24,21 @@
#if defined(__APCS_26__)
#error Sorry, your compiler targets APCS-26 but this kernel requires APCS-32
#endif
-#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
-#error Sorry, your compiler is known to miscompile kernels. Only use gcc 2.95.3 and later.
-#endif
-#if __GNUC__ == 2 && __GNUC_MINOR__ == 95
-/* shame we can't detect the .1 or .2 releases */
-#warning GCC 2.95.2 and earlier miscompiles kernels.
+/*
+ * GCC 2.95.1, 2.95.2: ignores register clobber list in asm().
+ * GCC 3.0, 3.1: general bad code generation.
+ * GCC 3.2.0: incorrect function argument offset calculation.
+ * GCC 3.2.x: miscompiles NEW_AUX_ENT in fs/binfmt_elf.c
+ * (http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view&pr=8896)
+ */
+#if __GNUC__ < 2 || \
+ (__GNUC__ == 2 && __GNUC_MINOR__ < 95) || \
+ (__GNUC__ == 2 && __GNUC_MINOR__ == 95 && __GNUC_PATCHLEVEL__ != 0 && \
+ __GNUC_PATCHLEVEL__ < 3) || \
+ (__GNUC__ == 3 && __GNUC_MINOR__ < 2) || \
+ (__GNUC__ == 3 && __GNUC_MINOR__ == 2 && __GNUC_PATCHLEVEL__ < 1)
+#error Your compiler is too buggy; it is known to miscompile kernels.
+#error Known good compilers: 2.95.3, 2.95.4, 2.96, 3.2.2+PR8896
#endif
/* Use marker if you need to separate the values later */
@@ -62,7 +71,6 @@ int main(void)
DEFINE(LPTE_EXEC, L_PTE_EXEC);
DEFINE(LPTE_DIRTY, L_PTE_DIRTY);
BLANK();
- BLANK();
DEFINE(PAGE_SZ, PAGE_SIZE);
BLANK();
DEFINE(SYS_ERROR0, 0x9f0000);
diff --git a/arch/arm/kernel/calls.S b/arch/arm/kernel/calls.S
index 58e4c2d4b239..2c13b70f775a 100644
--- a/arch/arm/kernel/calls.S
+++ b/arch/arm/kernel/calls.S
@@ -1,7 +1,7 @@
/*
- * linux/arch/arm/lib/calls.h
+ * linux/arch/arm/kernel/calls.S
*
- * Copyright (C) 1995-1998 Russell King
+ * Copyright (C) 1995-2003 Russell King
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
diff --git a/arch/arm/mm/consistent.c b/arch/arm/mm/consistent.c
index 265c8fbe868e..9905eadd83f1 100644
--- a/arch/arm/mm/consistent.c
+++ b/arch/arm/mm/consistent.c
@@ -330,7 +330,7 @@ static int __init consistent_init(void)
core_initcall(consistent_init);
/*
- * make an area consistent for devices.
+ * Make an area consistent for devices.
*/
void consistent_sync(void *vaddr, size_t size, int direction)
{
diff --git a/include/asm-arm/bugs.h b/include/asm-arm/bugs.h
index 14a4e05eee8c..adae0482000d 100644
--- a/include/asm-arm/bugs.h
+++ b/include/asm-arm/bugs.h
@@ -10,8 +10,6 @@
#ifndef __ASM_BUGS_H
#define __ASM_BUGS_H
-#include <asm/proc-fns.h>
-
#define check_bugs() do { } while (0)
#endif