|
@@ -1248,6 +1248,19 @@ static int is_function(Elf_Sym *sym)
|
|
return -1;
|
|
return -1;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+static void print_section_list(const char * const list[20])
|
|
|
|
+{
|
|
|
|
+ const char *const *s = list;
|
|
|
|
+
|
|
|
|
+ while (*s) {
|
|
|
|
+ fprintf(stderr, "%s", *s);
|
|
|
|
+ s++;
|
|
|
|
+ if (*s)
|
|
|
|
+ fprintf(stderr, ", ");
|
|
|
|
+ }
|
|
|
|
+ fprintf(stderr, "\n");
|
|
|
|
+}
|
|
|
|
+
|
|
/*
|
|
/*
|
|
* Print a warning about a section mismatch.
|
|
* Print a warning about a section mismatch.
|
|
* Try to find symbols near it so user can find it.
|
|
* Try to find symbols near it so user can find it.
|
|
@@ -1304,7 +1317,6 @@ static void report_sec_mismatch(const char *modname,
|
|
break;
|
|
break;
|
|
case DATA_TO_ANY_INIT: {
|
|
case DATA_TO_ANY_INIT: {
|
|
prl_to = sec2annotation(tosec);
|
|
prl_to = sec2annotation(tosec);
|
|
- const char *const *s = mismatch->symbol_white_list;
|
|
|
|
fprintf(stderr,
|
|
fprintf(stderr,
|
|
"The variable %s references\n"
|
|
"The variable %s references\n"
|
|
"the %s %s%s%s\n"
|
|
"the %s %s%s%s\n"
|
|
@@ -1312,9 +1324,7 @@ static void report_sec_mismatch(const char *modname,
|
|
"variable with __init* or __refdata (see linux/init.h) "
|
|
"variable with __init* or __refdata (see linux/init.h) "
|
|
"or name the variable:\n",
|
|
"or name the variable:\n",
|
|
fromsym, to, prl_to, tosym, to_p);
|
|
fromsym, to, prl_to, tosym, to_p);
|
|
- while (*s)
|
|
|
|
- fprintf(stderr, "%s, ", *s++);
|
|
|
|
- fprintf(stderr, "\n");
|
|
|
|
|
|
+ print_section_list(mismatch->symbol_white_list);
|
|
free(prl_to);
|
|
free(prl_to);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -1329,7 +1339,6 @@ static void report_sec_mismatch(const char *modname,
|
|
break;
|
|
break;
|
|
case DATA_TO_ANY_EXIT: {
|
|
case DATA_TO_ANY_EXIT: {
|
|
prl_to = sec2annotation(tosec);
|
|
prl_to = sec2annotation(tosec);
|
|
- const char *const *s = mismatch->symbol_white_list;
|
|
|
|
fprintf(stderr,
|
|
fprintf(stderr,
|
|
"The variable %s references\n"
|
|
"The variable %s references\n"
|
|
"the %s %s%s%s\n"
|
|
"the %s %s%s%s\n"
|
|
@@ -1337,9 +1346,7 @@ static void report_sec_mismatch(const char *modname,
|
|
"variable with __exit* (see linux/init.h) or "
|
|
"variable with __exit* (see linux/init.h) or "
|
|
"name the variable:\n",
|
|
"name the variable:\n",
|
|
fromsym, to, prl_to, tosym, to_p);
|
|
fromsym, to, prl_to, tosym, to_p);
|
|
- while (*s)
|
|
|
|
- fprintf(stderr, "%s, ", *s++);
|
|
|
|
- fprintf(stderr, "\n");
|
|
|
|
|
|
+ print_section_list(mismatch->symbol_white_list);
|
|
free(prl_to);
|
|
free(prl_to);
|
|
break;
|
|
break;
|
|
}
|
|
}
|