Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1365647 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds
Browse files

[PATCH] remove gcc-2 checks



Remove various things which were checking for gcc-1.x and gcc-2.x compilers.

From: Adrian Bunk <bunk@stusta.de>

    Some documentation updates and removes some code paths for gcc < 3.2.

Acked-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent fd285bb5
Loading
Loading
Loading
Loading
+5 −26
Original line number Diff line number Diff line
@@ -31,8 +31,6 @@ al espa
Eine deutsche Version dieser Datei finden Sie unter
<http://www.stefan-winter.de/Changes-2.4.0.txt>.

Last updated: October 29th, 2002

Chris Ricker (kaboom@gatech.edu or chris.ricker@genetics.utah.edu).

Current Minimal Requirements
@@ -48,7 +46,7 @@ necessary on all systems; obviously, if you don't have any ISDN
hardware, for example, you probably needn't concern yourself with
isdn4k-utils.

o  Gnu C                  2.95.3                  # gcc --version
o  Gnu C                  3.2                     # gcc --version
o  Gnu make               3.79.1                  # make --version
o  binutils               2.12                    # ld -v
o  util-linux             2.10o                   # fdformat --version
@@ -74,26 +72,7 @@ GCC
---

The gcc version requirements may vary depending on the type of CPU in your
computer. The next paragraph applies to users of x86 CPUs, but not
necessarily to users of other CPUs. Users of other CPUs should obtain
information about their gcc version requirements from another source.

The recommended compiler for the kernel is gcc 2.95.x (x >= 3), and it
should be used when you need absolute stability. You may use gcc 3.0.x
instead if you wish, although it may cause problems. Later versions of gcc 
have not received much testing for Linux kernel compilation, and there are 
almost certainly bugs (mainly, but not exclusively, in the kernel) that
will need to be fixed in order to use these compilers. In any case, using
pgcc instead of plain gcc is just asking for trouble.

The Red Hat gcc 2.96 compiler subtree can also be used to build this tree.
You should ensure you use gcc-2.96-74 or later. gcc-2.96-54 will not build
the kernel correctly.

In addition, please pay attention to compiler optimization.  Anything
greater than -O2 may not be wise.  Similarly, if you choose to use gcc-2.95.x
or derivatives, be sure not to use -fstrict-aliasing (which, depending on
your version of gcc 2.95.x, may necessitate using -fno-strict-aliasing).
computer.

Make
----
@@ -322,9 +301,9 @@ Getting updated software
Kernel compilation
******************

gcc 2.95.3
----------
o  <ftp://ftp.gnu.org/gnu/gcc/gcc-2.95.3.tar.gz>
gcc
---
o  <ftp://ftp.gnu.org/gnu/gcc/>

Make
----
+2 −5
Original line number Diff line number Diff line
@@ -183,11 +183,8 @@ CONFIGURING the kernel:

COMPILING the kernel:

 - Make sure you have gcc 2.95.3 available.
   gcc 2.91.66 (egcs-1.1.2), and gcc 2.7.2.3 are known to miscompile
   some parts of the kernel, and are *no longer supported*.
   Also remember to upgrade your binutils package (for as/ld/nm and company)
   if necessary. For more information, refer to Documentation/Changes.
 - Make sure you have at least gcc 3.2 available.
   For more information, refer to Documentation/Changes.

   Please note that you can still run a.out user programs with this kernel.

+2 −7
Original line number Diff line number Diff line
@@ -23,20 +23,15 @@
#error Sorry, your compiler targets APCS-26 but this kernel requires APCS-32
#endif
/*
 * 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/PR8896) and incorrect structure
 *	      initialisation in fs/jffs2/erase.c
 */
#if __GNUC__ < 2 || \
   (__GNUC__ == 2 && __GNUC_MINOR__ < 95) || \
   (__GNUC__ == 2 && __GNUC_MINOR__ == 95 && __GNUC_PATCHLEVEL__ != 0 && \
					     __GNUC_PATCHLEVEL__ < 3) || \
   (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
#if (__GNUC__ == 3 && __GNUC_MINOR__ < 3)
#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.3
#error    Known good compilers: 3.3
#endif

/* Use marker if you need to separate the values later */
+0 −7
Original line number Diff line number Diff line
@@ -25,13 +25,6 @@
#if defined(__APCS_32__) && defined(CONFIG_CPU_26)
#error Sorry, your compiler targets APCS-32 but this kernel requires APCS-26
#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.
#endif

/* Use marker if you need to separate the values later */

+0 −4
Original line number Diff line number Diff line
@@ -630,10 +630,6 @@ config REGPARM
	and passes the first three arguments of a function call in registers.
	This will probably break binary only modules.

	This feature is only enabled for gcc-3.0 and later - earlier compilers
	generate incorrect output with certain kernel constructs when
	-mregparm=3 is used.

config SECCOMP
	bool "Enable seccomp to safely compute untrusted bytecode"
	depends on PROC_FS
Loading