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

Commit 2a116659 authored by Matthew Wilcox's avatar Matthew Wilcox Committed by Sam Ravnborg
Browse files

kbuild: distinguish between errors and warnings in modpost



Some of modpost's warnings are fatal, and some are not.  Adopt the
compiler distinction between errors and warnings by calling merror()
for fatal diagnostics and warn() for non-fatal ones.
merror() was used as replacemtn for error() to avoid clash with glibc

Signed-off-by: default avatarMatthew Wilcox <matthew@wil.cx>
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
parent 63431e75
Loading
Loading
Loading
Loading
+19 −3
Original line number Original line Diff line number Diff line
@@ -55,6 +55,17 @@ void warn(const char *fmt, ...)
	va_end(arglist);
	va_end(arglist);
}
}


void merror(const char *fmt, ...)
{
	va_list arglist;

	fprintf(stderr, "ERROR: ");

	va_start(arglist, fmt);
	vfprintf(stderr, fmt, arglist);
	va_end(arglist);
}

static int is_vmlinux(const char *modname)
static int is_vmlinux(const char *modname)
{
{
	const char *myname;
	const char *myname;
@@ -1307,9 +1318,14 @@ static int add_versions(struct buffer *b, struct module *mod)
		exp = find_symbol(s->name);
		exp = find_symbol(s->name);
		if (!exp || exp->module == mod) {
		if (!exp || exp->module == mod) {
			if (have_vmlinux && !s->weak) {
			if (have_vmlinux && !s->weak) {
				if (warn_unresolved) {
					warn("\"%s\" [%s.ko] undefined!\n",
					warn("\"%s\" [%s.ko] undefined!\n",
					     s->name, mod->name);
					     s->name, mod->name);
				err = warn_unresolved ? 0 : 1;
				} else {
					merror("\"%s\" [%s.ko] undefined!\n",
					          s->name, mod->name);
					err = 1;
				}
			}
			}
			continue;
			continue;
		}
		}
+1 −0
Original line number Original line Diff line number Diff line
@@ -145,3 +145,4 @@ void release_file(void *file, unsigned long size);


void fatal(const char *fmt, ...);
void fatal(const char *fmt, ...);
void warn(const char *fmt, ...);
void warn(const char *fmt, ...);
void merror(const char *fmt, ...);