On 26.03.2025 13:42, Oleksii Kurochko wrote: > H provides additional instructions and CSRs that control the new stage of > address translation and support hosting a guest OS in virtual S-mode > (VS-mode). > > According to the Unprivileged Architecture (version 20240411) specification: > ``` > Table 74 summarizes the standardized extension names. The table also defines > the canonical order in which extension names must appear in the name string, > with top-to-bottom in table indicating first-to-last in the name string, e.g., > RV32IMACV is legal, whereas RV32IMAVC is not. > ``` > According to Table 74, the h extension is placed last in the one-letter > extensions name part of the ISA string. > > `h` is a standalone extension based on the patch [1] but it wasn't so > before. > As the minimal supported GCC version to build Xen for RISC-V is 12.2.0, > and for that version, h is still considered a prefix for the hypervisor > extension but the name of hypervisor extension must be more then 1 letter > extension, a workaround ( with using `hh` as an H extension name ) is > implemented as otherwise the following compilation error will occur: > error: '-march=rv64gc_h_zbb_zihintpause': name of hypervisor extension > must be more than 1 letter > > After GCC version 13.1.0, the commit [1] introducing H extension support > allows us to drop the workaround with `hh` as hypervisor extension name > and use only one h in -march. > > [1] > https://github.com/gcc-mirror/gcc/commit/0cd11d301013af50a3fae0694c909952e94e20d5#diff-d6f7db0db31bfb339b01bec450f1b905381eb4730cc5ab2b2794971e34647d64R148 > > Signed-off-by: Oleksii Kurochko <[email protected]>
Acked-by: Jan Beulich <[email protected]>
