Ping and changelog spaces removed. Thank you, Mantas M. On 18/11/14 11:58, Richard Earnshaw wrote: > On 18/11/14 11:30, Mantas Mikaitis wrote: >> Incorrect predefinitions for certain target architectures. E.g. arm7-m >> does not contain NEON but the defintion __ARM_NEON_FP was switched on. >> Similarly with armv6 and even armv2. >> >> This patch fixes the predefines for each of the different chips >> containing certain types of the FPU implementations. >> >> Tests: >> >> Tested on arm-none-linux-gnueabi and arm-none-linux-gnueabihf without >> any new regression. >> >> Manually compiled for various targets and all correct definitions were >> present. >> >> Is this patch ok for trunk? >> >> Mantas >> >> gcc/Changelog: >> >> * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition, define to zero if !TARGET_NEON. >> (TARGET_CPU_CPP_BUILTINS): Added second condition before defining __ARM_FP macro. >> >> >> ARM_DEFS.patch >> >> >> diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h >> index ff4ddac..325fea9 100644 >> --- a/gcc/config/arm/arm.h >> +++ b/gcc/config/arm/arm.h >> @@ -118,7 +118,7 @@ extern char arm_arch_name[]; >> if (TARGET_VFP) \ >> builtin_define ("__VFP_FP__"); \ >> \ >> - if (TARGET_ARM_FP) \ >> + if (TARGET_ARM_FP && !TARGET_SOFT_FLOAT) \ > Wouldn't it be better to factor this into TARGET_ARM_FP? It seems odd > that that macro returns a set of values based on something completely > unavailable for the current compilation. That would also then mirror > the behaviour of TARGET_NEON_FP (see below) and make the internal macros > more consistent. > > R. Thank you. Patch updated. Ok for trunk? Mantas M. gcc/Changelog 2014-12-03 Mantas Mikaits * config/arm/arm.h (TARGET_NEON_FP): Removed conditional definition, define to zero if !TARGET_NEON. (TARGET_ARM_FP): Added !TARGET_SOFT_FLOAT into the conditional definition. gcc/testsuite/ChangeLog: * gcc.target/arm/macro_defs0.c: New test. * gcc.target/arm/macro_defs1.c: New test. * gcc.target/arm/macro_defs2.c: New test.