在 2023-06-12星期一的 06:35 +0800,Xi Ruoyao via Grub-devel写道: > On Wed, 2023-06-07 at 15:34 +0800, Xiaotian Wu wrote: > > Because the binutils of the loongarch architecture adds relaxation > > support [1], the next version of binutils will not be able to build > > grub. > > > > So we added the R_LARCH_B16, R_LARCH_B21 and R_LARCH_RELAX > > relocations > > to enhance grub compatibility. > > Wouldn't it be easier to just pass -mno-relax to the toolchain when > we > build GRUB? I don't think it makes too much sense to perform > relaxation > on a boot loader. The boot loader is generally the coldest code > paths > in a system, so relaxing it won't give any real benefit (well, if you > reboot a system 100 times you may finally save one second), but > increases the maintenance burden. >
Yes, it's easy to pass -mno-relax, but binutils-2.40 doesn't support this option. > Consider a new relaxation pattern is added after we release GRUB > 2.12. > Then if we simply pass -mno-relax, GRUB 2.12 will continue to work. > But > if we try to "support" relaxation this way, every distro will have to > patch GRUB 2.12 when the toolchain is updated. > GRUB 2.12 has not been released yet. If this patch can be merged before the release of grub 2.12, every distribution does not need to be patched. Moreover, both binutils-2.40 and future binutils 2.41+ will be able to compile normally. > > [1]: > > https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=56576f4a722b7398d35802ecf7d4185c27d6d69b > > > > v1->v2: > > - split patch > > - drop cast code > > > > Xiaotian Wu (5): > > Use the correct format specifier for formatted output > > loongarch: Optimize code using pc variable > > loongarch: Rename function names > > loongarch: Add ELF relocation types documentation and comments > > loongarch: Add relaxation support > > > > grub-core/kern/arm64/dl_helper.c | 4 +- > > grub-core/kern/loongarch64/dl.c | 21 +++++++- > > grub-core/kern/loongarch64/dl_helper.c | 72 > > ++++++++++++++++++++++++- > > - > > include/grub/elf.h | 3 ++ > > include/grub/loongarch64/reloc.h | 6 ++- > > util/grub-mkimagexx.c | 28 ++++++++-- > > util/grub-module-verifier.c | 3 ++ > > 7 files changed, 124 insertions(+), 13 deletions(-) > > > -- Best Regards Xiaotian Wu _______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel