On Sat, Aug 28, 2021 at 6:51 PM Masahiro Yamada <masahiroy@xxxxxxxxxx> wrote: > > get_src_version() strips 'o' or 'lto.o' from the end of the object file > path (so, postfixlen is 1 or 5), then adds 'mod'. > > If you look at the code closely, mod->name already holds the base path > with the extension stripped. > > Most of the code changes made by commit 7ac204b545f2 ("modpost: lto: > strip .lto from module names") was actually unneeded. > > sumversion.c does not need strends(), so it can get back local in > modpost.c again. > > Signed-off-by: Masahiro Yamada <masahiroy@xxxxxxxxxx> > --- Applied this to linux-kbuild. (only 1/5 and 3/5) > scripts/mod/modpost.c | 11 ++++++++++- > scripts/mod/modpost.h | 9 --------- > scripts/mod/sumversion.c | 7 +------ > 3 files changed, 11 insertions(+), 16 deletions(-) > > diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c > index 270a7df898e2..a26139aa57fd 100644 > --- a/scripts/mod/modpost.c > +++ b/scripts/mod/modpost.c > @@ -17,6 +17,7 @@ > #include <ctype.h> > #include <string.h> > #include <limits.h> > +#include <stdbool.h> > #include <errno.h> > #include "modpost.h" > #include "../../include/linux/license.h" > @@ -89,6 +90,14 @@ modpost_log(enum loglevel loglevel, const char *fmt, ...) > error_occurred = true; > } > > +static inline bool strends(const char *str, const char *postfix) > +{ > + if (strlen(str) < strlen(postfix)) > + return false; > + > + return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0; > +} > + > void *do_nofail(void *ptr, const char *expr) > { > if (!ptr) > @@ -2060,7 +2069,7 @@ static void read_symbols(const char *modname) > if (!mod->is_vmlinux) { > version = get_modinfo(&info, "version"); > if (version || all_versions) > - get_src_version(modname, mod->srcversion, > + get_src_version(mod->name, mod->srcversion, > sizeof(mod->srcversion) - 1); > } > > diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h > index c1a895c0d682..0c47ff95c0e2 100644 > --- a/scripts/mod/modpost.h > +++ b/scripts/mod/modpost.h > @@ -2,7 +2,6 @@ > #include <stdio.h> > #include <stdlib.h> > #include <stdarg.h> > -#include <stdbool.h> > #include <string.h> > #include <sys/types.h> > #include <sys/stat.h> > @@ -178,14 +177,6 @@ static inline unsigned int get_secindex(const struct elf_info *info, > return info->symtab_shndx_start[sym - info->symtab_start]; > } > > -static inline bool strends(const char *str, const char *postfix) > -{ > - if (strlen(str) < strlen(postfix)) > - return false; > - > - return strcmp(str + strlen(str) - strlen(postfix), postfix) == 0; > -} > - > /* file2alias.c */ > extern unsigned int cross_build; > void handle_moddevtable(struct module *mod, struct elf_info *info, > diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c > index 760e6baa7eda..905c0ec291e1 100644 > --- a/scripts/mod/sumversion.c > +++ b/scripts/mod/sumversion.c > @@ -391,14 +391,9 @@ void get_src_version(const char *modname, char sum[], unsigned sumlen) > struct md4_ctx md; > char *fname; > char filelist[PATH_MAX + 1]; > - int postfix_len = 1; > - > - if (strends(modname, ".lto.o")) > - postfix_len = 5; > > /* objects for a module are listed in the first line of *.mod file. */ > - snprintf(filelist, sizeof(filelist), "%.*smod", > - (int)strlen(modname) - postfix_len, modname); > + snprintf(filelist, sizeof(filelist), "%s.mod", modname); > > buf = read_text_file(filelist); > > -- > 2.30.2 > -- Best Regards Masahiro Yamada