
Hi Eric,
On Fri, May 24, 2019 at 4:04 PM Eric Lin dslin1010@gmail.com wrote:
Hi Bin
Bin Meng bmeng.cn@gmail.com 於 2019年5月22日 週三 下午5:25寫道:
Hi Eric,
On Wed, May 22, 2019 at 4:23 PM tesheng@andestech.com wrote:
Hi Bin,
-----Original Message----- From: Bin Meng [mailto:bmeng.cn@gmail.com] Sent: Tuesday, May 21, 2019 3:56 PM To: Eric Te-Sheng Lin(林德晟) Cc: U-Boot Mailing List; Lukas Auer; Anup Patel; Rick Jian-Zhi Chen(陳建志); Greentime Ying-Han Hu(胡英漢); dslin1010@gmail.com Subject: Re: [PATCH] riscv: add Kconfig entries for the F and D ISA extensions support
Hi Eric,
On Tue, May 21, 2019 at 3:18 PM Eric Lin tesheng@andestech.com wrote:
This patch add Kconfig entries for the F (Single-Precision)
adds
OK I'll correct it as adds
and D (Double-Precision) floating point instruction-set extensions.
Could you please provide reason that why U-Boot has to be compiled using F/D extension?
Cause on AE350 platform, we have two different kinds of toolchain v5d (support I/M/A/C/F/D ISA) and v5 (support I/M/A/C ISA). If we use the v5d toolchain to build U-Boot it will build fail, so we would like to add F/D extension on U-Boot.
I don't understand. What difference do these two toochains have? Isn't the v5d toolchain's default -march string be pre-configured to imafd? But even if the toolchain is pre-configured to generate fd instruction, I think it can be override by the compiler flags. Can you please share the details of the toolchain you used? I suspect you have to fix your toolchain, not U-Boot.
It's seems the ABI issue. Because our toolchain don't support multilib, the v5d toolchain libraries ABI is ilp64d. If I use the v5d toolchain to build U-Boot with -mabi=lp64, it will get link error as below:
Then please fix your compiler. Passing -mabi=lp64 to compiler is definitely correct.
... riscv64-linux-ld.bfd: /nds64le-linux-glibc-v5d/bin/../lib/gcc/riscv64-linux/7.3.0/libgcc.a(save-restore.o): can't link double-float modules with soft-float modules riscv64-linux-ld.bfd: failed to merge target specific data of file /nds64le-linux-glibc-v5d/bin/../lib/gcc/riscv64-linux/7.3.0/libgcc.a(save-restore.o) examples/standalone/Makefile:62: recipe for target 'examples/standalone/hello_world' failed ...
so we would like to override the compiler flag mabi to lp64d.
No, adding this to U-Boot is a workaround to your compiler.
Regards, Bin