On Sat, Jun 5, 2021 at 12:36 AM Mark Brown <broonie@xxxxxxxxxx> wrote: > > One common cause of modpost version generation failures is is a failure to double "is" > prototype exported assembly functions - the tooling requires this for > exported functions even if they are not and should not be called from C > code in order to do the version mangling for symbols. Unfortunately the > error message is currently rather abstruse, simply saying that "version > generation failed" and even diving into the code doesn't directly show > what's going on since there's several steps between the problem and it > being observed. > > Provide an explicit hint as to the likely cause of a version generation > failure to help anyone who runs into this in future more readily diagnose > and fix the problem. > > Signed-off-by: Mark Brown <broonie@xxxxxxxxxx> > --- > scripts/mod/modpost.c | 2 ++ > 1 file changed, 2 insertions(+) > > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c > index 3e623ccc020b..78553f95c250 100644 > --- a/scripts/mod/modpost.c > +++ b/scripts/mod/modpost.c > @@ -662,6 +662,8 @@ static void handle_modversion(const struct module *mod, > if (sym->st_shndx == SHN_UNDEF) { > warn("EXPORT symbol \"%s\" [%s%s] version generation failed, symbol will not be versioned.\n", > symname, mod->name, mod->is_vmlinux ? "" : ".ko"); > + warn("Is \"%s\" prototyped in asm/asm-prototypes.h?\n", > + symname); May I ask for small changes? Could you enclose the header with angle bralets, like this <asm/asm-protytypes.h> ? These two sentences are related, so could you merge them into a single warn() call, like this ? warn("EXPORT symbol \"%s\" [%s%s] version ...\n", "Is \"%s\" prototyped in <asm/asm-prototypes.h>?\n", symname, mod->name, mod->is_vmlinux ? "" : ".ko", modname); > return; > } > > -- > 2.20.1 > -- Best Regards Masahiro Yamada