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 > architectures. > > 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(-) >
Ping ? 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