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

Reply via email to