On 24/08/16 09:13, Ramana Radhakrishnan wrote:
On 10/08/16 14:28, Thomas Preudhomme wrote:
Hi,
Mappings (MULTILIB_MATCHES and MULTILIB_REUSE) in ARM aprofile multilib suffer
from a number of issues:
* missing mapping of -mcpu=cortex-a7 to -march=armv7-a
You mean -march=armv7ve...
Yes indeed, as reflected by the new directory used for -mcpu=cortex-a7 after the
patch (v7ve).
* typo on vfpv3-d16-fp16 (MULTILIB_MATCHES uses vfpv3-fp16-d16 instead)
* missing mapping for neon-fp16, fpv5-d16 and fp-armv8 to neon, vfpv4 and vfpv4
respectively
* reuse directive with option not in MULTILIB_OPTION (-mfpu=vfpv4 and
-mfpu=fp-armv8)
The latter leads to unexpected results currently: GCC creates a reuse mapping
that match for any -mfpu not in MULTILIB_OPTIONS. This means for instance that
-march=armv7-a -mfpu=vfp -mfloat-abi=hard is mapped to -march=armv7-a
-mfpu=vfpv3-d16 -mfloat-abi=hard. With this patch, it is now mapped to the
default multilib (ie. -print-multi-directory gives .) which is a softfloat
multilib. Arguably an option not in MULTILIB_OPTIONS should give an error when
appearing in MULTILIB_REUSE rather the current behavior. This should be the
object of a future patch.
The patch in attachment fixes all the issues mentioned above.
ChangeLog entry is as follows:
*** gcc/ChangeLog ***
2016-08-01 Thomas Preud'homme <thomas.preudho...@arm.com>
* config/arm/t-aprofile (MULTILIB_MATCHES): Add mapping for
-mcpu=cortex-a7, -mfpu=neon-fp16, -mfpu=fpv5-d16 and -mfpu=fp-armv8.
Fix typo in -mfpu=vfpv3-d16-fp16 mapping.
(MULTILIB_REUSE): Remove reuse rules for option set including
-mfpu=fp-armv8 and -mfpu=vfpv4
OK.
Thanks, committed.
Best regards,
Thomas