]> git.ipfire.org Git - thirdparty/grub.git/commit
loongarch: Disable relaxation relocations
authorXiaotian Wu <wuxiaotian@loongson.cn>
Thu, 15 Jun 2023 12:10:38 +0000 (20:10 +0800)
committerDaniel Kiper <daniel.kiper@oracle.com>
Thu, 22 Jun 2023 22:50:38 +0000 (00:50 +0200)
commit87247635c0d583cfbc1947107d23b40877d107b8
treeaa19b8ba3db153283cef5585267babd952f0231c
parent857af0e17b3f8df8a2e1b355e159c48ddb801419
loongarch: Disable relaxation relocations

A working GRUB cannot be built with upcoming binutils and GCC, because linker
relaxation was added [1] causing new unsupported relocations to appear in modules.

So we pass -mno-relax to GCC if it is supported, to disable relaxation and make
GRUB forward-compatible with new toolchains.

While similar code already exists for sparc64 in configure.ac, sparc64 sets
LDFLAGS while LoongArch requires CFLAGS to be set. If we only set LDFLAGS on
LoongArch, GCC will still generate relaxation relocations in the .o files, so
the sparc64 code cannot be reused.

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=56576f4a722b7398d35802ecf7d4185c27d6d69b

Signed-off-by: Xiaotian Wu <wuxiaotian@loongson.cn>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
configure.ac