[PATCH] RISC-V: Enable riscv attributes by default for all riscv targets.
Nelson Chu
nelson.chu@sifive.com
Fri Jun 4 01:13:37 GMT 2021
On Fri, Jun 4, 2021 at 5:20 AM Palmer Dabbelt <palmer@dabbelt.com> wrote:
>
> On Thu, 03 Jun 2021 13:55:40 PDT (-0700), Jim Wilson wrote:
> > These were only enabled for embedded elf originally because that was
> > the safe option, and linux had no obvious use for them. But now that
> > we have new extensions coming like V that affect process state and ABIs,
> > the attributes are expected to be useful for linux, and may be required
> > by the psABI. clang already emits them for all riscv targets.
> >
> > Tested with a patched open embedded build and boot, and a native
> > toolchain build.
> >
> > Committed.
>
> Works for me.
>
> Nelson: I'm assuming this is why the .riscv.attributes is in
> binutils-all now? That seems fine, we should just call it out as the
> reason explicitly by splitting that out into its own commit.
Yes this patch will make .riscv.attributes always be generated, both
for elf and linux toolchains.
Got it, I will split this one into a separate commit, thanks.
FYI, this update resolves the ABI problems for linux toolchain that I
met before,
https://sourceware.org/pipermail/binutils/2020-November/114016.html
Now linux toolchain also generate the elf architecture attributes, so
binutils will try to choose the correct ABI according to the
attributes, if user compile a assembly code without setting -mabi=.
Thanks
Nelson
> > Jim
> >
> > gcc/
> > * config.gcc (riscv*-*-*): If --with-riscv-attribute not used,
> > turn TARGET_RISCV_ATTRIBUTES on for all riscv targets.
> > ---
> > gcc/config.gcc | 9 +--------
> > 1 file changed, 1 insertion(+), 8 deletions(-)
> >
> > diff --git a/gcc/config.gcc b/gcc/config.gcc
> > index 92fad8e20ca..6833a6c13d9 100644
> > --- a/gcc/config.gcc
> > +++ b/gcc/config.gcc
> > @@ -4605,14 +4605,7 @@ case "${target}" in
> > tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
> > ;;
> > ""|default)
> > - case "${target}" in
> > - riscv*-*-elf*)
> > - tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
> > - ;;
> > - *)
> > - tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=0"
> > - ;;
> > - esac
> > + tm_defines="${tm_defines} TARGET_RISCV_ATTRIBUTE=1"
> > ;;
> > *)
> > echo "--with-riscv-attribute=${with_riscv_attribute} is not supported. The argument must begin with yes, no or default." 1>&2
More information about the Gcc-patches
mailing list