From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhangjian (Bamvor) Date: Tue, 2 Feb 2016 10:29:59 +0800 Subject: [Buildroot] [PATCH V3 RESEND 0/5] Add ILP32 support in aarch64 In-Reply-To: <56A4B6F0.8080108@gmail.com> References: <1439428605-17453-1-git-send-email-bamvor.zhangjian@linaro.org> <569A60E6.2030108@gmail.com> <569FFB7E.2000104@gmail.com> <56A4B6F0.8080108@gmail.com> Message-ID: <56B014A7.2070808@huawei.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: buildroot@busybox.net Hi, Romain On 2016/1/24 19:35, Romain Naour wrote: > Hi Bamvor, > > Le 21/01/2016 10:03, Bamvor Zhang Jian a ?crit : >> Hi, Romain >> >> On 01/21/2016 05:26 AM, Romain Naour wrote: >>> Hi Bamvor, >>> >>> Le 19/01/2016 05:00, Bamvor Zhang Jian a ?crit : >>>> Hi, Romain >>>> >>>> On 01/16/2016 11:25 PM, Romain Naour wrote: >>>>> Hello Bamvor, >> [...] >>>>> Can you provide the command lines you used to build the toolchain ? on which abe >>>>> branch ? Otherwise we can't test your series. >>>> You could find the toolchain here[1] >>> >>> Thanks but this is not a cross-toolchain: >>> >>> file bin/aarch64-ilp32-linux-gnu-gcc >>> bin/aarch64-ilp32-linux-gnu-gcc: ELF 64-bit LSB executable, ARM aarch64, version >>> 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for >>> GNU/Linux 3.7.0, BuildID[sha1]=0727b9d5c173c83568f5d19cfc87a05540ec8b77, not >>> stripped >>> >>> It seems that's a native toolchain. >>> >>> It should be something like (from aarch64-linaro 2015.08) >>> file bin/aarch64-linux-gnu-gcc >>> bin/aarch64-linux-gnu-gcc: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), >>> dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux >>> 2.6.32, BuildID[sha1]=91a19539d0f6b0f38d599db648b4b5760000666a, not stripped >>> >> Yeap, it is not a cross compile. I use it in an aarch64 chroot environment in >> x86. I feel it is enough to test these patches. > > Buildroot is a tool for cross-compiling, you know it ;-) > Honestly I'm not very interested to test the toolchain by itself, only your > patches for the external toolchain infra. > >>> Can you provide a pre-build toolchain or a recipe to rebuild a aarch64 ipl32 >>> toolchain ? >> Linaro provide abe[1] to build toochain. You could follow this script[2] to know >> how to use it. It seems that the server in tcwg is down. Hope, you could make >> use of the method used by abe system. > > I really tried to build a aarch64 ipl32 cross-toolchain with abe but I'm stuck > with glibc build. I don't know what's the glibc branch I should use. > By default I used the release/2.20/master branch > > aarch64-ilp32-linux-gnu-gcc -mabi=ilp32 -nostdlib -nostartfiles -r -o > /home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/Scrt1.o > /home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/start.os > /home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/abi-note.o > /home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/init.o > ../sysdeps/aarch64/start.S: Assembler messages: > ../sysdeps/aarch64/start.S:92: Error: cannot represent BFD_RELOC_64 relocation > in this object file format > ../sysdeps/aarch64/start.S:92: Error: cannot represent BFD_RELOC_64 relocation > in this object file format > ../sysdeps/aarch64/start.S:92: Error: cannot represent BFD_RELOC_64 relocation > in this object file format > /home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/sysd-rules:1345: > recipe for target > '/home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/start.o' > failed > make[2]: *** > [/home/naourr/linaro-toolchain/builds/x86_64-unknown-linux-gnu/aarch64-ilp32-linux-gnu/glibc.git~linaro-2.20-ilp32-ilp32/csu/start.o] > Error 1 You could this glibc[1]. IIRC, It is for patch v6 rfc2. We are planning to update it for patch v6 rfc5. Regards Bamvor [1] https://github.com/norov/glibc/tree/thunderx-ilp32-32time_toff_t > > Also I had several issue with the abe script on my system (Fedora) and I had to > modify some part of the script to be able to continue the build. > > So, It would be great if you can provide a precompiled cross-toolchain. > > Best regards, > Romain > >> >> Regards >> >> Bamvor >> >> [1] https://git.linaro.org/toolchain/abe.git/blob/refs/heads/benchmarking:/abe.sh >> [2] https://git.linaro.org/toolchain/spec2xxx-utils.git/blob/refs/heads/test:/bench-ilp32.sh >> >>>>> >>>>> Do you know if Linaro plans to release a ipl32 toolchain ? >>>> It seems that linaro will not release it before patches for ilp32 of kernel and >>>> glibc upstreamed. >>>> Here[2] is a status for ilp32 in linaro. >>> >>> Thanks for the link. >>> >>> Best regards, >>> Romain >>> >>>> >>>> Regards >>>> >>>> Bamvor >>>> >>>> [1] http://people.linaro.org/~maxim.kuvyrkov/bench-ilp32/ >>>> [2] https://wiki.linaro.org/Platform/arm64-ilp32 >>>> >>>>> 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 >>>>>> >>>>> >>>> >> > _______________________________________________ > buildroot mailing list > buildroot at busybox.net > http://lists.busybox.net/mailman/listinfo/buildroot >