From: Bamvor Jian Zhang <bamvor.zhangjian@huawei.com>
To: buildroot@busybox.net
Subject: [Buildroot] [RFC PATCH v2 0/5] Add ILP32 support in aarch64
Date: Fri, 10 Apr 2015 17:16:53 +0800 [thread overview]
Message-ID: <55279505.6000803@huawei.com> (raw)
In-Reply-To: <1426672192-21041-1-git-send-email-bamvor.zhangjian@huawei.com>
On 2015/3/18 17:49, Zhang Jian(Bamvor) wrote:
Ping.
It seems that no response in recent four weeks.
bamvor
> This is second version of my patches. This previous version is here[1].
> The previous discussion, Gustavo agree that only external toolchain is in
> consideration at this time. I will try to work on the buildroot toolchain
> after current series patch is upstreamed.
>
> ILP32 is very useful when the user want to migrate from arm 32bit to 64bit
> with minimal risk. There is no code changes and almost no footprint changes
> after migration. ILP32 could get the better performance compare with arm 32bit
> (use 64bit register and instruction instead of 32bit one) and aarch64 LP64
> (aarch64 default ABI).
>
> Our test show that the performance of ILP32 is roughly 10% better than arm64
> LP64 while the footprint is 86% of LP64. Because of these, It is useful for
> both embedded and enterprise system.
>
> Here is the details definition of ILP32:
> ILP32 is elf32 with aarch64 assembly and is compiled by 64bit compiler.
> Refer the following table:
>
> \- | arm 32bit | arm64 ILP32 | arm64 LP64
> ----------------|-------------|-------------|-------------
> instruction set | armv7-a | armv8-a | armv8-a
> int | 32bit | 32bit | 32bit
> long | 32bit | **32bit** | 64bit
> pointer | 32bit | **32bit** | 64bit
>
> LP64 is the default ABI on arm64(Implies -mabi=lp64 while compiling), and the
> kernel remains in LP64 no matter ILP32 enables or not.
>
> These series patches introduce the big endian support in aarch64 and then add
> ILP32 special filename and menuconfig step by step.
>
> The test of build is based on linaro kernel [2] and toolchain built by linaro
> ABE environment[3], anyone could built this toolchain through the simpile
> abe script.
>
> This is my first time I try to contribute the buildroot, feedback is very
> appreciated. Sorry if there are some coding style issues.
>
> changes since v1
> 1. avoid mabi issue in gcc 4.8 while build aarch64 lp64.
> 2. change default libc, toolchain for ilp32 build.
> 3. others changes suggested by Gustavo.
>
> [1] http://lists.busybox.net/pipermail/buildroot/2015-March/122115.html
> [2] https://git.linaro.org/kernel/linux-linaro-tracking.git
> [3] https://wiki.linaro.org/ABE
>
> Zhang Jian(Bamvor) (5):
> aarch64: add big endian(aarch64_be) support
> aarch64: ilp32: handle special file name
> aarch64: ilp32: add ilp32 compiler and linker flags
> aarch64: ilp32: add ilp32 build config
> aarch64: ilp32 defconfig examples
>
> Makefile | 11 +++++-
> arch/Config.in | 12 +++++--
> arch/Config.in.aarch64 | 40 ++++++++++++++++++++-
> configs/aarch64_be_defconfig | 2 ++
> configs/aarch64_be_ilp32_defconfig | 8 +++++
> configs/aarch64_ilp32_defconfig | 8 +++++
> package/Makefile.in | 10 +++++-
> package/gcc/Config.in.host | 3 +-
> toolchain/Config.in | 2 ++
> toolchain/helpers.mk | 4 +--
> toolchain/toolchain-buildroot/Config.in | 27 +++++++-------
> toolchain/toolchain-external/Config.in | 20 +++++++++++
> toolchain/toolchain-external/toolchain-external.mk | 41 ++++++++++++++++++++--
> 13 files changed, 165 insertions(+), 23 deletions(-)
> create mode 100644 configs/aarch64_be_defconfig
> create mode 100644 configs/aarch64_be_ilp32_defconfig
> create mode 100644 configs/aarch64_ilp32_defconfig
>
next prev parent reply other threads:[~2015-04-10 9:16 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-18 9:49 [Buildroot] [RFC PATCH v2 0/5] Add ILP32 support in aarch64 Zhang Jian
2015-03-18 9:49 ` [Buildroot] [RFC PATCH v2 1/5] aarch64: add big endian(aarch64_be) support Zhang Jian
2015-04-10 12:24 ` Gustavo Zacarias
2015-03-18 9:49 ` [Buildroot] [RFC PATCH v2 2/5] aarch64: ilp32: handle special file name Zhang Jian
2015-04-10 12:35 ` Gustavo Zacarias
2015-04-13 10:12 ` Bamvor Jian Zhang
2015-04-13 10:16 ` Bamvor Jian Zhang
2015-03-18 9:49 ` [Buildroot] [RFC PATCH v2 3/5] aarch64: ilp32: add ilp32 compiler and linker flags Zhang Jian
2015-04-10 12:36 ` Gustavo Zacarias
2015-04-13 10:06 ` Bamvor Jian Zhang
2015-03-18 9:49 ` [Buildroot] [RFC PATCH v2 4/5] aarch64: ilp32: add ilp32 build config Zhang Jian
2015-04-10 12:46 ` Gustavo Zacarias
2015-04-13 10:02 ` Bamvor Jian Zhang
2015-03-18 9:49 ` [Buildroot] [RFC PATCH v2 5/5] aarch64: ilp32 defconfig examples Zhang Jian
2015-04-10 9:16 ` Bamvor Jian Zhang [this message]
2015-07-12 16:45 ` [Buildroot] [RFC PATCH v2 0/5] Add ILP32 support in aarch64 Thomas Petazzoni
2015-07-13 2:21 ` Zhangjian
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=55279505.6000803@huawei.com \
--to=bamvor.zhangjian@huawei.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