From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2 1/3] arch: add support for Andes 32-bit (nds32) architecture
Date: Mon, 4 Feb 2019 20:57:39 +0100 [thread overview]
Message-ID: <20190204205739.76310d01@windsurf> (raw)
In-Reply-To: <20190123123947.5084-2-nylon7@andestech.com>
Hello,
Thanks for this second iteration. See below for some comments.
On Wed, 23 Jan 2019 20:39:45 +0800
Nylon Chen <nylon7@andestech.com> wrote:
> This enables a nds32 system to be built with a Buildroot generated
> toolchain (gcc >= 8.0.1, binutils >= 2.30, glibc only).
It is not clear what you want to support here. You're talking about a
"Buildroot generated toolchain", so I would expect that one can build a
toolchain with Buildroot for nds32. But:
- You have selected BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT, which
prevents building a toolchain with Buildroot
- I don't see any upstream support for nds32 in glibc. If you have a
special version of glibc (non-upstream), it can be supported as well.
> +N: Nylon Chen <nylon7@andestech.com>
> +F: arch/Config.in
> +F: arch/Config.in.nds32
> +F: package/binutils
> +F: package/gcc
> +F: package/linux-headers
Only add arch/Config.in.nds32, and put this entry at the right place in
the DEVELOPERS file, by alphabetic ordering of developer names.
> +config BR2_nds32
> + bool "nds32"
> + select BR2_ARCH_HAS_NO_TOOLCHAIN_BUILDROOT
So that's where you have to decide: do you support building a toolchain
with Buildroot or not.
> + select BR2_ARCH_HAS_MMU_MANDATORY
> + help
> + nds32 is a 32-bit architecture developed by Andes Technology.
> + https://en.wikipedia.org/wiki/Andes_Technology
> +
> +
Only one empty line here please.
> diff --git a/arch/Config.in.nds32 b/arch/Config.in.nds32
> new file mode 100644
> index 0000000000..f2b6a22f8c
> --- /dev/null
> +++ b/arch/Config.in.nds32
> @@ -0,0 +1,31 @@
> +config BR2_ARCH
> + default "nds32"
> +
> +choice
> + prompt "Target Architecture Variant"
> + default BR2_nds32_v3
> + depends on !BR2_ARCH_IS_64
Why do you have this dependency ?
> + help
> + Specific CPU variant to use
> +
> +comment "N series"
> +config BR2_nds32_v3
> + bool "v3"
> +config BR2_nds32_v3f
> + bool "v3f"
> +
> +endchoice
> +
> +config BR2_GCC_TARGET_ARCH
> + default "v3" if BR2_nds32_v3
> + default "v3f" if BR2_nds32_v3f
> +
> +config BR2_ENDIAN
> + default "LITTLE"
> +
> +config BR2_TOOLCHAIN_HAS_NATIVE_RPC
> + bool
Remove this, it doesn't make sense. This is a property of the C
library, and it has nothing to do with the architecture definition
> diff --git a/package/binutils/Config.in.host b/package/binutils/Config.in.host
> index 924d1749cd..484fb050ba 100644
> --- a/package/binutils/Config.in.host
> +++ b/package/binutils/Config.in.host
> @@ -19,10 +19,12 @@ config BR2_BINUTILS_VERSION_2_28_X
> bool "binutils 2.28.1"
> depends on !BR2_arc
> depends on !BR2_riscv
> + depends on !BR2_nds32
>
> config BR2_BINUTILS_VERSION_2_29_X
> bool "binutils 2.29.1"
> depends on !BR2_riscv
> + depends on !BR2_nds32
>
> config BR2_BINUTILS_VERSION_2_30_X
> bool "binutils 2.30"
These changes are useless if you don't support building a Buildroot
toolchain for nds32.
> diff --git a/package/gcc/Config.in.host b/package/gcc/Config.in.host
> index 036a5b9790..c8a74e10c6 100644
> --- a/package/gcc/Config.in.host
> +++ b/package/gcc/Config.in.host
> @@ -26,6 +26,7 @@ config BR2_GCC_VERSION_4_9_X
> # Broken or unsupported architectures
> depends on !BR2_arc
> depends on !BR2_or1k
> + depends on !BR2_nds32
> # musl on microblaze, ppc64 and mips64 unsupported
> depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_microblazeel || BR2_microblazebe))
> depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
> @@ -42,6 +43,7 @@ config BR2_GCC_VERSION_5_X
> # Broken or unsupported architectures
> depends on !BR2_arc
> depends on !BR2_or1k
> + depends on !BR2_nds32
> # musl on ppc64 and mips64 unsupported
> depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_powerpc64 || BR2_powerpc64le))
> depends on !(BR2_TOOLCHAIN_USES_MUSL && (BR2_mips64 || BR2_mips64el))
> @@ -55,6 +57,7 @@ config BR2_GCC_VERSION_6_X
> # Broken or unsupported architectures
> depends on !BR2_arc
> depends on !BR2_or1k
> + depends on !BR2_nds32
> select BR2_TOOLCHAIN_GCC_AT_LEAST_6
>
> config BR2_GCC_VERSION_7_X
> @@ -62,6 +65,7 @@ config BR2_GCC_VERSION_7_X
> depends on !BR2_ARCH_NEEDS_GCC_AT_LEAST_8
> # Broken or unsupported architectures
> depends on !BR2_or1k
> + depends on !BR2_nds32
> select BR2_TOOLCHAIN_GCC_AT_LEAST_7
Same thing: those changes are not needed if you don't support building
a Buildroot toolchain for nds32.
If you want to support building a Buildroot toolchain for nds32, you
can also drop all those changes, and just have the main BR2_nds32
option select BR2_ARCH_NEEDS_GCC_AT_LEAST_8.
> diff --git a/package/linux-headers/Config.in.host b/package/linux-headers/Config.in.host
> index 88373aee6f..43a6374992 100644
> --- a/package/linux-headers/Config.in.host
> +++ b/package/linux-headers/Config.in.host
> @@ -31,16 +31,19 @@ config BR2_KERNEL_HEADERS_AS_KERNEL
> config BR2_KERNEL_HEADERS_4_4
> bool "Linux 4.4.x kernel headers"
> depends on !BR2_riscv
> + depends on !BR2_nds32
> select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_4
>
> config BR2_KERNEL_HEADERS_4_9
> bool "Linux 4.9.x kernel headers"
> depends on !BR2_riscv
> + depends on !BR2_nds32
> select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_9
>
> config BR2_KERNEL_HEADERS_4_14
> bool "Linux 4.14.x kernel headers"
> depends on !BR2_riscv
> + depends on !BR2_nds32
> select BR2_TOOLCHAIN_HEADERS_AT_LEAST_4_14
>
> config BR2_KERNEL_HEADERS_4_19
Same thing: those changes are not needed if you don't support building
a Buildroot toolchain for nds32.
Thanks,
Thomas Petazzoni
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
next prev parent reply other threads:[~2019-02-04 19:57 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-01-23 12:39 [Buildroot] [PATCH v2 0/3] Add prebuilt nds32 toolchain, ae3xx board and autobuild configs support Nylon Chen
2019-01-23 12:39 ` [Buildroot] [PATCH v2 1/3] arch: add support for Andes 32-bit (nds32) architecture Nylon Chen
2019-02-04 19:57 ` Thomas Petazzoni [this message]
2019-01-23 12:39 ` [Buildroot] [PATCH v2 2/3] configs/andes_nds32_ae3xx: new defconfig Nylon Chen
2019-02-04 20:01 ` Thomas Petazzoni
2019-01-23 12:39 ` [Buildroot] [PATCH v2 3/3] support/config-fragments: add Andes 32-bit (nds32) to autobuild configs Nylon Chen
2019-02-04 20:02 ` Thomas Petazzoni
2019-02-11 7:45 ` Nylon Chen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190204205739.76310d01@windsurf \
--to=thomas.petazzoni@bootlin.com \
--cc=buildroot@busybox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox