Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5b419784 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull kconfig updates from Michal Marek:
 "This is the kconfig part of kbuild for v3.12-rc1:
   - post-3.11 search code fixes and micro-optimizations
   - CONFIG_MODULES is no longer a special case; this is needed to
     eventually fix the bug that using KCONFIG_ALLCONFIG breaks
     allmodconfig
   - long long is used to store hex and int values
   - make silentoldconfig no longer warns when a symbol changes from
     tristate to bool (it's a job for make oldconfig)
   - scripts/diffconfig updated to work with newer Pythons
   - scripts/config does not rely on GNU sed extensions"

* 'kconfig' of git://git.kernel.org/pub/scm/linux/kernel/git/mmarek/kbuild:
  kconfig: do not allow more than one symbol to have 'option modules'
  kconfig: regenerate bison parser
  kconfig: do not special-case 'MODULES' symbol
  diffconfig: Update script to support python versions 2.5 through 3.3
  diffconfig: Gracefully exit if the default config files are not present
  modules: do not depend on kconfig to set 'modules' option to symbol MODULES
  kconfig: silence warning when parsing auto.conf when a symbol has changed type
  scripts/config: use sed's POSIX interface
  kconfig: switch to "long long" for sanity
  kconfig: simplify symbol-search code
  kconfig: don't allocate n+1 elements in temporary array
  kconfig: minor style fixes in symbol-search code
  kconfig/[mn]conf: shorten title in search-box
  kconfig: avoid multiple calls to strlen
  Documentation/kconfig: more concise and straightforward search explanation
parents a22a0fdb e0627813
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -147,6 +147,7 @@ applicable everywhere (see syntax).
  - "modules"
    This declares the symbol to be used as the MODULES symbol, which
    enables the third modular state for all config symbols.
    At most one symbol may have the "modules" option set.

  - "env"=<value>
    This imports the environment variable into Kconfig. It behaves like
+3 −5
Original line number Diff line number Diff line
@@ -175,11 +175,9 @@ Searching in menuconfig:
		/^hotplug

	When searching, symbols are sorted thus:
	  - exact match first: an exact match is when the search matches
	    the complete symbol name;
	  - alphabetical order: when two symbols do not match exactly,
	    they are sorted in alphabetical order (in the user's current
	    locale).
	  - first, exact matches, sorted alphabetically (an exact match
	    is when the search matches the complete symbol name);
	  - then, other matches, sorted alphabetically.
	For example: ^ATH.K matches:
	    ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG
	    [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]
+1 −0
Original line number Diff line number Diff line
@@ -1670,6 +1670,7 @@ config BASE_SMALL

menuconfig MODULES
	bool "Enable loadable module support"
	option modules
	help
	  Kernel modules are small pieces of compiled code which can
	  be inserted in the running kernel, rather than being
+41 −3
Original line number Diff line number Diff line
@@ -62,15 +62,52 @@ checkarg() {
	fi
}

txt_append() {
	local anchor="$1"
	local insert="$2"
	local infile="$3"
	local tmpfile="$infile.swp"

	# sed append cmd: 'a\' + newline + text + newline
	cmd="$(printf "a\\%b$insert" "\n")"

	sed -e "/$anchor/$cmd" "$infile" >"$tmpfile"
	# replace original file with the edited one
	mv "$tmpfile" "$infile"
}

txt_subst() {
	local before="$1"
	local after="$2"
	local infile="$3"
	local tmpfile="$infile.swp"

	sed -e "s/$before/$after/" "$infile" >"$tmpfile"
	# replace original file with the edited one
	mv "$tmpfile" "$infile"
}

txt_delete() {
	local text="$1"
	local infile="$2"
	local tmpfile="$infile.swp"

	sed -e "/$text/d" "$infile" >"$tmpfile"
	# replace original file with the edited one
	mv "$tmpfile" "$infile"
}

set_var() {
	local name=$1 new=$2 before=$3

	name_re="^($name=|# $name is not set)"
	before_re="^($before=|# $before is not set)"
	if test -n "$before" && grep -Eq "$before_re" "$FN"; then
		sed -ri "/$before_re/a $new" "$FN"
		txt_append "^$before=" "$new" "$FN"
		txt_append "^# $before is not set" "$new" "$FN"
	elif grep -Eq "$name_re" "$FN"; then
		sed -ri "s:$name_re.*:$new:" "$FN"
		txt_subst "^$name=.*" "$new" "$FN"
		txt_subst "^# $name is not set" "$new" "$FN"
	else
		echo "$new" >>"$FN"
	fi
@@ -79,7 +116,8 @@ set_var() {
undef_var() {
	local name=$1

	sed -ri "/^($name=|# $name is not set)/d" "$FN"
	txt_delete "^$name=" "$FN"
	txt_delete "^# $name is not set" "$FN"
}

if [ "$1" = "--file" ]; then
+18 −15
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@
import sys, os

def usage():
    print """Usage: diffconfig [-h] [-m] [<config1> <config2>]
    print("""Usage: diffconfig [-h] [-m] [<config1> <config2>]

Diffconfig is a simple utility for comparing two .config files.
Using standard diff to compare .config files often includes extraneous and
@@ -33,7 +33,7 @@ Example usage:
 EXT2_FS  y -> n
 LOG_BUF_SHIFT  14 -> 16
 PRINTK_TIME  n -> y
"""
""")
    sys.exit(0)

# returns a dictionary of name/value pairs for config items in the file
@@ -54,16 +54,16 @@ def print_config(op, config, value, new_value):
    if merge_style:
        if new_value:
            if new_value=="n":
                print "# CONFIG_%s is not set" % config
                print("# CONFIG_%s is not set" % config)
            else:
                print "CONFIG_%s=%s" % (config, new_value)
                print("CONFIG_%s=%s" % (config, new_value))
    else:
        if op=="-":
            print "-%s %s" % (config, value)
            print("-%s %s" % (config, value))
        elif op=="+":
            print "+%s %s" % (config, new_value)
            print("+%s %s" % (config, new_value))
        else:
            print " %s %s -> %s" % (config, value, new_value)
            print(" %s %s -> %s" % (config, value, new_value))

def main():
    global merge_style
@@ -79,23 +79,27 @@ def main():

    argc = len(sys.argv)
    if not (argc==1 or argc == 3):
        print "Error: incorrect number of arguments or unrecognized option"
        print("Error: incorrect number of arguments or unrecognized option")
        usage()

    if argc == 1:
        # if no filenames given, assume .config and .config.old
        build_dir=""
        if os.environ.has_key("KBUILD_OUTPUT"):
        if "KBUILD_OUTPUT" in os.environ:
            build_dir = os.environ["KBUILD_OUTPUT"]+"/"

        configa_filename = build_dir + ".config.old"
        configb_filename = build_dir + ".config"
    else:
        configa_filename = sys.argv[1]
        configb_filename = sys.argv[2]

    a = readconfig(file(configa_filename))
    b = readconfig(file(configb_filename))
    try:
        a = readconfig(open(configa_filename))
        b = readconfig(open(configb_filename))
    except (IOError):
        e = sys.exc_info()[1]
        print("I/O error[%s]: %s\n" % (e.args[0],e.args[1]))
        usage()

    # print items in a but not b (accumulate, sort and print)
    old = []
@@ -121,8 +125,7 @@ def main():

    # now print items in b but not in a
    # (items from b that were in a were removed above)
    new = b.keys()
    new.sort()
    new = sorted(b.keys())
    for config in new:
        print_config("+", config, None, b[config])

Loading