Commit 545e7a03 authored by Andrew Morton's avatar Andrew Morton Committed by Linus Torvalds

[PATCH] Enforce gcc-2.95 as the minimum compiler requirement

Now that sparc64 is using gcc-3.x we can disallow gcc-2.91, etc.

Documentation/Changes already says 2.95.3, which is working fine for me.

With this change, we no longer require that per-cpu data definitions be
initialised.  That was a workaround for a bug in older gccs.  So remove the
build infrastructure which was checking for that.

Also, mention that nfs-utils-1.0.3 is required.  It isn't required yet, but
will be once we enable larger dev_t: there is an interface for exportfs which
passes dev_t's into the kernel which breaks with larger dev_t.  That
interface is old, deprecated and is not used in nfs-utils-1.0.3.
parent 3c45e4d6
...@@ -62,6 +62,7 @@ o PPP 2.4.0 # pppd --version ...@@ -62,6 +62,7 @@ o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o procps 2.0.9 # ps --version o procps 2.0.9 # ps --version
o oprofile 0.5 # oprofiled --version o oprofile 0.5 # oprofiled --version
o nfs-utils 1.0.3 # showmount --version
Kernel compilation Kernel compilation
================== ==================
......
...@@ -342,17 +342,9 @@ define rule_vmlinux__ ...@@ -342,17 +342,9 @@ define rule_vmlinux__
echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd echo 'cmd_$@ := $(cmd_vmlinux__)' > $(@D)/.$(@F).cmd
endef endef
ifdef CONFIG_SMP
# Final awk script makes sure per-cpu vars are in per-cpu section, as
# old gcc (eg egcs 2.92.11) ignores section attribute if uninitialized.
check_per_cpu = $(AWK) -f $(srctree)/scripts/per-cpu-check.awk < System.map
endif
define rule_vmlinux define rule_vmlinux
$(rule_vmlinux__) $(rule_vmlinux__)
$(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map $(NM) $@ | grep -v '\(compiled\)\|\(\.o$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | sort > System.map
$(check_per_cpu)
endef endef
LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s LDFLAGS_vmlinux += -T arch/$(ARCH)/vmlinux.lds.s
......
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
* To avoid associated bogus bug reports, we flatly refuse to compile * To avoid associated bogus bug reports, we flatly refuse to compile
* with a gcc that is known to be too old from the very beginning. * with a gcc that is known to be too old from the very beginning.
*/ */
#if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 91) #if __GNUC__ < 2 || (__GNUC__ == 2 && __GNUC_MINOR__ < 95)
#error Sorry, your GCC is too old. It builds incorrect kernels. #error Sorry, your GCC is too old. It builds incorrect kernels.
#endif #endif
......
/ __per_cpu_start$$/ {
IN_PER_CPU=1
}
/ __per_cpu_end$$/ {
IN_PER_CPU=0
}
/__per_cpu$$/ && ! ( / __ksymtab_/ || / __kstrtab_/ || / __kcrctab_/ || / __crc_/ ) {
if (!IN_PER_CPU) {
print $$3 " not in per-cpu section" > "/dev/stderr";
FOUND=1;
}
}
END {
exit FOUND;
}
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment