Hi James,
This commit (SVN r206045) seems to have introduced a problem when
compiling multiple source files if a -mcpu option is also present on
the command line.
This can be reproduced in a arm-unknown-linux-gnueabihf build with any
source file which use floating point arguments/results. For example
===== t.c
float f(void) { return 1.0f;}
=====
Note that the example command line here specifies t.c twice, although
any two source files can be used. It is the second compilation which
triggers the error.
$
~/tools/tools-arm-unknown-linux-gnueabihf-trunk/bin/arm-unknown-linux-gnueabihf-gcc
-mcpu=cortex-a15 -O2 -c t.c t.c
t.c: In function âfâ:
t.c:2:1: sorry, unimplemented: Thumb-1 hard-float VFP ABI
float f(void) { return 1.0f;}
^
Thanks in advance for taking a look
Charles
On 17 December 2013 11:53, Richard Earnshaw <[email protected]> wrote:
> On 17/12/13 10:40, James Greenhalgh wrote:
>>
>> Hi,
>>
>> This patch adds machinery to the driver to ensure that big.LITTLE
>> style tuning names are rewritten before they are passed to the
>> assembler. This reduces the coupling needed between GCC versions
>> and assembler versions.
>>
>> The rule is simple, we truncate the CPU name at the first '.'
>> character we see.
>>
>> Thus -mcpu=cortex-a15.cortex-a7 would be truncated to -mcpu=cortex-a15.
>>
>> Bootstrapped on a ChromeBook and checked for an arm-none-eabi and
>> an arm-none-linux-gnueabi build.
>>
>> Thanks,
>> James
>>
>> ---
>> gcc/
>>
>> 2013-12-17 James Greenhalgh <[email protected]>
>>
>> * common/config/arm/arm-common.c (arm_rewrite_selected_cpu): New.
>> (arm_rewrite_mcpu): Likewise.
>> * config/arm/arm-protos.h (arm_rewrite_selected_cpu): New.
>> * config/arm/arm.h (BIG_LITTLE_SPEC): New.
>> (BIG_LITTLE_SPEC_FUNCTIONS): Likewise.
>> (EXTRA_SPEC_FUNCTIONS): Include BIG_LITTLE_SPEC_FUNCTIONS.
>> (ASM_CPU_SPEC): Include BIG_LITTLE_SPEC.
>> * config/arm/arm.c (arm_file_start): Rewrite arm_selecetd_cpu values.
>>
>
> OK.
>
> R.
>
>