We prefer to use large model. Did you try my patch with using ET_DYN? https://lists.libreplanet.org/archive/html/grub-devel/2025-04/msg00093.html
Regards Vladimir 'phcoder' Serbinenko Le ven. 20 mars 2026, 21:48, Jason Montleon via Grub-devel < [email protected]> a écrit : > > > > > On Friday, March 20th, 2026 at 10:44 AM, Trevor Gamblin < > [email protected]> wrote: > > > From: Jason Montleon <[email protected]> > > > > Upstream-Status: Submitted [https://savannah.gnu.org/bugs/?65909] > > > > Signed-off-by: Jason Montleon <[email protected]> > > Signed-off-by: Trevor Gamblin <[email protected]> > > --- > > We have recently added this to the openembedded-core layer to help with > RISC-V > > builds on certain platforms (e.g. the VisionFive 2). I have left the > patch as it > > is there, including the link to the original bug submission and the > author's > > attribution. Jason, if you would like to change the attribution or > anything > > about the patch, let me know and I can re-submit. > > Hi Trevor, > Fedora is still using this patch and it is working for us. > > https://src.fedoraproject.org/rpms/grub2/blob/rawhide/f/0283-Use-medany-instead-of-large-model-for-RISCV.patch > > I did want to share that we revisited building with large model and > managed to get it to build. This resulted in a smaller binary with far > fewer relocations. > That work is at > http://fedora.riscv.rocks:3000/rpms/grub2/commits/branch/main-riscv64-large-code > > I am not sure if one approach would be preferred over the other. > > > configure.ac | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/configure.ac b/configure.ac > > index d19fb625d..2a070c577 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -1675,7 +1675,7 @@ fi] > > > > CFLAGS="$TARGET_CFLAGS" > > > > -if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 || test > "$target_cpu" = riscv64 ; then > > +if test "$target_cpu" = x86_64 || test "$target_cpu" = sparc64 ; then > > # Use large model to support 4G memory > > AC_CACHE_CHECK([whether option -mcmodel=large works], > grub_cv_cc_mcmodel, [ > > CFLAGS="$TARGET_CFLAGS -mcmodel=large" > > @@ -1685,9 +1685,11 @@ if test "$target_cpu" = x86_64 || test > "$target_cpu" = sparc64 || test "$target_ > > ]) > > if test "x$grub_cv_cc_mcmodel" = xyes; then > > TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=large" > > - elif test "$target_cpu" = sparc64 || test "$target_cpu" = riscv64; > then > > + elif test "$target_cpu" = sparc64; then > > TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=medany" > > fi > > +elif test "$target_cpu" = riscv64 ; then > > + TARGET_CFLAGS="$TARGET_CFLAGS -mcmodel=medany" > > fi > > > > # Stack smashing protector. > > -- > > 2.53.0 > > > > > > _______________________________________________ > Grub-devel mailing list > [email protected] > https://lists.gnu.org/mailman/listinfo/grub-devel >
_______________________________________________ Grub-devel mailing list [email protected] https://lists.gnu.org/mailman/listinfo/grub-devel
