Pull Kbuild updates from Masahiro Yamada: - do not generate unneeded top-level built-in.a - let git ignore O= directory entirely - optimize scripts/kallsyms slightly - exclude DWARF info from *.s regardless of config options - fix GCC toolchain search path for Clang to prepare ld.lld support - do not generate modules.order when CONFIG_MODULES is disabled - simplify single target rules and remove VPATH for external module build - allow to add optional flags to dpkg-buildpackage when building deb-pkg - move some compiler option tests from Makefile to Kconfig - various Makefile cleanups * tag 'kbuild-v5.1' of git://git.kernel.org/pub/scm/linux/kernel/git/masahiroy/linux-kbuild: (40 commits) kbuild: remove scripts/basic/% build target kbuild: use -Werror=implicit-... instead of -Werror-implicit-... kbuild: clean up scripts/gcc-version.sh kbuild: remove cc-version macro kbuild: update comment block of scripts/clang-version.sh kbuild: remove commented-out INITRD_COMPRESS kbuild: move -gsplit-dwarf, -gdwarf-4 option tests to Kconfig kbuild: [bin]deb-pkg: add DPKG_FLAGS variable kbuild: move ".config not found!" message from Kconfig to Makefile kbuild: invoke syncconfig if include/config/auto.conf.cmd is missing kbuild: simplify single target rules kbuild: remove empty rules for makefiles kbuild: make -r/-R effective in top Makefile for old Make versions kbuild: move tools_silent to a more relevant place kbuild: compute false-positive -Wmaybe-uninitialized cases in Kconfig kbuild: refactor cc-cross-prefix implementation kbuild: hardcode genksyms path and remove GENKSYMS variable scripts/gdb: refactor rules for symlink creation kbuild: create symlink to vmlinux-gdb.py in scripts_gdb target scripts/gdb: do not descend into scripts/gdb from scripts ...
Showing the changes to init (1 of 33 files). Show all
Unified · Split
| @@ -13,7 +13,7 @@ config CC_IS_GCC · 12 unmodified lines | |||
| 13 | 13 | ||
| 14 | config GCC_VERSION | 14 | config GCC_VERSION |
| 15 | int | 15 | int |
| 16 | default $(shell,$(srctree)/scripts/gcc-version.sh -p $(CC) | sed 's/^0*//') if CC_IS_GCC | 16 | default $(shell,$(srctree)/scripts/gcc-version.sh $(CC)) if CC_IS_GCC |
| 17 | default 0 | 17 | default 0 |
| 18 | 18 | ||
| 19 | config CC_IS_CLANG | 19 | config CC_IS_CLANG |
| @@ -26,6 +26,22 @@ config CLANG_VERSION · 6 unmodified lines | |||
| 26 | config CC_HAS_ASM_GOTO | 26 | config CC_HAS_ASM_GOTO |
| 27 | def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC)) | 27 | def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC)) |
| 28 | 28 | ||
| 29 | config CC_HAS_WARN_MAYBE_UNINITIALIZED | ||
| 30 | def_bool $(cc-option,-Wmaybe-uninitialized) | ||
| 31 | help | ||
| 32 | GCC >= 4.7 supports this option. | ||
| 33 | |||
| 34 | config CC_DISABLE_WARN_MAYBE_UNINITIALIZED | ||
| 35 | bool | ||
| 36 | depends on CC_HAS_WARN_MAYBE_UNINITIALIZED | ||
| 37 | default CC_IS_GCC && GCC_VERSION < 40900 # unreliable for GCC < 4.9 | ||
| 38 | help | ||
| 39 | GCC's -Wmaybe-uninitialized is not reliable by definition. | ||
| 40 | Lots of false positive warnings are produced in some cases. | ||
| 41 | |||
| 42 | If this option is enabled, -Wno-maybe-uninitialzed is passed | ||
| 43 | to the compiler to suppress maybe-uninitialized warnings. | ||
| 44 | |||
| 29 | config CONSTRUCTORS | 45 | config CONSTRUCTORS |
| 30 | bool | 46 | bool |
| 31 | depends on !UML | 47 | depends on !UML |
| @@ -1114,6 +1130,7 @@ config CC_OPTIMIZE_FOR_PERFORMANCE · 1082 unmodified lines | |||
| 1114 | 1130 | ||
| 1115 | config CC_OPTIMIZE_FOR_SIZE | 1131 | config CC_OPTIMIZE_FOR_SIZE |
| 1116 | bool "Optimize for size" | 1132 | bool "Optimize for size" |
| 1133 | imply CC_DISABLE_WARN_MAYBE_UNINITIALIZED # avoid false positives | ||
| 1117 | help | 1134 | help |
| 1118 | Enabling this option will pass "-Os" instead of "-O2" to | 1135 | Enabling this option will pass "-Os" instead of "-O2" to |
| 1119 | your compiler resulting in a smaller kernel. | 1136 | your compiler resulting in a smaller kernel. |