From: Romain Naour <romain.naour@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH V3 RESEND 0/5] Add ILP32 support in aarch64
Date: Sat, 16 Jan 2016 16:25:26 +0100 [thread overview]
Message-ID: <569A60E6.2030108@gmail.com> (raw)
In-Reply-To: <1439428605-17453-1-git-send-email-bamvor.zhangjian@linaro.org>
Hello Bamvor,
Le 13/08/2015 03:16, Bamvor Jian Zhang a ?crit :
> This is third version of my patches. This previous versions are
> here[1][2]. 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 almost no code 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 (the default ABI in aarch64).
>
> 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[3] and toolchain built by
> linaro ABE environment[4], 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.
Thanks for this series and sorry for the long delay to reply...
I tried to build a aarch64 ilp32 toolchain using the current abe master but it
seems that ilp32 support is not mainline yet.
I'm not sure we want to modify the Buildroot external toolchain code to use an
"experimental" toolchain (origin/will/ilp32 branch).
Can you provide the command lines you used to build the toolchain ? on which abe
branch ? Otherwise we can't test your series.
Do you know if Linaro plans to release a ipl32 toolchain ?
Best regards,
Romain Naour
>
> changes since v2
> 1. rebase on the patch have been .
> "827ba46 aarch64: add big endian(aarch64_be) support"
> 2. Add "!BR2_aarch64_be" along with "!BR2_aarch64" in patch 1/5 according to
> the suggestion from Thomas.
> 3. Improve the ifeq in patch 2/5 according to Gustavo.
> 4. Do not pass invalid "-mabi" option to ld in patch 3/5 according to Gustavo.
>
> 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] http://lists.busybox.net/pipermail/buildroot/2015-March/122424.html
> [3] https://git.linaro.org/kernel/linux-linaro-tracking.git
> [4] https://wiki.linaro.org/ABE
>
>
> Bamvor Jian Zhang (5):
> aarch64: align aarch64_be config with aarch64s'
> 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 | 6 +++
> arch/Config.in.aarch64 | 36 ++++++++++++++++++
> configs/aarch64_be_defconfig | 2 +
> configs/aarch64_be_ilp32_defconfig | 8 ++++
> configs/aarch64_ilp32_defconfig | 8 ++++
> package/Makefile.in | 13 ++++++-
> package/binutils/Config.in | 4 +-
> package/binutils/Config.in.host | 5 ++-
> package/dropwatch/Config.in | 5 ++-
> package/gcc/Config.in.host | 11 +++---
> package/gdb/Config.in.host | 2 +-
> package/gpsd/Config.in | 2 +-
> package/lightning/Config.in | 5 ++-
> package/nginx/Config.in | 3 +-
> package/oprofile/Config.in | 6 ++-
> toolchain/Config.in | 2 +
> toolchain/helpers.mk | 5 ++-
> toolchain/toolchain-buildroot/Config.in | 7 ++--
> toolchain/toolchain-external/Config.in | 22 +++++++++++
> toolchain/toolchain-external/toolchain-external.mk | 44 +++++++++++++++++++++-
> 20 files changed, 169 insertions(+), 27 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:[~2016-01-16 15:25 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-08-13 1:16 [Buildroot] [PATCH V3 RESEND 0/5] Add ILP32 support in aarch64 Bamvor Jian Zhang
2015-08-13 1:16 ` [Buildroot] [PATCH V3 RESEND 1/5] aarch64: align aarch64_be config with aarch64s' Bamvor Jian Zhang
2015-08-13 1:16 ` [Buildroot] [PATCH V3 RESEND 2/5] aarch64: ilp32: handle special file name Bamvor Jian Zhang
2015-08-13 1:16 ` [Buildroot] [PATCH V3 RESEND 3/5] aarch64: ilp32: add ilp32 compiler and linker flags Bamvor Jian Zhang
2015-08-13 1:16 ` [Buildroot] [PATCH V3 RESEND 4/5] aarch64: ilp32: add ilp32 build config Bamvor Jian Zhang
2015-08-13 1:16 ` [Buildroot] [PATCH V3 RESEND 5/5] aarch64: ilp32 defconfig examples Bamvor Jian Zhang
2016-01-16 15:25 ` Romain Naour [this message]
2016-01-19 4:00 ` [Buildroot] [PATCH V3 RESEND 0/5] Add ILP32 support in aarch64 Bamvor Zhang Jian
2016-01-20 21:26 ` Romain Naour
2016-01-21 9:03 ` Bamvor Zhang Jian
2016-01-24 11:35 ` Romain Naour
2016-02-02 2:29 ` Zhangjian
2016-02-02 9:04 ` Romain Naour
2016-02-02 10:49 ` Zhangjian
2016-02-02 11:16 ` Arnout Vandecappelle
2016-02-03 21:11 ` Romain Naour
2016-03-20 13:10 ` Zhangjian
2016-03-20 20:33 ` Romain Naour
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=569A60E6.2030108@gmail.com \
--to=romain.naour@gmail.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