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

Unified · Split

12 files
  1. Documentation/kbuild/kbuild.rst +1 −1
  2. Documentation/kbuild/kconfig-macro-language.rst +1 −1
  3. Documentation/kbuild/makefiles.rst +3 −3
  4. Documentation/kbuild/modules.rst +2 −2
  5. Makefile +1 −1
  6. init/Kconfig +1 −2
  7. scripts/Kconfig.include +7 −0
  8. scripts/Makefile.extrawarn +1 −0
  9. scripts/export_report.pl +1 −1
  10. scripts/kallsyms.c +4 −4
  11. scripts/mod/modpost.c +14 −13
  12. usr/Kconfig +11 −11
Documentation/kbuild/kbuild.rst+1−1
@@ -237,7 +237,7 @@ This is solely useful to speed up test compiles. · 236 unmodified lines
237237 KBUILD_EXTRA_SYMBOLS
238238 --------------------
239239 For modules that use symbols from other modules.
240−See more details in modules.txt.
240+See more details in modules.rst.
241241
242242 ALLSOURCE_ARCHS
243243 ---------------
Documentation/kbuild/kconfig-macro-language.rst+1−1
@@ -44,7 +44,7 @@ intermediate:: · 43 unmodified lines
4444 def_bool y
4545
4646 Then, Kconfig moves onto the evaluation stage to resolve inter-symbol
47−dependency as explained in kconfig-language.txt.
47+dependency as explained in kconfig-language.rst.
4848
4949
5050 Variables
Documentation/kbuild/makefiles.rst+3−3
@@ -924,7 +924,7 @@ When kbuild executes, the following steps are followed (roughly): · 923 unmodified lines
924924 $(KBUILD_AFLAGS_MODULE) is used to add arch-specific options that
925925 are used for assembler.
926926
927− From commandline AFLAGS_MODULE shall be used (see kbuild.txt).
927+ From commandline AFLAGS_MODULE shall be used (see kbuild.rst).
928928
929929 KBUILD_CFLAGS_KERNEL
930930 $(CC) options specific for built-in
@@ -937,7 +937,7 @@ When kbuild executes, the following steps are followed (roughly): · 6 unmodified lines
937937
938938 $(KBUILD_CFLAGS_MODULE) is used to add arch-specific options that
939939 are used for $(CC).
940− From commandline CFLAGS_MODULE shall be used (see kbuild.txt).
940+ From commandline CFLAGS_MODULE shall be used (see kbuild.rst).
941941
942942 KBUILD_LDFLAGS_MODULE
943943 Options for $(LD) when linking modules
@@ -945,7 +945,7 @@ When kbuild executes, the following steps are followed (roughly): · 1 unmodified line
945945 $(KBUILD_LDFLAGS_MODULE) is used to add arch-specific options
946946 used when linking modules. This is often a linker script.
947947
948− From commandline LDFLAGS_MODULE shall be used (see kbuild.txt).
948+ From commandline LDFLAGS_MODULE shall be used (see kbuild.rst).
949949
950950 KBUILD_LDS
951951
Documentation/kbuild/modules.rst+2−2
@@ -470,9 +470,9 @@ build. · 469 unmodified lines
470470
471471 The syntax of the Module.symvers file is::
472472
473− <CRC> <Symbol> <Namespace> <Module> <Export Type>
473+ <CRC> <Symbol> <Module> <Export Type> <Namespace>
474474
475− 0xe1cc2a05 usb_stor_suspend USB_STORAGE drivers/usb/storage/usb-storage EXPORT_SYMBOL_GPL
475+ 0xe1cc2a05 usb_stor_suspend drivers/usb/storage/usb-storage EXPORT_SYMBOL_GPL USB_STORAGE
476476
477477 The fields are separated by tabs and values may be empty (e.g.
478478 if no namespace is defined for an exported symbol).
Makefile+1−1
@@ -1804,7 +1804,7 @@ existing-targets := $(wildcard $(sort $(targets))) · 1803 unmodified lines
18041804
18051805 -include $(foreach f,$(existing-targets),$(dir $(f)).$(notdir $(f)).cmd)
18061806
1807−endif # config-targets
1807+endif # config-build
18081808 endif # mixed-build
18091809 endif # need-sub-make
18101810
init/Kconfig+1−2
@@ -767,8 +767,7 @@ config ARCH_WANT_BATCHED_UNMAP_TLB_FLUSH · 766 unmodified lines
767767 bool
768768
769769 config CC_HAS_INT128
770− def_bool y
771− depends on !$(cc-option,-D__SIZEOF_INT128__=0)
770+ def_bool !$(cc-option,$(m64-flag) -D__SIZEOF_INT128__=0) && 64BIT
772771
773772 #
774773 # For architectures that know their GCC __int128 support is sound
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
4444
4545 # gcc version including patch level
4646 gcc-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.
51+cc-option-bit = $(if-success,$(CC) -Werror $(1) -E -x c /dev/null -o /dev/null,$(1))
52+m32-flag := $(cc-option-bit,-m32)
53+m64-flag := $(cc-option-bit,-m64)
scripts/Makefile.extrawarn+1−0
@@ -48,6 +48,7 @@ KBUILD_CFLAGS += -Wno-initializer-overrides · 47 unmodified lines
4848 KBUILD_CFLAGS += -Wno-format
4949 KBUILD_CFLAGS += -Wno-sign-compare
5050 KBUILD_CFLAGS += -Wno-format-zero-length
51+KBUILD_CFLAGS += $(call cc-disable-warning, pointer-to-enum-cast)
5152 endif
5253
5354 endif
scripts/export_report.pl+1−1
@@ -94,7 +94,7 @@ if (defined $opt{'o'}) { · 93 unmodified lines
9494 #
9595 while ( <$module_symvers> ) {
9696 chomp;
97− my (undef, $symbol, $namespace, $module, $gpl) = split('\t');
97+ my (undef, $symbol, $module, $gpl, $namespace) = split('\t');
9898 $SYMBOL { $symbol } = [ $module , "0" , $symbol, $gpl];
9999 }
100100 close($module_symvers);
scripts/kallsyms.c+4−4
@@ -195,13 +195,13 @@ static struct sym_entry *read_symbol(FILE *in) · 194 unmodified lines
195195 return NULL;
196196 }
197197
198− if (is_ignored_symbol(name, type))
199− return NULL;
200−
201− /* Ignore most absolute/undefined (?) symbols. */
202198 if (strcmp(name, "_text") == 0)
203199 _text = addr;
204200
201+ /* Ignore most absolute/undefined (?) symbols. */
202+ if (is_ignored_symbol(name, type))
203+ return NULL;
204+
205205 check_symbol_range(name, addr, text_ranges, ARRAY_SIZE(text_ranges));
206206 check_symbol_range(name, addr, &percpu_range, 1);
207207
scripts/mod/modpost.c+14−13
@@ -308,7 +308,8 @@ static const char *sec_name(struct elf_info *elf, int secindex) · 307 unmodified lines
308308
309309 static void *sym_get_data(const struct elf_info *info, const Elf_Sym *sym)
310310 {
311− Elf_Shdr *sechdr = &info->sechdrs[sym->st_shndx];
311+ unsigned int secindex = get_secindex(info, sym);
312+ Elf_Shdr *sechdr = &info->sechdrs[secindex];
312313 unsigned long offset;
313314
314315 offset = sym->st_value;
@@ -2427,7 +2428,7 @@ static void write_if_changed(struct buffer *b, const char *fname) · 2112 unmodified lines
24272428 }
24282429
24292430 /* 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
24312432 **/
24322433 static void read_dump(const char *fname, unsigned int kernel)
24332434 {
@@ -2440,7 +2441,7 @@ static void read_dump(const char *fname, unsigned int kernel) · 6 unmodified lines
24402441 return;
24412442
24422443 while ((line = get_next_line(&pos, file, size))) {
2443− char *symname, *namespace, *modname, *d, *export, *end;
2444+ char *symname, *namespace, *modname, *d, *export;
24442445 unsigned int crc;
24452446 struct module *mod;
24462447 struct symbol *s;
@@ -2448,16 +2449,16 @@ static void read_dump(const char *fname, unsigned int kernel) · 1 unmodified line
24482449 if (!(symname = strchr(line, '\t')))
24492450 goto fail;
24502451 *symname++ = '\0';
2451− if (!(namespace = strchr(symname, '\t')))
2452− goto fail;
2453− *namespace++ = '\0';
2454− if (!(modname = strchr(namespace, '\t')))
2452+ if (!(modname = strchr(symname, '\t')))
24552453 goto fail;
24562454 *modname++ = '\0';
2457− if ((export = strchr(modname, '\t')) != NULL)
2458− *export++ = '\0';
2459− if (export && ((end = strchr(export, '\t')) != NULL))
2460− *end = '\0';
2455+ if (!(export = strchr(modname, '\t')))
2456+ goto fail;
2457+ *export++ = '\0';
2458+ if (!(namespace = strchr(export, '\t')))
2459+ goto fail;
2460+ *namespace++ = '\0';
2461+
24612462 crc = strtoul(line, &d, 16);
24622463 if (*symname == '\0' || *modname == '\0' || *d != '\0')
24632464 goto fail;
@@ -2508,9 +2509,9 @@ static void write_dump(const char *fname) · 44 unmodified lines
25082509 namespace = symbol->namespace;
25092510 buf_printf(&buf, "0x%08x\t%s\t%s\t%s\t%s\n",
25102511 symbol->crc, symbol->name,
2511− namespace ? namespace : "",
25122512 symbol->module->name,
2513− export_str(symbol->export));
2513+ export_str(symbol->export),
2514+ namespace ? namespace : "");
25142515 }
25152516 symbol = symbol->next;
25162517 }
usr/Kconfig+11−11
@@ -124,17 +124,6 @@ choice · 123 unmodified lines
124124
125125 If in doubt, select 'None'
126126
127−config INITRAMFS_COMPRESSION_NONE
128− bool "None"
129− help
130− Do not compress the built-in initramfs at all. This may sound wasteful
131− in space, but, you should be aware that the built-in initramfs will be
132− compressed at a later stage anyways along with the rest of the kernel,
133− on those architectures that support this. However, not compressing the
134− initramfs may lead to slightly higher memory consumption during a
135− short time at boot, while both the cpio image and the unpacked
136− filesystem image will be present in memory simultaneously
137−
138127 config INITRAMFS_COMPRESSION_GZIP
139128 bool "Gzip"
140129 depends on RD_GZIP
@@ -207,4 +196,15 @@ config INITRAMFS_COMPRESSION_LZ4 · 66 unmodified lines
207196 If you choose this, keep in mind that most distros don't provide lz4
208197 by default which could cause a build failure.
209198
199+config INITRAMFS_COMPRESSION_NONE
200+ bool "None"
201+ help
202+ Do not compress the built-in initramfs at all. This may sound wasteful
203+ in space, but, you should be aware that the built-in initramfs will be
204+ compressed at a later stage anyways along with the rest of the kernel,
205+ on those architectures that support this. However, not compressing the
206+ initramfs may lead to slightly higher memory consumption during a
207+ short time at boot, while both the cpio image and the unpacked
208+ filesystem image will be present in memory simultaneously
209+
210210 endchoice