Unverified Commit ff79d31e authored by Ard Biesheuvel's avatar Ard Biesheuvel Committed by Nathan Chancellor
Browse files

mips: Add support for PC32 relocations in vmlinux



MIPS supports PC32 relocations like most other architectures, which will
be used by kallsyms to make its symbol references visible to the linker.

Given that these are place-relative, they can be ignored by the 'relocs'
tool, just like other PC type relocations.

Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
Link: https://patch.msgid.link/20260116093359.2442297-5-ardb+git@google.com


Signed-off-by: default avatarNathan Chancellor <nathan@kernel.org>
parent 6eac13c8
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ static const char *rel_type(unsigned type)
		REL_TYPE(R_MIPS_HIGHEST),
		REL_TYPE(R_MIPS_PC21_S2),
		REL_TYPE(R_MIPS_PC26_S2),
		REL_TYPE(R_MIPS_PC32),
#undef REL_TYPE
	};
	const char *name = "unknown type rel type name";
@@ -522,6 +523,7 @@ static int do_reloc(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
	case R_MIPS_PC16:
	case R_MIPS_PC21_S2:
	case R_MIPS_PC26_S2:
	case R_MIPS_PC32:
		/*
		 * NONE can be ignored and PC relative relocations don't
		 * need to be adjusted.
+2 −0
Original line number Diff line number Diff line
@@ -123,6 +123,8 @@
#define R_MIPS_LOVENDOR		100
#define R_MIPS_HIVENDOR		127

#define R_MIPS_PC32		248

#define SHN_MIPS_ACCOMON	0xff00		/* Allocated common symbols */
#define SHN_MIPS_TEXT		0xff01		/* Allocated test symbols.  */
#define SHN_MIPS_DATA		0xff02		/* Allocated data symbols.  */