History

Merge tag 'kbuild-fixes-v5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild

Pull Kbuild fixes from Masahiro Yamada: - fix __uint128_t capability test in Kconfig when GCC that defaults to 32-bit is used to build the 64-bit kernel - suppress new noisy Clang warnings -Wpointer-to-enum-cast - move the namespace field in Module.symvers for the backward compatibility reason for the depmod tool - use available compression for initramdisk when INTRAMFS_SOURCE is defined, which was the original behavior - fix modpost to handle correct large section numbers when it refers to modversion CRCs and module namespaces - fix comments and documents * tag 'kbuild-fixes-v5.6-3' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: scripts/kallsyms: fix wrong kallsyms_relative_base modpost: Get proper section index by get_secindex() instead of st_shndx initramfs: restore default compression behavior modpost: move the namespace field in Module.symvers last kbuild: Disable -Wpointer-to-enum-cast kbuild: doc: fix references to other documents int128: fix __uint128_t compiler test in Kconfig kconfig: introduce m32-flag and m64-flag kbuild: Fix inconsistent comment

Linus Torvalds committed 6 years ago

Commit 207f75c2 parents 5d89291 7883a1412 files · +47 −39Browse files

Showing the changes to scripts (5 of 12 files). Show all

Unified · Split

5 files
  1. scripts/Kconfig.include +7 −0
  2. scripts/Makefile.extrawarn +1 −0
  3. scripts/export_report.pl +1 −1
  4. scripts/kallsyms.c +4 −4
  5. scripts/mod/modpost.c +14 −13
scripts/Kconfig.include+7−0
@@ -44,3 +44,10 @@ $(error-if,$(success, $(LD) -v | grep -q gold), gold linker '$(LD)' not supporte · 43 unmodified lines
44 44
45# gcc version including patch level45# gcc version including patch level
46gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh $(CC))46gcc-version := $(shell,$(srctree)/scripts/gcc-version.sh $(CC))
47
48# machine bit flags
49# $(m32-flag): -m32 if the compiler supports it, or an empty string otherwise.
50# $(m64-flag): -m64 if the compiler supports it, or an empty string otherwise.
51cc-option-bit = $(if-success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null,$(1))
52m32-flag := $(cc-option-bit,-m32)
53m64-flag := $(cc-option-bit,-m64)
scripts/Makefile.extrawarn+1−0
@@ -48,6 +48,7 @@ KBUILD_CFLAGS += -Wno-initializer-overrides · 47 unmodified lines
48KBUILD_CFLAGS += -Wno-format48KBUILD_CFLAGS += -Wno-format
49KBUILD_CFLAGS += -Wno-sign-compare49KBUILD_CFLAGS += -Wno-sign-compare
50KBUILD_CFLAGS += -Wno-format-zero-length50KBUILD_CFLAGS += -Wno-format-zero-length
51KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
51endif52endif
52 53
53endif54endif
scripts/export_report.pl+1−1
@@ -94,7 +94,7 @@ if (defined $opt{'o'}) { · 93 unmodified lines
94#94#
95while ( <$module_symvers> ) {95while ( <$module_symvers> ) {
96 chomp;96 chomp;
97 my (undef, $symbol, $namespace, $module, $gpl) = split('\t');97 my (undef, $symbol, $module, $gpl, $namespace) = split('\t');
98 $SYMBOL { $symbol } = [ $module , "0" , $symbol, $gpl];98 $SYMBOL { $symbol } = [ $module , "0" , $symbol, $gpl];
99}99}
100close($module_symvers);100close($module_symvers);
scripts/kallsyms.c+4−4
@@ -195,13 +195,13 @@ static struct sym_entry *read_symbol(FILE *in) · 194 unmodified lines
195 return NULL;195 return NULL;
196 }196 }
197 197
198 if (is_ignored_symbol(name, type))
199 return NULL;
200
201 /* Ignore most absolute/undefined (?) symbols. */
202 if (strcmp(name, "_text") == 0)198 if (strcmp(name, "_text") == 0)
203 _text = addr;199 _text = addr;
204 200
201 /* Ignore most absolute/undefined (?) symbols. */
202 if (is_ignored_symbol(name, type))
203 return NULL;
204
205 check_symbol_range(name, addr, text_ranges, ARRAY_SIZE(text_ranges));205 check_symbol_range(name, addr, text_ranges, ARRAY_SIZE(text_ranges));
206 check_symbol_range(name, addr, &percpu_range, 1);206 check_symbol_range(name, addr, &percpu_range, 1);
207 207
scripts/mod/modpost.c+14−13
@@ -308,7 +308,8 @@ static const char *sec_name(struct elf_info *elf, int secindex) · 307 unmodified lines
308 308
309static void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym)309static void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym)
310{310{
311 Elf_Shdr *sechdr = &info->sechdrs[sym->st_shndx];311 unsigned int secindex = get_secindex(info, sym);
312 Elf_Shdr *sechdr = &info->sechdrs[secindex];
312 unsigned long offset;313 unsigned long offset;
313 314
314 offset = sym->st_value;315 offset = sym->st_value;
@@ -2427,7 +2428,7 @@ static void write_if_changed(struct buffer *b, const char *fname) · 2112 unmodified lines
2427}2428}
2428 2429
2429/* parse Module.symvers file. line format:2430/* parse Module.symvers file. line format:
2430 * 0x12345678<tab>symbol<tab>module[[<tab>export]<tab>something]2431 * 0x12345678<tab>symbol<tab>module<tab>export<tab>namespace
2431 **/2432 **/
2432static void read_dump(const char *fname, unsigned int kernel)2433static void read_dump(const char *fname, unsigned int kernel)
2433{2434{
@@ -2440,7 +2441,7 @@ static void read_dump(const char *fname, unsigned int kernel) · 6 unmodified lines
2440 return;2441 return;
2441 2442
2442 while ((line = get_next_line(&pos, file, size))) {2443 while ((line = get_next_line(&pos, file, size))) {
2443 char *symname, *namespace, *modname, *d, *export, *end;2444 char *symname, *namespace, *modname, *d, *export;
2444 unsigned int crc;2445 unsigned int crc;
2445 struct module *mod;2446 struct module *mod;
2446 struct symbol *s;2447 struct symbol *s;
@@ -2448,16 +2449,16 @@ static void read_dump(const char *fname, unsigned int kernel) · 1 unmodified line
2448 if (!(symname = strchr(line, '\t')))2449 if (!(symname = strchr(line, '\t')))
2449 goto fail;2450 goto fail;
2450 *symname++ = '\0';2451 *symname++ = '\0';
2451 if (!(namespace = strchr(symname, '\t')))2452 if (!(modname = strchr(symname, '\t')))
2452 goto fail;
2453 *namespace++ = '\0';
2454 if (!(modname = strchr(namespace, '\t')))
2455 goto fail;2453 goto fail;
2456 *modname++ = '\0';2454 *modname++ = '\0';
2457 if ((export = strchr(modname, '\t')) != NULL)2455 if (!(export = strchr(modname, '\t')))
2458 *export++ = '\0';2456 goto fail;
2459 if (export && ((end = strchr(export, '\t')) != NULL))2457 *export++ = '\0';
2460 *end = '\0';2458 if (!(namespace = strchr(export, '\t')))
2459 goto fail;
2460 *namespace++ = '\0';
2461
2461 crc = strtoul(line, &d, 16);2462 crc = strtoul(line, &d, 16);
2462 if (*symname == '\0' || *modname == '\0' || *d != '\0')2463 if (*symname == '\0' || *modname == '\0' || *d != '\0')
2463 goto fail;2464 goto fail;
@@ -2508,9 +2509,9 @@ static void write_dump(const char *fname) · 44 unmodified lines
2508 namespace = symbol->namespace;2509 namespace = symbol->namespace;
2509 buf_printf(&buf, "0x%08x\t%s\t%s\t%s\t%s\n",2510 buf_printf(&buf, "0x%08x\t%s\t%s\t%s\t%s\n",
2510 symbol->crc, symbol->name,2511 symbol->crc, symbol->name,
2511 namespace ? namespace : "",
2512 symbol->module->name,2512 symbol->module->name,
2513 export_str(symbol->export));2513 export_str(symbol->export),
2514 namespace ? namespace : "");
2514 }2515 }
2515 symbol = symbol->next;2516 symbol = symbol->next;
2516 }2517 }