[PATCH] i386: Fix usage of -mtune when X86_GENERIC=y or CONFIG_MCORE2=y



Two fixes to arch/i386/Makefile.cpu:

1) When X86_GENERIC=y is set, use -mtune=i686 if $(CC) doesn't
support -mtune=generic. GCC 4.1.2 and earlier don't support
-mtune=generic. When building a generic kernel for a distro
that runs on i586 and better, it is nice to use
-march=i586 -mtune=i686 instead of plain -march=i586.

2) Use $(call tune) instead of hardcoded -mtune when CONFIG_MCORE2=y.
This makes it possible to have CONFIG_MCORE2=y when using GCC 3.3,
which uses -mcpu instead of -mtune. Also dropped fallback to
-mtune=generic and -mtune=i686, because -march=i686 already
implies -mtune=i686.

The patch is against 2.6.20, but Makefile.cpu hasn't changed recently.

--- linux-2.6.20/arch/i386/Makefile.cpu.orig 2007-02-04 20:44:54.000000000 +0200
+++ linux-2.6.20/arch/i386/Makefile.cpu 2007-02-28 21:22:47.000000000 +0200
@@ -4,9 +4,9 @@
#-mtune exists since gcc 3.4
HAS_MTUNE := $(call cc-option-yn, -mtune=i386)
ifeq ($(HAS_MTUNE),y)
-tune = $(call cc-option,-mtune=$(1),)
+tune = $(call cc-option,-mtune=$(1),$(2))
else
-tune = $(call cc-option,-mcpu=$(1),)
+tune = $(call cc-option,-mcpu=$(1),$(2))
endif

align := $(cc-option-align)
@@ -32,7 +32,7 @@
cflags-$(CONFIG_MWINCHIP3D) += $(call cc-option,-march=winchip2,-march=i586)
cflags-$(CONFIG_MCYRIXIII) += $(call cc-option,-march=c3,-march=i486) $(align)-functions=0 $(align)-jumps=0 $(align)-loops=0
cflags-$(CONFIG_MVIAC3_2) += $(call cc-option,-march=c3-2,-march=i686)
-cflags-$(CONFIG_MCORE2) += -march=i686 $(call cc-option,-mtune=core2,$(call cc-option,-mtune=generic,-mtune=i686))
+cflags-$(CONFIG_MCORE2) += -march=i686 $(call tune,core2)

# AMD Elan support
cflags-$(CONFIG_X86_ELAN) += -march=i486
@@ -42,5 +42,5 @@

# add at the end to overwrite eventual tuning options from earlier
# cpu entries
-cflags-$(CONFIG_X86_GENERIC) += $(call tune,generic)
+cflags-$(CONFIG_X86_GENERIC) += $(call tune,generic,$(call tune,i686))


--
Lasse Collin | IRC: Larhzu @ IRCnet & Freenode
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/



Relevant Pages

  • Re: math.nroot [was Re: A brief question.]
    ... > so before VC 7.1 was released (C99 ain't exactly new anymore). ... > support _some_ way to get at this stuff. ... This includes gcc before C99 ... > and fenv.h -- if the platforms represented in fpectlmodule.c were ...
    (comp.lang.python)
  • Re: Idea: Multitasking graphical OS for the GS
    ... IIgs 65816 compiler that has nearly the number of ... gcc also has a much larger support infrastructure where it will be easier to ... The software developer and the hardware ...
    (comp.sys.apple2)
  • Re: Compiling Tcl with Msys/MinGW on Windows XP
    ... checking for gcc... ... checking whether the C compiler is a cross-compiler... ... checking for EXCEPTION_DISPOSITION support in include files... ... I saw one case were people had to use msys 1.0.6 ...
    (comp.lang.tcl)
  • Re: C is too old? opinions?
    ... You insisted that this pragma is supported by many compilers, ... I cannot find any mention of it in the documentation for my current gcc ... If they support if, it is undocumented and probably deprecated. ... And, of course, the bar software worked fine. ...
    (comp.lang.c)
  • Re: Non ASCII characters in CFString litteral, HELP !
    ... Same for icc ... CodeWarrior is PPC-only and very dead, ... compilers listed don't even support Objective-C. ... For this particular case, blame C or Cocoa, not gcc. ...
    (comp.sys.mac.programmer.help)