README: Update toolchain section to mention PIE requirement

Since commit 76d7e9b8ee ("firmware: remove copy-base relocation"), the
Makefile enforces PIE support.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Reviewed-by: Anup Patel <anup@brainfault.org>
This commit is contained in:
Joel Stanley
2025-02-05 14:14:51 +10:30
committed by Anup Patel
parent 02c7a9bbef
commit f3dfa6488f

View File

@@ -108,13 +108,12 @@ LLVM/Clang toolchain due to LLVM's ability to support multiple backends in the
same binary, so is often an easy way to obtain a working cross-compilation same binary, so is often an easy way to obtain a working cross-compilation
toolchain. toolchain.
Basically, we prefer toolchains with Position Independent Executable (PIE) Toolchains with Position Independent Executable (PIE) support like
support like *riscv64-linux-gnu-gcc*, *riscv64-unknown-freebsd-gcc*, or *riscv64-linux-gnu-gcc*, *riscv64-unknown-freebsd-gcc*, or *Clang/LLVM* are
*Clang/LLVM* as they generate PIE firmware images that can run at arbitrary required in order to generate PIE firmware images that can run at arbitrary
address with appropriate alignment. If a bare-metal GNU toolchain (e.g. address with appropriate alignment. Bare-metal GNU toolchains (e.g.
*riscv64-unknown-elf-gcc*) is used, static linked firmware images are *riscv64-unknown-elf-gcc*) cannot be used. *Clang/LLVM* can still generate PIE
generated instead. *Clang/LLVM* can still generate PIE images if a bare-metal images if a bare-metal triple is used (e.g. *-target riscv64-unknown-elf*).
triple is used (e.g. *-target riscv64-unknown-elf*).
Please note that only a 64-bit version of the toolchain is available in Please note that only a 64-bit version of the toolchain is available in
the Bootlin toolchain repository for now. the Bootlin toolchain repository for now.