Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit f666751a authored by Sam Ravnborg's avatar Sam Ravnborg
Browse files

kbuild/modpost: improve warnings if symbol is unknown



If we cannot determine the symbol then print
(unknown) to hint the reader that we failed to
find the symbol.
This happens with REL relocation records
in arm object files.

Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent b1d0e4f5
Loading
Loading
Loading
Loading
+14 −7
Original line number Diff line number Diff line
@@ -613,7 +613,7 @@ static const char *sym_name(struct elf_info *elf, Elf_Sym *sym)
	if (sym)
		return elf->strtab + sym->st_name;
	else
		return "";
		return "(unknown)";
}

static const char *sec_name(struct elf_info *elf, int shndx)
@@ -1102,7 +1102,7 @@ static int is_function(Elf_Sym *sym)
	if (sym)
		return ELF_ST_TYPE(sym->st_info) == STT_FUNC;
	else
		return 0;
		return -1;
}

/*
@@ -1120,10 +1120,17 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
{
	const char *from, *from_p;
	const char *to, *to_p;
	from = from_is_func ? "function" : "variable";
	from_p = from_is_func ? "()" : "";
	to = to_is_func ? "function" : "variable";
	to_p = to_is_func ? "()" : "";

	switch (from_is_func) {
	case 0: from = "variable"; from_p = "";   break;
	case 1: from = "function"; from_p = "()"; break;
	default: from = "(unknown reference)"; from_p = ""; break;
	}
	switch (to_is_func) {
	case 0: to = "variable"; to_p = "";   break;
	case 1: to = "function"; to_p = "()"; break;
	default: to = "(unknown reference)"; to_p = ""; break;
	}

	sec_mismatch_count++;
	if (!sec_mismatch_verbose)