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

Commit cd547791 authored by Li Yang's avatar Li Yang Committed by Sam Ravnborg
Browse files

kbuild: add "Section mismatch" warning whitelist for powerpc



This patch fixes the following class of "Section mismatch" warnings when
building powerpc platforms.

WARNING: arch/powerpc/kernel/built-in.o - Section mismatch: reference to .init.data:.got2 from prom_entry (offset 0x0)
WARNING: arch/powerpc/platforms/built-in.o - Section mismatch: reference to .init.text:mpc8313_rdb_probe from .machine.desc after 'mach_mpc8313_rdb' (at offset 0x4)
....

Signed-off-by: default avatarLi Yang <leoli@freescale.com>
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent f892b7d4
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -650,9 +650,10 @@ static int strrcmp(const char *s, const char *sub)
 *  tosec    = .init.text
 *
 * Pattern 10:
 *  ia64 has machvec table for each platform. It is mixture of function
 *  pointer of .init.text and .text.
 *  fromsec  = .machvec
 *  ia64 has machvec table for each platform and
 *  powerpc has a machine desc table for each platform.
 *  It is mixture of function pointers of .init.text and .text.
 *  fromsec  = .machvec | .machine.desc
 **/
static int secref_whitelist(const char *modname, const char *tosec,
			    const char *fromsec, const char *atsym,
@@ -751,7 +752,8 @@ static int secref_whitelist(const char *modname, const char *tosec,
				return 1;

	/* Check for pattern 10 */
	if (strcmp(fromsec, ".machvec") == 0)
	if ((strcmp(fromsec, ".machvec") == 0) ||
	    (strcmp(fromsec, ".machine.desc") == 0))
		return 1;

	return 0;
@@ -887,6 +889,11 @@ static void warn_sec_mismatch(const char *modname, const char *fromsec,
			     elf->strtab + before->st_name, refsymname))
		return;

	/* fromsec whitelist - without a valid 'before'
	 * powerpc has a GOT table in .got2 section */
	if (strcmp(fromsec, ".got2") == 0)
		return;

	if (before && after) {
		warn("%s(%s+0x%llx): Section mismatch: reference to %s:%s "
		     "(between '%s' and '%s')\n",