Browse Source

kbuild: print only total number of section mismatces found

We have too many section mismatches detected at the moment.
So silence modpost and prevent the option from being
set in a typical allyesconfig build.

Tell the user how to see all the deteils in the summary
message from modpost.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Sam Ravnborg 17 years ago
parent
commit
e5f95c8b77
2 changed files with 8 additions and 9 deletions
  1. 1 1
      lib/Kconfig.debug
  2. 7 8
      scripts/mod/modpost.c

+ 1 - 1
lib/Kconfig.debug

@@ -81,7 +81,7 @@ config HEADERS_CHECK
 
 
 config DEBUG_SECTION_MISMATCH
 config DEBUG_SECTION_MISMATCH
 	bool "Enable full Section mismatch analysis"
 	bool "Enable full Section mismatch analysis"
-	default n
+	depends on UNDEFINED
 	help
 	help
 	  The section mismatch analysis checks if there are illegal
 	  The section mismatch analysis checks if there are illegal
 	  references from one section to another section.
 	  references from one section to another section.

+ 7 - 8
scripts/mod/modpost.c

@@ -1125,15 +1125,15 @@ static void report_sec_mismatch(const char *modname, enum mismatch mismatch,
 	to = to_is_func ? "function" : "variable";
 	to = to_is_func ? "function" : "variable";
 	to_p = to_is_func ? "()" : "";
 	to_p = to_is_func ? "()" : "";
 
 
+	sec_mismatch_count++;
+	if (!sec_mismatch_verbose)
+		return;
+
 	fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in"
 	fprintf(stderr, "WARNING: %s(%s+0x%llx): Section mismatch in"
 	                " reference from the %s %s%s to the %s %s:%s%s\n",
 	                " reference from the %s %s%s to the %s %s:%s%s\n",
                         modname, fromsec, fromaddr, from, fromsym, from_p,
                         modname, fromsec, fromaddr, from, fromsym, from_p,
 	                to, tosec, tosym, to_p);
 	                to, tosec, tosym, to_p);
 
 
-	sec_mismatch_count++;
-	if (!sec_mismatch_verbose)
-		return;
-
 	switch (mismatch) {
 	switch (mismatch) {
 	case TEXT_TO_INIT:
 	case TEXT_TO_INIT:
 		fprintf(stderr,
 		fprintf(stderr,
@@ -1939,10 +1939,9 @@ int main(int argc, char **argv)
 		write_dump(dump_write);
 		write_dump(dump_write);
 	if (sec_mismatch_count && !sec_mismatch_verbose)
 	if (sec_mismatch_count && !sec_mismatch_verbose)
 		fprintf(stderr, "modpost: Found %d section mismatch(es).\n"
 		fprintf(stderr, "modpost: Found %d section mismatch(es).\n"
-		        "To see additional details select \"Enable full "
-		        "Section mismatch analysis\"\n"
-		        "in the Kernel Hacking menu "
-		        "(CONFIG_SECTION_MISMATCH).\n", sec_mismatch_count);
+		        "To see full details build your kernel with:\n"
+		        "'make CONFIG_DEBUG_SECTION_MISMATCH=y'\n",
+		        sec_mismatch_count);
 
 
 	return err;
 	return err;
 }
 }