]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit - binutils/readelf.c
RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.
authorKito Cheng <kito.cheng@sifive.com>
Tue, 29 Jun 2021 06:36:35 +0000 (14:36 +0800)
committerNelson Chu <nelson.chu@sifive.com>
Tue, 6 Jul 2021 03:34:36 +0000 (11:34 +0800)
commitfbc95f1e11facf233e89a9c2b4dde06b9aaf4b86
tree810aa9b4b50933cd6e9e7f844d15886db695fd2a
parent07b2745f850232e1c2fdafb0f65ea88e6127218b
RISC-V: Add PT_RISCV_ATTRIBUTES and add it to PHDR.

We added PT_RISCV_ATTRIBUTES to program header to make
.riscv.attribute easier to find in dynamic loader or kernel.

Ref:
https://github.com/riscv/riscv-elf-psabi-doc/pull/71

ChangeLog:

bfd/

* elfnn-riscv.c(RISCV_ATTRIBUTES_SECTION_NAME): New.
(riscv_elf_additional_program_headers): Ditto.
(riscv_elf_modify_segment_map): Ditto.
(elf_backend_additional_program_headers): Ditto.
(elf_backend_modify_segment_map): Ditto.
(elf_backend_obj_attrs_section): Use RISCV_ATTRIBUTES_SECTION_NAME
rather than string literal.

binutils/

* readelf.c(get_riscv_segment_type): New.
(get_segment_type): Handle EM_RISCV.

include/

* elf/riscv.h (PT_RISCV_ATTRIBUTES): New.
* testsuite/ld-elf/orphan-region.ld: Discard .riscv.attributes
section for simplify testcase.
* testsuite/ld-riscv-elf/attr-phdr.d: New.
* testsuite/ld-riscv-elf/attr-phdr.s: Ditto.
* testsuite/ld-riscv-elf/ld-riscv-elf.exp: Add attr-phdr to
testcase.
bfd/elfnn-riscv.c
binutils/readelf.c
include/elf/riscv.h
ld/testsuite/ld-elf/orphan-region.ld
ld/testsuite/ld-riscv-elf/attr-phdr.d [new file with mode: 0644]
ld/testsuite/ld-riscv-elf/attr-phdr.s [new file with mode: 0644]
ld/testsuite/ld-riscv-elf/ld-riscv-elf.exp