mirror of
				https://source.denx.de/u-boot/u-boot.git
				synced 2025-10-31 08:21:36 +01:00 
			
		
		
		
	Update the files under scripts/kconfig/ to match Linux 4.1.
Some Kconfig sources have diverged from those in the kernel,
so commit-base syncing was done not to lose U-Boot specific updates.
The commits cherry-picked from Linux are:
[1] commit be8af2d54a66911693eddc556e4f7a866670082b
    Author: Bjørn Forsman <bjorn.forsman@gmail.com>
    kconfig/lxdialog: get ncurses CFLAGS with pkg-config
[2] commit 3943f42c11896ce82ad3da132c8a5630313bdd0e
    Author: Andrey Utkin <andrey.krieger.utkin@gmail.com>
    Replace mentions of "list_struct" to "list_head"
[3] commit e4e458b45c5861808674eebfea94cee2258bb2ea
    Author: Arjun Sreedharan <arjun024@gmail.com>
    calloc/xcalloc: Fix argument order
[4] commit 09950bc256e3628d275f90e016e6f5a039fbdcab
    Author: Olof Johansson <olof@lixom.net>
    merge_config.sh: Display usage if given too few arguments
[5] commit b6a2ab2cd4739a9573ed41677e53171987b8da34
    Author: Colin Ian King <colin.king@canonical.com>
    kconfig: use va_end to match corresponding va_start
[6] commit 70529b1a1784503169416df19ce3d68746401340
    Author: Michal Marek <mmarek@suse.cz>
    kconfig: Get rid of the P() macro in headers
[7] commit 463157444e377bf9b279101b1f16a94c4648c03a
    Author: Michal Marek <mmarek@suse.cz>
    kconfig: Remove dead code
[8] commit ad8d40cda3ad22ad9e8863d55a5c88f85c0173f0
    Author: Michal Marek <mmarek@suse.cz>
    kconfig: Remove unnecessary prototypes from headers
[9] commit de4619937229378e81f95e99c9866acc8e207d34
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    kbuild: mergeconfig: fix "jobserver unavailable" warning
[10] commit b9fe99c5b994c6ddc57780993966b18899526c0b
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    kbuild: mergeconfig: move an error check to merge_config.sh
[11] commit 371cfd4ff0611d8bc5d18bbb9cc6a2bc3d56cd3d
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    kbuild: mergeconfig: remove redundant $(objtree)
[12] commit 3a975b8cfcbe026b535f83bde9a3c009bae214f9
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    merge_config.sh: improve indentation
[13] commit bc8f8f5fc47cd02c2c5f3580dac2fe6695af1edd
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    merge_config.sh: rename MAKE to RUNMAKE
[14] commit 63a91033d52e64a22e571fe84924c0b7f21c280d
    Author: Masahiro Yamada <yamada.masahiro@socionext.com>
    kbuild: add generic mergeconfig target, %.config
[15] commit 1cba0c305758c3c1786ecaceb03e142c95a4edc9
    Author: Michal Marek <mmarek@suse.cz>
    kconfig: Simplify Makefile
[16] commit 0a1f00a1c86421cc07cec87011c7cf4df68ee54b
    Author: Michal Marek <mmarek@suse.cz>
    kconfig: Do not print status messages in make -s mode
Signed-off-by: Masahiro Yamada <yamada.masahiro@socionext.com>
Signed-off-by: Bjørn Forsman <bjorn.forsman@gmail.com>
Signed-off-by: Andrey Utkin <andrey.krieger.utkin@gmail.com>
Signed-off-by: Jiri Kosina <jkosina@suse.cz>
Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: Olof Johansson <olof@lixom.net>
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: Michal Marek <mmarek@suse.cz>
		
	
			
		
			
				
	
	
		
			159 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			159 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/bin/sh
 | |
| #  merge_config.sh - Takes a list of config fragment values, and merges
 | |
| #  them one by one. Provides warnings on overridden values, and specified
 | |
| #  values that did not make it to the resulting .config file (due to missed
 | |
| #  dependencies or config symbol removal).
 | |
| #
 | |
| #  Portions reused from kconf_check and generate_cfg:
 | |
| #  http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/kconf_check
 | |
| #  http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-tools/tree/tools/generate_cfg
 | |
| #
 | |
| #  Copyright (c) 2009-2010 Wind River Systems, Inc.
 | |
| #  Copyright 2011 Linaro
 | |
| #
 | |
| #  This program is free software; you can redistribute it and/or modify
 | |
| #  it under the terms of the GNU General Public License version 2 as
 | |
| #  published by the Free Software Foundation.
 | |
| #
 | |
| #  This program is distributed in the hope that it will be useful,
 | |
| #  but WITHOUT ANY WARRANTY; without even the implied warranty of
 | |
| #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | |
| #  See the GNU General Public License for more details.
 | |
| 
 | |
| clean_up() {
 | |
| 	rm -f $TMP_FILE
 | |
| 	exit
 | |
| }
 | |
| trap clean_up HUP INT TERM
 | |
| 
 | |
| usage() {
 | |
| 	echo "Usage: $0 [OPTIONS] [CONFIG [...]]"
 | |
| 	echo "  -h    display this help text"
 | |
| 	echo "  -m    only merge the fragments, do not execute the make command"
 | |
| 	echo "  -n    use allnoconfig instead of alldefconfig"
 | |
| 	echo "  -r    list redundant entries when merging fragments"
 | |
| 	echo "  -O    dir to put generated output files"
 | |
| }
 | |
| 
 | |
| RUNMAKE=true
 | |
| ALLTARGET=alldefconfig
 | |
| WARNREDUN=false
 | |
| OUTPUT=.
 | |
| 
 | |
| while true; do
 | |
| 	case $1 in
 | |
| 	"-n")
 | |
| 		ALLTARGET=allnoconfig
 | |
| 		shift
 | |
| 		continue
 | |
| 		;;
 | |
| 	"-m")
 | |
| 		RUNMAKE=false
 | |
| 		shift
 | |
| 		continue
 | |
| 		;;
 | |
| 	"-h")
 | |
| 		usage
 | |
| 		exit
 | |
| 		;;
 | |
| 	"-r")
 | |
| 		WARNREDUN=true
 | |
| 		shift
 | |
| 		continue
 | |
| 		;;
 | |
| 	"-O")
 | |
| 		if [ -d $2 ];then
 | |
| 			OUTPUT=$(echo $2 | sed 's/\/*$//')
 | |
| 		else
 | |
| 			echo "output directory $2 does not exist" 1>&2
 | |
| 			exit 1
 | |
| 		fi
 | |
| 		shift 2
 | |
| 		continue
 | |
| 		;;
 | |
| 	*)
 | |
| 		break
 | |
| 		;;
 | |
| 	esac
 | |
| done
 | |
| 
 | |
| if [ "$#" -lt 2 ] ; then
 | |
| 	usage
 | |
| 	exit
 | |
| fi
 | |
| 
 | |
| INITFILE=$1
 | |
| shift;
 | |
| 
 | |
| if [ ! -r "$INITFILE" ]; then
 | |
| 	echo "The base file '$INITFILE' does not exist.  Exit." >&2
 | |
| 	exit 1
 | |
| fi
 | |
| 
 | |
| MERGE_LIST=$*
 | |
| SED_CONFIG_EXP="s/^\(# \)\{0,1\}\(CONFIG_[a-zA-Z0-9_]*\)[= ].*/\2/p"
 | |
| TMP_FILE=$(mktemp ./.tmp.config.XXXXXXXXXX)
 | |
| 
 | |
| echo "Using $INITFILE as base"
 | |
| cat $INITFILE > $TMP_FILE
 | |
| 
 | |
| # Merge files, printing warnings on overridden values
 | |
| for MERGE_FILE in $MERGE_LIST ; do
 | |
| 	echo "Merging $MERGE_FILE"
 | |
| 	CFG_LIST=$(sed -n "$SED_CONFIG_EXP" $MERGE_FILE)
 | |
| 
 | |
| 	for CFG in $CFG_LIST ; do
 | |
| 		grep -q -w $CFG $TMP_FILE || continue
 | |
| 		PREV_VAL=$(grep -w $CFG $TMP_FILE)
 | |
| 		NEW_VAL=$(grep -w $CFG $MERGE_FILE)
 | |
| 		if [ "x$PREV_VAL" != "x$NEW_VAL" ] ; then
 | |
| 			echo Value of $CFG is redefined by fragment $MERGE_FILE:
 | |
| 			echo Previous  value: $PREV_VAL
 | |
| 			echo New value:       $NEW_VAL
 | |
| 			echo
 | |
| 		elif [ "$WARNREDUN" = "true" ]; then
 | |
| 			echo Value of $CFG is redundant by fragment $MERGE_FILE:
 | |
| 		fi
 | |
| 		sed -i "/$CFG[ =]/d" $TMP_FILE
 | |
| 	done
 | |
| 	cat $MERGE_FILE >> $TMP_FILE
 | |
| done
 | |
| 
 | |
| if [ "$RUNMAKE" = "false" ]; then
 | |
| 	cp $TMP_FILE $OUTPUT/.config
 | |
| 	echo "#"
 | |
| 	echo "# merged configuration written to $OUTPUT/.config (needs make)"
 | |
| 	echo "#"
 | |
| 	clean_up
 | |
| 	exit
 | |
| fi
 | |
| 
 | |
| # If we have an output dir, setup the O= argument, otherwise leave
 | |
| # it blank, since O=. will create an unnecessary ./source softlink
 | |
| OUTPUT_ARG=""
 | |
| if [ "$OUTPUT" != "." ] ; then
 | |
| 	OUTPUT_ARG="O=$OUTPUT"
 | |
| fi
 | |
| 
 | |
| 
 | |
| # Use the merged file as the starting point for:
 | |
| # alldefconfig: Fills in any missing symbols with Kconfig default
 | |
| # allnoconfig: Fills in any missing symbols with # CONFIG_* is not set
 | |
| make KCONFIG_ALLCONFIG=$TMP_FILE $OUTPUT_ARG $ALLTARGET
 | |
| 
 | |
| 
 | |
| # Check all specified config values took (might have missed-dependency issues)
 | |
| for CFG in $(sed -n "$SED_CONFIG_EXP" $TMP_FILE); do
 | |
| 
 | |
| 	REQUESTED_VAL=$(grep -w -e "$CFG" $TMP_FILE)
 | |
| 	ACTUAL_VAL=$(grep -w -e "$CFG" $OUTPUT/.config)
 | |
| 	if [ "x$REQUESTED_VAL" != "x$ACTUAL_VAL" ] ; then
 | |
| 		echo "Value requested for $CFG not in final .config"
 | |
| 		echo "Requested value:  $REQUESTED_VAL"
 | |
| 		echo "Actual value:     $ACTUAL_VAL"
 | |
| 		echo ""
 | |
| 	fi
 | |
| done
 | |
| 
 | |
| clean_up
 |