I've heard adding the patch usually helps getting it review so here it is. :-) Best regards, Thomas On 07/06/17 16:42, Thomas Preudhomme wrote: > Hi, > > The general arm_arch_*_ok procedures check architecture availability by > substituting macros inside a defined preprocessor operator. This limits > them to only check definition of only one macro and force ARMv7VE to be > special cased. > > This patch takes advantage of the fact that architecture macros, when > defined, are not null to allow expressing architecture availability by > a boolean operation of possibly several macros. It then takes advantage > of this to deal with ARMv7VE in the general case. The patch also adds a > comment to make it clear that check_effective_target_arm_arch_FUNC_ok > does not work as intendend for architecture extensions (eg. ARMv8.1-A) > due to lack of extension-specific macro similar to __ARM_ARCH_*__. > > ChangeLog entry is as follows: > > *** gcc/testsuite/ChangeLog *** > > 2017-06-06 Thomas Preud'homme > > * lib/target-supports.exp (check_effective_target_arm_arch_FUNC_ok): > Test for null definitions instead of them being undefined. Add entry > for ARMv7VE. Reindent entry for ARMv8-M Baseline. Add comment warning > about using the effective target for architecture extension. > (check_effective_target_arm_arch_v7ve_ok): Remove. > (add_options_for_arm_arch_v7ve): Likewise. > > Testing: > - gcc.target/arm/atomic_loaddi_10.c passes with the patch for armv7ve > but is marked unsupported for armv7-a > - verified in the logs that -march=armv7ve is correctly added when > running gcc.target/arm/ftest-armv7ve-arm.c > > Is this ok for trunk? > > Best regards, > > Thomas