Merge branch 'rwonce/rework' of git://git.kernel.org/pub/scm/linux/kernel/git/will...
[linux-2.6-microblaze.git] / init / Kconfig
index fdb4f52..49eb7a3 100644 (file)
@@ -8,8 +8,25 @@ config DEFCONFIG_LIST
        default "/boot/config-$(shell,uname -r)"
        default "arch/$(SRCARCH)/configs/$(KBUILD_DEFCONFIG)"
 
+config CC_VERSION_TEXT
+       string
+       default "$(CC_VERSION_TEXT)"
+       help
+         This is used in unclear ways:
+
+         - Re-run Kconfig when the compiler is updated
+           The 'default' property references the environment variable,
+           CC_VERSION_TEXT so it is recorded in include/config/auto.conf.cmd.
+           When the compiler is updated, Kconfig will be invoked.
+
+         - Ensure full rebuild when the compier is updated
+           include/linux/kconfig.h contains this option in the comment line so
+           fixdep adds include/config/cc/version/text.h into the auto-generated
+           dependency. When the compiler is updated, syncconfig will touch it
+           and then every file will be rebuilt.
+
 config CC_IS_GCC
-       def_bool $(success,$(CC) --version | head -n 1 | grep -q gcc)
+       def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q gcc)
 
 config GCC_VERSION
        int
@@ -21,7 +38,7 @@ config LD_VERSION
        default $(shell,$(LD) --version | $(srctree)/scripts/ld-version.sh)
 
 config CC_IS_CLANG
-       def_bool $(success,$(CC) --version | head -n 1 | grep -q clang)
+       def_bool $(success,echo "$(CC_VERSION_TEXT)" | grep -q clang)
 
 config LD_IS_LLD
        def_bool $(success,$(LD) -v | head -n 1 | grep -q LLD)
@@ -31,11 +48,22 @@ config CLANG_VERSION
        default $(shell,$(srctree)/scripts/clang-version.sh $(CC))
 
 config CC_CAN_LINK
-       def_bool $(success,$(srctree)/scripts/cc-can-link.sh $(CC))
+       bool
+       default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(m64-flag)) if 64BIT
+       default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) $(m32-flag))
+
+config CC_CAN_LINK_STATIC
+       bool
+       default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) -static $(m64-flag)) if 64BIT
+       default $(success,$(srctree)/scripts/cc-can-link.sh $(CC) -static $(m32-flag))
 
 config CC_HAS_ASM_GOTO
        def_bool $(success,$(srctree)/scripts/gcc-goto.sh $(CC))
 
+config CC_HAS_ASM_GOTO_OUTPUT
+       depends on CC_HAS_ASM_GOTO
+       def_bool $(success,echo 'int foo(int x) { asm goto ("": "=r"(x) ::: bar); return x; bar: return 0; }' | $(CC) -x c - -c -o /dev/null)
+
 config TOOLS_SUPPORT_RELR
        def_bool $(success,env "CC=$(CC)" "LD=$(LD)" "NM=$(NM)" "OBJCOPY=$(OBJCOPY)" $(srctree)/scripts/tools-support-relr.sh)
 
@@ -260,6 +288,16 @@ config KERNEL_UNCOMPRESSED
 
 endchoice
 
+config DEFAULT_INIT
+       string "Default init path"
+       default ""
+       help
+         This option determines the default init for the system if no init=
+         option is passed on the kernel command line. If the requested path is
+         not present, we will still then move on to attempting further
+         locations (e.g. /sbin/init, etc). If this is empty, we will just use
+         the fallback list when init= is not passed.
+
 config DEFAULT_HOSTNAME
        string "Default hostname"
        default "(none)"
@@ -1255,7 +1293,6 @@ config LD_DEAD_CODE_DATA_ELIMINATION
        bool "Dead code and data elimination (EXPERIMENTAL)"
        depends on HAVE_LD_DEAD_CODE_DATA_ELIMINATION
        depends on EXPERT
-       depends on !(FUNCTION_TRACER && CC_IS_GCC && GCC_VERSION < 40800)
        depends on $(cc-option,-ffunction-sections -fdata-sections)
        depends on $(ld-option,--gc-sections)
        help