Patchwork [v6,3/7] arch: toolchain: Introduce target CPU revision.

login
register
mail settings
Submitter Sonic Zhang
Date April 18, 2013, 10:06 a.m.
Message ID <1366279592-9055-3-git-send-email-sonic.adi@gmail.com>
Download mbox | patch
Permalink /patch/237592/
State Accepted
Commit 66d41890ec2b76189bcd427a0cc3966ff56f9712
Headers show

Comments

Sonic Zhang - April 18, 2013, 10:06 a.m.
From: Sonic Zhang <sonic.zhang@analog.com>

Adds the possibility to have a free-form CPU revision string and append it
to the target CPU. Only Blackfin actually uses this option.

Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

---

v6-changes:
- The cpu revision test should have a $(call qstrip) to be effective.
- Add cpu revision to toolchain/gcc/gcc-uclibc-4.x.mk as well.

v3-changes:
- Detail the help text and fix the line length.
---
 arch/Config.in                           |    3 +++
 arch/Config.in.bfin                      |    8 ++++++++
 toolchain/gcc/gcc-uclibc-4.x.mk          |    6 +++++-
 toolchain/toolchain-external/ext-tool.mk |    4 ++++
 4 files changed, 20 insertions(+), 1 deletions(-)
Sonic Zhang - April 23, 2013, 5:53 a.m.
Hi Thomas,

Can this patch be merge to upstream? Who is responsible for the merge?

Thanks

Sonic


On Thu, Apr 18, 2013 at 6:06 PM, Sonic Zhang <sonic.adi@gmail.com> wrote:

> From: Sonic Zhang <sonic.zhang@analog.com>
>
> Adds the possibility to have a free-form CPU revision string and append it
> to the target CPU. Only Blackfin actually uses this option.
>
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
>
> ---
>
> v6-changes:
> - The cpu revision test should have a $(call qstrip) to be effective.
> - Add cpu revision to toolchain/gcc/gcc-uclibc-4.x.mk as well.
>
> v3-changes:
> - Detail the help text and fix the line length.
> ---
>  arch/Config.in                           |    3 +++
>  arch/Config.in.bfin                      |    8 ++++++++
>  toolchain/gcc/gcc-uclibc-4.x.mk          |    6 +++++-
>  toolchain/toolchain-external/ext-tool.mk |    4 ++++
>  4 files changed, 20 insertions(+), 1 deletions(-)
>
> diff --git a/arch/Config.in b/arch/Config.in
> index 27a29c6..175add5 100644
> --- a/arch/Config.in
> +++ b/arch/Config.in
> @@ -174,6 +174,9 @@ config BR2_GCC_TARGET_ABI
>  config BR2_GCC_TARGET_CPU
>         string
>
> +config BR2_GCC_TARGET_CPU_REVISION
> +       string
> +
>  # Set up target binary format
>  choice
>         prompt "Target Binary Format"
> diff --git a/arch/Config.in.bfin b/arch/Config.in.bfin
> index ac96620..f755c8d 100644
> --- a/arch/Config.in.bfin
> +++ b/arch/Config.in.bfin
> @@ -97,3 +97,11 @@ config BR2_GCC_TARGET_CPU
>         default bf548           if BR2_bf548
>         default bf549           if BR2_bf549
>         default bf561           if BR2_bf561
> +
> +config BR2_GCC_TARGET_CPU_REVISION
> +       string "Target CPU revision"
> +       help
> +         Specify a target CPU revision, which will be appended to the
> +         value of the -mcpu option. For example, if the selected CPU is
> +         bf609, and then selected CPU revision is "0.0", then gcc will
> +         receive the -mcpu=bf609-0.0 option.
> diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/
> gcc-uclibc-4.x.mk
> index bdc38cd..7fd7bdb 100644
> --- a/toolchain/gcc/gcc-uclibc-4.x.mk
> +++ b/toolchain/gcc/gcc-uclibc-4.x.mk
> @@ -85,7 +85,11 @@ ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
>  GCC_WITH_ABI:=--with-abi=$(BR2_GCC_TARGET_ABI)
>  endif
>  ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
> -GCC_WITH_CPU:=--with-cpu=$(BR2_GCC_TARGET_CPU)
> +ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
> +GCC_WITH_CPU:=--with-cpu=$(call
> qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
> +else
> +GCC_WITH_CPU:=--with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU))
> +endif
>  endif
>
>  # AVR32 GCC special configuration
> diff --git a/toolchain/toolchain-external/ext-tool.mkb/toolchain/toolchain-external/
> ext-tool.mk
> index 92183a4..57ea266 100644
> --- a/toolchain/toolchain-external/ext-tool.mk
> +++ b/toolchain/toolchain-external/ext-tool.mk
> @@ -134,7 +134,11 @@ TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += \
>  endif
>
>  CC_TARGET_TUNE_:=$(call qstrip,$(BR2_GCC_TARGET_TUNE))
> +ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
>  CC_TARGET_CPU_:=$(call qstrip,$(BR2_GCC_TARGET_CPU))
> +else
> +CC_TARGET_CPU_:=$(call
> qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
> +endif
>  CC_TARGET_ARCH_:=$(call qstrip,$(BR2_GCC_TARGET_ARCH))
>  CC_TARGET_ABI_:=$(call qstrip,$(BR2_GCC_TARGET_ABI))
>
> --
> 1.7.0.4
>
>
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
>
Thomas Petazzoni - April 25, 2013, 2:25 p.m.
Dear Sonic Zhang,

On Thu, 18 Apr 2013 18:06:28 +0800, Sonic Zhang wrote:
> From: Sonic Zhang <sonic.zhang@analog.com>
> 
> Adds the possibility to have a free-form CPU revision string and append it
> to the target CPU. Only Blackfin actually uses this option.
> 
> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com>
> Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Same here. Having just my name, without any tag before, doesn't make
any sense. But now, you can add my formal:

Acked-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

on this patch.

Thomas

Patch

diff --git a/arch/Config.in b/arch/Config.in
index 27a29c6..175add5 100644
--- a/arch/Config.in
+++ b/arch/Config.in
@@ -174,6 +174,9 @@  config BR2_GCC_TARGET_ABI
 config BR2_GCC_TARGET_CPU
 	string
 
+config BR2_GCC_TARGET_CPU_REVISION
+	string
+
 # Set up target binary format
 choice
 	prompt "Target Binary Format"
diff --git a/arch/Config.in.bfin b/arch/Config.in.bfin
index ac96620..f755c8d 100644
--- a/arch/Config.in.bfin
+++ b/arch/Config.in.bfin
@@ -97,3 +97,11 @@  config BR2_GCC_TARGET_CPU
 	default bf548		if BR2_bf548
 	default bf549		if BR2_bf549
 	default bf561		if BR2_bf561
+
+config BR2_GCC_TARGET_CPU_REVISION
+	string "Target CPU revision"
+	help
+	  Specify a target CPU revision, which will be appended to the
+	  value of the -mcpu option. For example, if the selected CPU is
+	  bf609, and then selected CPU revision is "0.0", then gcc will
+	  receive the -mcpu=bf609-0.0 option.
diff --git a/toolchain/gcc/gcc-uclibc-4.x.mk b/toolchain/gcc/gcc-uclibc-4.x.mk
index bdc38cd..7fd7bdb 100644
--- a/toolchain/gcc/gcc-uclibc-4.x.mk
+++ b/toolchain/gcc/gcc-uclibc-4.x.mk
@@ -85,7 +85,11 @@  ifneq ($(call qstrip,$(BR2_GCC_TARGET_ABI)),)
 GCC_WITH_ABI:=--with-abi=$(BR2_GCC_TARGET_ABI)
 endif
 ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU)),)
-GCC_WITH_CPU:=--with-cpu=$(BR2_GCC_TARGET_CPU)
+ifneq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
+GCC_WITH_CPU:=--with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+else
+GCC_WITH_CPU:=--with-cpu=$(call qstrip,$(BR2_GCC_TARGET_CPU))
+endif
 endif
 
 # AVR32 GCC special configuration
diff --git a/toolchain/toolchain-external/ext-tool.mk b/toolchain/toolchain-external/ext-tool.mk
index 92183a4..57ea266 100644
--- a/toolchain/toolchain-external/ext-tool.mk
+++ b/toolchain/toolchain-external/ext-tool.mk
@@ -134,7 +134,11 @@  TOOLCHAIN_EXTERNAL_WRAPPER_ARGS += \
 endif
 
 CC_TARGET_TUNE_:=$(call qstrip,$(BR2_GCC_TARGET_TUNE))
+ifeq ($(call qstrip,$(BR2_GCC_TARGET_CPU_REVISION)),)
 CC_TARGET_CPU_:=$(call qstrip,$(BR2_GCC_TARGET_CPU))
+else
+CC_TARGET_CPU_:=$(call qstrip,$(BR2_GCC_TARGET_CPU)-$(BR2_GCC_TARGET_CPU_REVISION))
+endif
 CC_TARGET_ARCH_:=$(call qstrip,$(BR2_GCC_TARGET_ARCH))
 CC_TARGET_ABI_:=$(call qstrip,$(BR2_GCC_TARGET_ABI))