On Mon, Aug 25, 2014 at 08:35:17PM +0100, Maciej W. Rozycki wrote: > On Mon, 25 Aug 2014, Ralf Baechle wrote: > > > > >> +cflags-$(CONFIG_CPU_LOONGSON3) += -D_MIPS_ARCH_LOONGSON3A > > > > > > > > The _MIPS_ARCH_* namespace belongs to GCC. While it seems current GCC > > > > does not define this symbol _MIPS_ARCH_LOONGSON3A runs into the danger > > > > of causing a conflict when GCC eventually will define the symbol. > > > When this symbol will be defined? With option '-march=loongson3a'? > > > > Well, not currently (at least not in my gcc 4.9.0) - but it might. In > > fact, I'm wondering why it doesn't. Maciej? > > No idea, a _MIPS_ARCH_foo macro gets defined automagically by GCC > whenever `-march=foo' is in effect (be it implicitly or with the use of a > command-line option), so there should be one. > > Has support for "loongson3a" been present in 4.9.x (it is in trunk)? If > so, then what _MIPS_ARCH_* macro gets defined for `-march=loongson3a'? Hmm - I must have fatfingered something. Now I'm getting: $ mips-linux-gcc < /dev/null -E -C -dM -march=loongson3a - | grep _MIPS_ARCH #define _MIPS_ARCH_LOONGSON3A 1 #define _MIPS_ARCH "loongson3a" $ So that would conflict with a manual definition, thus the patch would not be acceptable as it because: $ cat > c.c << EOF foo(){} EOF $ mips-linux-gcc -D_MIPS_ARCH_LOONGSON3A -march=loongson3a -Wall -c c.c c.c:1:1: warning: return type defaults to ‘int’ [-Wreturn-type] foo(){} ^ c.c: In function ‘foo’: c.c:1:1: warning: control reaches end of non-void function [-Wreturn-type] foo(){} ^ $ Ralf