From: Gustavo Zacarias <gustavo@zacarias.com.ar>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 0/5] Add ILP32 support in aarch64
Date: Tue, 17 Mar 2015 10:30:06 -0300 [thread overview]
Message-ID: <55082C5E.1070906@zacarias.com.ar> (raw)
In-Reply-To: <1426500013-1276-1-git-send-email-bamvor.zhangjian@huawei.com>
On 03/16/2015 07:00 AM, Zhang Jian(Bamvor) wrote:
> 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 [1] and toolchain built by linaro
> ABE environment[2].
>
> This is my first time I try to contribute the buildroot, feedback is very
> appreciated. Sorry if there are some coding style issues.
Hi.
A couple of issues i've discovered with this patchset are:
1) You're using -mabi unconditionally.
Current default gcc is 4.8.x which doesn't understand -mabi for aarch64.
2) You're not taking care of the internal toolchain backend for ILP32.
Currently we default to gcc 4.8.x which doesn't handle ilp32 at all
hence errors out for aarch64 in that configuration (doesn't understand
-mabi, point 1).
The proper action would be to lock down available versions in
package/gcc/Config.in.host via "depends on !BR2_AARCH64_ILP32"
(basically just for 4.8.x since previous versions are already locked out
for aarch64 in general).
This will only fix the ILP32 problem, doesn't help for -mabi=lp64 though
(point 1).
3) ILP32 little endian doesn't build with gcc 4.9.x/binutils 2.25/glibc
2.20: it results in an internal compiler error while building glibc, so
very likely gcc's fault. This should be handled as well, by fixing it or
disabling the internal toolchain backend for this combination.
3) Big endian support is broken for the internal toolchain.
The glibc package isn't enabled for aarch64 BE, so basically it builds a
toolchain without a libc, not nice.
Fix in toolchain/toolchain-buildroot/Config.in - add appropiate
BR2_aarch64_be depends.
4) We don't know/have any external toolchains to test this.
Suggestions? :)
5) You're not setting KERNEL_ARCH appropiately for big endian, right now
the regex is: -e s/aarch64/arm64/
It should be: -e s/aarch64.*/arm64/
Otherwise we end up with KERNEL_ARCH being arm64_be which obviously
fails badly, not only for kernel builds, but also for internal
toolchains builds (headers), possibly some packages and linux extensions.
Fix in top Makefile.
There are probably other details missing, these are the quick/big ones i
could see.
Regards.
next prev parent reply other threads:[~2015-03-17 13:30 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-16 10:00 [Buildroot] [PATCH 0/5] Add ILP32 support in aarch64 Zhang Jian
2015-03-16 10:00 ` [Buildroot] [PATCH 1/5] aarch64: add big endian(aarch64_be) support Zhang Jian
2015-03-16 10:00 ` [Buildroot] [PATCH 2/5] aarch64: ilp32: handle special file name Zhang Jian
2015-03-17 10:27 ` Steven Noonan
2015-03-17 14:31 ` Bamvor Zhang
2015-03-16 10:00 ` [Buildroot] [PATCH 3/5] aarch64: ilp32: add ilp32 compiler and linker flags Zhang Jian
2015-03-16 10:00 ` [Buildroot] [PATCH 4/5] aarch64: ilp32: add ilp32 menuconfig Zhang Jian
2015-03-16 10:00 ` [Buildroot] [PATCH 5/5] aarch64: ilp32 defconfig examples Zhang Jian
2015-03-17 13:30 ` Gustavo Zacarias [this message]
2015-03-17 14:44 ` [Buildroot] [PATCH 0/5] Add ILP32 support in aarch64 Bamvor Zhang
2015-03-17 17:49 ` Gustavo Zacarias
-- strict thread matches above, loose matches on Subject: below --
2015-07-20 11:25 Zhang Jian
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=55082C5E.1070906@zacarias.com.ar \
--to=gustavo@zacarias.com.ar \
--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