RISC-V: Don't generate the ELF privilege attributes when no CSR are used.
authorNelson Chu <nelson.chu@sifive.com>
Fri, 29 May 2020 07:31:46 +0000 (15:31 +0800)
committerNelson Chu <nelson.chu@sifive.com>
Fri, 5 Jun 2020 04:14:44 +0000 (12:14 +0800)
commit3fc6c3dc2af2283bd89f1b1278b39922416e8d1b
tree6c08c01a0b1b35f343db32e2093c01b8abd59923
parenta975c88e6549c508ec86658e6816d7b8f16af13c
RISC-V: Don't generate the ELF privilege attributes when no CSR are used.

gas/
* config/tc-riscv.c (explicit_csr): New static boolean.
Used to indicate CSR are explictly used.
(riscv_ip): Set explicit_csr to TRUE if any CSR is used.
(riscv_write_out_attrs): If we already have set elf priv
attributes, then generate them.  Otherwise, don't generate
them when no CSR are used.

* testsuite/gas/riscv/attribute-01.d: Remove the priv attributes.
* testsuite/gas/riscv/attribute-02.d: Likewise.
* testsuite/gas/riscv/attribute-03.d: Likewise.
* testsuite/gas/riscv/attribute-04.d: Likewise.
* testsuite/gas/riscv/attribute-05.d: Likewise.
* testsuite/gas/riscv/attribute-06.d: Likewise.
* testsuite/gas/riscv/attribute-07.d: Likewise.
* testsuite/gas/riscv/attribute-08.d: Likewise.
* testsuite/gas/riscv/attribute-09.d: Likewise.
* testsuite/gas/riscv/attribute-10.d: Likewise.
* testsuite/gas/riscv/attribute-unknown.d: Likewise.
* testsuite/gas/riscv/attribute-11.s: New testcase.
* testsuite/gas/riscv/attribute-11.d: New testcase.  The CSR is
used, so we should output the ELF priv attributes.
* testsuite/gas/riscv/attribute-12.d: New testcase.  The CSR is
used, so output the priv attributes according to the -mpriv-spec.
* testsuite/gas/riscv/attribute-13.d: New testcase.  The CSR isn't
used, so ignore the -mpriv-spec setting.

ld/
* testsuite/ld-riscv-elf/attr-merge-arch-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-arch-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-stack-align.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-01.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-02.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-03.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-04.d: Likewise.
* testsuite/ld-riscv-elf/attr-merge-strict-align-05.d: Likewise.
* testsuite/ld-riscv-elf/call-relax.d: Add -mno-arch-attr.
27 files changed:
gas/ChangeLog
gas/config/tc-riscv.c
gas/testsuite/gas/riscv/attribute-01.d
gas/testsuite/gas/riscv/attribute-02.d
gas/testsuite/gas/riscv/attribute-03.d
gas/testsuite/gas/riscv/attribute-04.d
gas/testsuite/gas/riscv/attribute-06.d
gas/testsuite/gas/riscv/attribute-07.d
gas/testsuite/gas/riscv/attribute-08.d
gas/testsuite/gas/riscv/attribute-09.d
gas/testsuite/gas/riscv/attribute-10.d
gas/testsuite/gas/riscv/attribute-11.d [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-11.s [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-12.d [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-13.d [new file with mode: 0644]
gas/testsuite/gas/riscv/attribute-unknown.d
ld/ChangeLog
ld/testsuite/ld-riscv-elf/attr-merge-arch-01.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-02.d
ld/testsuite/ld-riscv-elf/attr-merge-arch-03.d
ld/testsuite/ld-riscv-elf/attr-merge-stack-align.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-01.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-02.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-03.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-04.d
ld/testsuite/ld-riscv-elf/attr-merge-strict-align-05.d
ld/testsuite/ld-riscv-elf/call-relax.d