All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.