Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
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
> 

  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