[PATCH v2 0/2] Fix binfmt_flat loader for RISC-V
Damien Le Moal
Damien.LeMoal at wdc.com
Thu Apr 15 01:32:10 BST 2021
On 2021/04/08 0:49, Damien Le Moal wrote:
> RISC-V NOMMU flat binaries cannot tolerate a gap between the text and
> data section as the toolchain fully resolves at compile time the PC
> relative global pointer (__global_pointer$ value loaded in gp register).
> Without a relocation entry provided, the flat bin loader cannot fix the
> value if a gap is introduced and executables fail to run.
> This series fixes this problem by allowing an architecture to request
> the flat loader to suppress the gap between the text and data sections.
> The first patch fixes binfmt_flat flat_load_file() using the new
> configuration option CONFIG_BINFMT_FLAT_NO_TEXT_DATA_GAP. The second
> patch enables this option for RISCV NOMMU builds.
> These patches do not change the binfmt_flat loader behavior for other
> Changes from v1:
> * Replace FLAT_TEXT_DATA_NO_GAP macro with
> CONFIG_BINFMT_FLAT_NO_TEXT_DATA_GAP config option (patch 1).
> * Remove the addition of riscv/include/asm/flat.h and set
> CONFIG_BINFMT_FLAT_NO_TEXT_DATA_GAP for RISCV and !MMU
> Damien Le Moal (2):
> binfmt_flat: allow not offsetting data start
> riscv: Disable text-data gap in flat binaries
> arch/riscv/Kconfig | 1 +
> fs/Kconfig.binfmt | 3 +++
> fs/binfmt_flat.c | 21 +++++++++++++++------
> 3 files changed, 19 insertions(+), 6 deletions(-)
Any comment on these patches ?
Without them, RISC-V NOMMU user space does not run... I would really like to get
these in this cycle if possible.
Damien Le Moal
Western Digital Research
More information about the linux-riscv