diff options
Diffstat (limited to '0014-modpost-lto-strip-.lto-from-module-names.patch')
-rw-r--r-- | 0014-modpost-lto-strip-.lto-from-module-names.patch | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/0014-modpost-lto-strip-.lto-from-module-names.patch b/0014-modpost-lto-strip-.lto-from-module-names.patch deleted file mode 100644 index 1ff4b6fde3dc..000000000000 --- a/0014-modpost-lto-strip-.lto-from-module-names.patch +++ /dev/null @@ -1,116 +0,0 @@ -From 56f70f11a55f51c191b3bb65821ca2f5fd9e4924 Mon Sep 17 00:00:00 2001 -From: Sami Tolvanen <samitolvanen@google.com> -Date: Fri, 6 Mar 2020 13:52:03 -0800 -Subject: [PATCH 14/24] modpost: lto: strip .lto from module names - -With LTO, everything is compiled into LLVM bitcode, so we have to link -each module into native code before modpost. Kbuild uses the .lto.o -suffix for these files, which also ends up in module information. This -change strips the unnecessary .lto suffix from the module name. - -Suggested-by: Bill Wendling <morbo@google.com> -Signed-off-by: Sami Tolvanen <samitolvanen@google.com> ---- - scripts/mod/modpost.c | 16 +++++++--------- - scripts/mod/modpost.h | 9 +++++++++ - scripts/mod/sumversion.c | 6 +++++- - 3 files changed, 21 insertions(+), 10 deletions(-) - -diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c -index 69341b36f271..5a329df55cc3 100644 ---- a/scripts/mod/modpost.c -+++ b/scripts/mod/modpost.c -@@ -17,7 +17,6 @@ - #include <ctype.h> - #include <string.h> - #include <limits.h> --#include <stdbool.h> - #include <errno.h> - #include "modpost.h" - #include "../../include/linux/license.h" -@@ -80,14 +79,6 @@ modpost_log(enum loglevel loglevel, const char *fmt, ...) - exit(1); - } - --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) -@@ -1984,6 +1975,10 @@ static char *remove_dot(char *s) - size_t m = strspn(s + n + 1, "0123456789"); - if (m && (s[n + m] == '.' || s[n + m] == 0)) - s[n] = 0; -+ -+ /* strip trailing .lto */ -+ if (strends(s, ".lto")) -+ s[strlen(s) - 4] = '\0'; - } - return s; - } -@@ -2007,6 +2002,9 @@ static void read_symbols(const char *modname) - /* strip trailing .o */ - tmp = NOFAIL(strdup(modname)); - tmp[strlen(tmp) - 2] = '\0'; -+ /* strip trailing .lto */ -+ if (strends(tmp, ".lto")) -+ tmp[strlen(tmp) - 4] = '\0'; - mod = new_module(tmp); - free(tmp); - } -diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h -index 3aa052722233..fab30d201f9e 100644 ---- a/scripts/mod/modpost.h -+++ b/scripts/mod/modpost.h -@@ -2,6 +2,7 @@ - #include <stdio.h> - #include <stdlib.h> - #include <stdarg.h> -+#include <stdbool.h> - #include <string.h> - #include <sys/types.h> - #include <sys/stat.h> -@@ -180,6 +181,14 @@ 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 d587f40f1117..760e6baa7eda 100644 ---- a/scripts/mod/sumversion.c -+++ b/scripts/mod/sumversion.c -@@ -391,10 +391,14 @@ 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) - 1, modname); -+ (int)strlen(modname) - postfix_len, modname); - - buf = read_text_file(filelist); - --- -2.28.0 - |