On Wed, 2009-05-27 at 11:22 +0200, Arnaud Patard wrote:
> wuzhangjin@gmail.com writes:
> Hi,
>
> > From: Wu Zhangjin <wuzj@lemote.com>
> >
> > 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@gmail.com>
> > ---
> > 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
|