2.5.69 Change to i386 Makefile to distinguish athlons.
PATCH 1/1 2.5.69 Change to i386 Makefile to distinguish athlons.
It should succesfully set -march=athlon-<type> according to uname -p.
arch/i386/Makefile 2003-05-14 14:50:03.000000000 -0400 renamed from arch/i386/Makefile.orig 2003-05-14 13:37:19.000000000 -0400 +0 -0
@@ -23,7 +23,7 @@
CFLAGS += -pipe
check_gcc = $(shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi) -
+get_athlon_type = ${shell case uname -p in "* 4 *") echo "athlon-4";;*XP*) echo "athlon-xp";;*MP*) echo "athlon-mp";;*) echo "athlon";;esac}
# prevent gcc from keeping the stack 16 byte aligned CFLAGS += $(call check_gcc,-mpreferred-stack-boundary=2,)
@@ -39,7 +39,7 @@
cflags-$(CONFIG_MPENTIUMIII) += $(call check_gcc,-march=pentium3,-march=i686)
cflags-$(CONFIG_MPENTIUM4) += $(call check_gcc,-march=pentium4,-march=i686)
cflags-$(CONFIG_MK6) += $(call check_gcc,-march=k6,-march=i586)
-cflags-$(CONFIG_MK7) += $(call check_gcc,-march=athlon,-march=i686 $(align)-functions=4)
+cflags-$(CONFIG_MK7) += $(call check_gcc,-march=$(call get_athlon_type),-march=i686 $(align)-functions=4)
cflags-$(CONFIG_MK8) += $(call check_gcc,-march=k8,$(call check_gcc,-march=athlon,-march=i686 $(align)-functions=4))
cflags-$(CONFIG_MCRUSOE) += -march=i686 $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MWINCHIPC6) += $(call check_gcc,-march=winchip-c6,-march=i586)
Quoted 1 line · Jonathan Bastien-Filiatrault
It should succesfully set -march=athlon-<type> according to uname -p.
"Look, a new way to do something pointless!"
This is just as broken as the previous patch that was posted. _READ_ the gcc sources. See what those flags do.
The only differences are the enabling of PTA_SSE on the later models. "Cool, I have SSE, I want optimised SSE routines". Bad luck. This flag makes damn all difference on integer code. FP code is not allowed in kernel space, and in the few exceptions where we do use it (see the memcpy routines), it's guarded by explicit kernel_fpu_begin() kernel_fpu_end() pairs, something that gcc wouldn't be able to add for us.
Dave
Quoted 12 lines · Jonathan Bastien-Filiatrault
It should succesfully set -march=athlon-<type> according to uname -p.
--- linux-2.5.69/arch/i386/Makefile.orig 2003-05-14
13:37:19.000000000 -0400
+++ linux-2.5.69/arch/i386/Makefile 2003-05-14 14:50:03.000000000 -0400(quoted diff) +0
-0@@ -23,7 +23,7 @@CFLAGS += -pipe
check_gcc= $(shell if $(CC) $(1) -S -o/dev/null-xc/dev/null>/dev/null2>&1; then echo "$(1)"; else echo "$(2)"; fi)(quoted diff) +1
-1- +get_athlon_type = ${shell case `uname -p` in "* 4 *") echo
Quoted 2 lines
"athlon-4";;*XP*) echo "athlon-xp";;*MP*) echo "athlon-mp";;*) echo "athlon";;esac}
This is broken.
You have no guarantee whatsoever that the kernel is being compiled for the machine where you do the compilation.
Sam