external toolchain: [ARC] gcc cpu parameter

Submitted by Noam Camus on Feb. 23, 2014, 8:28 a.m.

Details

Message ID 884EA965490E3C4D8E66AEF41E98025006BF3A@ezex10.ezchip.com
State Rejected
Headers show

Commit Message

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

Comments

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 hide | download patch | download mbox

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"