Patchwork external toolchain: [ARC] gcc cpu parameter

login
register
mail settings
Submitter Noam Camus
Date Feb. 23, 2014, 8:28 a.m.
Message ID <884EA965490E3C4D8E66AEF41E98025006BF3A@ezex10.ezchip.com>
Download mbox | patch
Permalink /patch/323287/
State Rejected
Headers show

Comments

Noam Camus - Feb. 23, 2014, 8:28 a.m.
external toolchain passes -mcpu=arc700
However compiler is familiar with -mcpu=ARC700

Signed-off-by: Noam Camus <noamc@ezchip.com>
---
 arch/Config.in.arc |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

--
1.7.1
Thomas Petazzoni - Feb. 23, 2014, 9:48 a.m.
Dear Noam Camus,

On Sun, 23 Feb 2014 08:28:55 +0000, Noam Camus wrote:
> external toolchain passes -mcpu=arc700
> However compiler is familiar with -mcpu=ARC700
> 
> Signed-off-by: Noam Camus <noamc@ezchip.com>
> ---
>  arch/Config.in.arc |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc index 60b59f0..53e7052 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -11,4 +11,5 @@ config BR2_ENDIAN
>  	default "BIG"	 if BR2_arceb
>  
>  config BR2_GCC_TARGET_CPU
> +	default "ARC700" if BR2_TOOLCHAIN_EXTERNAL
>  	default "arc700"

We clearly don't want to use BR2_TOOLCHAIN_EXTERNAL here as a
condition. What is the official value? Is it -mcpu=arc700 or
-mcpu=ARC700 ? Maybe the existing arc700 value was wrong and should
just be fixed? Or does the value depends on the gcc version?

Thanks,

Thomas
Noam Camus - Feb. 23, 2014, 10:57 a.m.
Hi Thomas,
Using external toolchain than BR2_GCC_TARGET_CPU is passed to GCC by -mcpu 
Using buildroot toolchain than BR2_GCC_TARGET_CPU is passed to configure by --with-cpu

ARC GCC likes to get -mcpu=ARC700
However through configure I am not sure but I think that config.gcc script is involved and it likes to get arc*.

Maybe my patch is a workaround to make external toolchain work for ARC and complete solution is to change ARC GCC.

Noam

-----Original Message-----
From: Thomas Petazzoni [mailto:thomas.petazzoni@free-electrons.com] 
Sent: Sunday, February 23, 2014 11:48 AM
To: Noam Camus
Cc: buildroot@busybox.net
Subject: Re: [Buildroot] [PATCH] external toolchain: [ARC] gcc cpu parameter

Dear Noam Camus,

On Sun, 23 Feb 2014 08:28:55 +0000, Noam Camus wrote:
> external toolchain passes -mcpu=arc700 However compiler is familiar 
> with -mcpu=ARC700
> 
> Signed-off-by: Noam Camus <noamc@ezchip.com>
> ---
>  arch/Config.in.arc |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc index 
> 60b59f0..53e7052 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -11,4 +11,5 @@ config BR2_ENDIAN
>  	default "BIG"	 if BR2_arceb
>  
>  config BR2_GCC_TARGET_CPU
> +	default "ARC700" if BR2_TOOLCHAIN_EXTERNAL
>  	default "arc700"

We clearly don't want to use BR2_TOOLCHAIN_EXTERNAL here as a condition. What is the official value? Is it -mcpu=arc700 or
-mcpu=ARC700 ? Maybe the existing arc700 value was wrong and should just be fixed? Or does the value depends on the gcc version?

Thanks,

Thomas
--
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering http://free-electrons.com
Yann E. MORIN - Feb. 23, 2014, 11:09 a.m.
Noam, Thomas, All,

On 2014-02-23 10:57 +0000, Noam Camus spake thusly:
> Using external toolchain than BR2_GCC_TARGET_CPU is passed to GCC by
> -mcpu 
> Using buildroot toolchain than BR2_GCC_TARGET_CPU is passed to configure
> by --with-cpu
> 
> ARC GCC likes to get -mcpu=ARC700
> However through configure I am not sure but I think that config.gcc
> script is involved and it likes to get arc*.

From what I can see in gcc master:
  - ./configure expects: --with-cpu=arc700
  - gcc expects        : -mpcu=ARC700

Yes, that's it... :-/

Regards,
Yann E. MORIN.
Thomas Petazzoni - Feb. 23, 2014, 11:11 a.m.
Dear Noam Camus,

(It would be nice if you could avoid top-posting. It is considered a
bad practice in most open-source circles. See
http://en.wikipedia.org/wiki/Posting_style#Top-posting vs.
http://en.wikipedia.org/wiki/Posting_style#Bottom-posting. Thanks!)

On Sun, 23 Feb 2014 10:57:06 +0000, Noam Camus wrote:

> Using external toolchain than BR2_GCC_TARGET_CPU is passed to GCC by -mcpu 
> Using buildroot toolchain than BR2_GCC_TARGET_CPU is passed to configure by --with-cpu

Passing -mcpu or --with-cpu is already taken care of by Buildroot
depending on the case. However, normally, gcc accepts the same
possible values for both -mcpu and --with-cpu.

> ARC GCC likes to get -mcpu=ARC700
> However through configure I am not sure but I think that config.gcc script is involved and it likes to get arc*.
> 
> Maybe my patch is a workaround to make external toolchain work for ARC and complete solution is to change ARC GCC.

I'm Cc'ing Anton, from Synposys, to get more details about this.

Noam, which ARC external toolchain are you using? Maybe it's an older
ARC toolchain, and Synopsys has since then changed the possible -mcpu
values?

Best regards,

Thomas
Anton Kolesov - Feb. 24, 2014, 1:43 a.m.
Hi Thomas,

> 
> I'm Cc'ing Anton, from Synposys, to get more details about this.

I've connected Noam and compiler engineering, so they can discuss what to do about this inconsistency.

> 
> Noam, which ARC external toolchain are you using? Maybe it's an older
> ARC toolchain, and Synopsys has since then changed the possible -mcpu
> values?

Nope, this is the same for the current tools as well :-(

Anton

> 
> Best regards,
> 
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux, Kernel and Android engineering
> http://free-electrons.com
Thomas Petazzoni - Aug. 3, 2014, 1:01 p.m.
Dear Noam Camus,

On Sun, 23 Feb 2014 08:28:55 +0000, Noam Camus wrote:
> external toolchain passes -mcpu=arc700
> However compiler is familiar with -mcpu=ARC700
> 
> Signed-off-by: Noam Camus <noamc@ezchip.com>
> ---
>  arch/Config.in.arc |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
> 
> diff --git a/arch/Config.in.arc b/arch/Config.in.arc index 60b59f0..53e7052 100644
> --- a/arch/Config.in.arc
> +++ b/arch/Config.in.arc
> @@ -11,4 +11,5 @@ config BR2_ENDIAN
>  	default "BIG"	 if BR2_arceb
>  
>  config BR2_GCC_TARGET_CPU
> +	default "ARC700" if BR2_TOOLCHAIN_EXTERNAL
>  	default "arc700"

Since there has been no feedback about this patch since February 2014,
I've marked it as Rejected in patchwork, as the proposed solution is
not acceptable. Do not hesitate to get back to us with a more
appropriate solution.

Thanks!

Thomas

Patch

diff --git a/arch/Config.in.arc b/arch/Config.in.arc index 60b59f0..53e7052 100644
--- a/arch/Config.in.arc
+++ b/arch/Config.in.arc
@@ -11,4 +11,5 @@  config BR2_ENDIAN
 	default "BIG"	 if BR2_arceb
 
 config BR2_GCC_TARGET_CPU
+	default "ARC700" if BR2_TOOLCHAIN_EXTERNAL
 	default "arc700"