On Wed, 2009-05-27 at 11:22 +0200, Arnaud Patard wrote: > wuzhangjin@xxxxxxxxx writes: > Hi, > > > From: Wu Zhangjin <wuzj@xxxxxxxxxx> > > > > the gcc 4.4 support for MIPS mostly refer to this PATCH: > > http://www.nabble.com/-PATCH--MIPS:-Handle-removal-of-%27h%27-constraint-in-GCC-4.4-td22192768.html > > but have been tuned a little. > > > > because only gcc 4.4 have loongson-specific support, so, we need to > > choose the suitable -march argument for gcc <= 4.3 and gcc >= 4.4, and > > we also need to consider use -march=loongson2e and -march=loongson2f for > > loongson2e and loongson2f respectively. this is handled by adding two > > new kernel options: CPU_LOONGSON2E and CPU_LOONGSON2F(thanks for the > > solutin provided by ZhangLe). > > > > I have tested it on FuLoong(2f) in 32bit and 64bit with gcc-4.4 and > > gcc-4.3. so, basically, it works. > > > > Signed-off-by: Wu Zhangjin <wuzhangjin@xxxxxxxxx> > > --- > > arch/mips/Makefile | 9 +++++- > > arch/mips/include/asm/compiler.h | 10 ++++++ > > arch/mips/include/asm/delay.h | 58 +++++++++++++++++++++++++------------ > > 3 files changed, 57 insertions(+), 20 deletions(-) > > > > diff --git a/arch/mips/Makefile b/arch/mips/Makefile > > index a25c2e5..1ee5504 100644 > > --- a/arch/mips/Makefile > > +++ b/arch/mips/Makefile > > @@ -120,7 +120,14 @@ cflags-$(CONFIG_CPU_R4300) += -march=r4300 -Wa,--trap > > cflags-$(CONFIG_CPU_VR41XX) += -march=r4100 -Wa,--trap > > cflags-$(CONFIG_CPU_R4X00) += -march=r4600 -Wa,--trap > > cflags-$(CONFIG_CPU_TX49XX) += -march=r4600 -Wa,--trap > > -cflags-$(CONFIG_CPU_LOONGSON2) += -march=r4600 -Wa,--trap > > + > > +# only gcc >= 4.4 have the loongson-specific support > > +cflags-$(CONFIG_CPU_LOONGSON2) += -Wa,--trap > > +cflags-$(CONFIG_CPU_LOONGSON2E) += $(shell if [ $(call cc-version) -lt 0440 ] ; then \ > > + echo $(call cc-option,-march=r4600); else echo $(call cc-option,-march=loongson2e); fi ;) > > +cflags-$(CONFIG_CPU_LOONGSON2F) += $(shell if [ $(call cc-version) -lt 0440 ] ; then \ > > + echo $(call cc-option,-march=r4600); else echo $(call cc-option,-march=loongson2f); fi ;) > > + > > why not using something like that ? : > cflags-$(CONFIG_LOONGSON2E) += \ > $(call cc-option,-march=loongson2e,$(call cc-option,-march=r4600)) > cflags-$(CONFIG_LOONGSON2F) += \ > $(call cc-option,-march=loongson2f,$(call cc-option,-march=r4600)) > applied. Documentation/kbuild/makefiles.txt: cc-option is used to check if $(CC) supports a given option, and not supported to use an optional second option. thx! Wu Zhangjin