Only minor changes in kconfig this time that shouldn't affect us. TEST=`util/abuild/abuild -C` output (build.h and build.conf) remains the same Change-Id: I46f43182ce9ec1b6a5923cb77dcd6e335e44c87a Signed-off-by: Patrick Georgi <patrick@coreboot.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/66047 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Elyes Haouas <ehaouas@noos.fr>
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| commit ab0cc6067d5a00182e89fbec82b942eb3d803204
 | |
| Author: Patrick Georgi <pgeorgi@google.com>
 | |
| Date:   Fri Nov 22 22:08:15 2019 +0100
 | |
| 
 | |
|     util/kconfig: Allow emitting false booleans into kconfig output
 | |
| 
 | |
|     This is controlled by an environment variable so the same tool is
 | |
|     useful in different contexts.
 | |
| 
 | |
|     Change-Id: I9e62b05e45709f1539e455e2eed37308609be15e
 | |
|     Signed-off-by: Patrick Georgi <pgeorgi@google.com>
 | |
| 
 | |
| Index: kconfig/symbol.c
 | |
| ===================================================================
 | |
| --- kconfig.orig/symbol.c
 | |
| +++ kconfig/symbol.c
 | |
| @@ -757,7 +757,7 @@ const char *sym_get_string_default(struc
 | |
|  		}
 | |
|  	case S_INT:
 | |
|  	case S_HEX:
 | |
| -		return str;
 | |
| +		return "0";
 | |
|  	case S_STRING:
 | |
|  		return str;
 | |
|  	case S_UNKNOWN:
 | |
| Index: kconfig/confdata.c
 | |
| ===================================================================
 | |
| --- kconfig.orig/confdata.c
 | |
| +++ kconfig/confdata.c
 | |
| @@ -715,7 +715,12 @@ static void print_symbol_for_dotconfig(F
 | |
|  
 | |
|  static void print_symbol_for_autoconf(FILE *fp, struct symbol *sym)
 | |
|  {
 | |
| -	__print_symbol(fp, sym, OUTPUT_N_NONE, false);
 | |
| +	int print_negatives = getenv("KCONFIG_NEGATIVES") != NULL;
 | |
| +	enum output_n out = OUTPUT_N_NONE;
 | |
| +	if (print_negatives) {
 | |
| +		out = OUTPUT_N;
 | |
| +	}
 | |
| +	__print_symbol(fp, sym, out, false);
 | |
|  }
 | |
|  
 | |
|  void print_symbol_for_listconfig(struct symbol *sym)
 | |
| @@ -740,6 +745,10 @@ static void print_symbol_for_c(FILE *fp,
 | |
|  	case S_TRISTATE:
 | |
|  		switch (*val) {
 | |
|  		case 'n':
 | |
| +			if (getenv("KCONFIG_NEGATIVES") != NULL) {
 | |
| +				val = "0";
 | |
| +				break;
 | |
| +			}
 | |
|  			return;
 | |
|  		case 'm':
 | |
|  			sym_suffix = "_MODULE";
 | |
| @@ -751,6 +760,12 @@ static void print_symbol_for_c(FILE *fp,
 | |
|  	case S_HEX:
 | |
|  		if (val[0] != '0' || (val[1] != 'x' && val[1] != 'X'))
 | |
|  			val_prefix = "0x";
 | |
| +		/* fall through */
 | |
| +	case S_INT:
 | |
| +		if (val[0] == '\0') {
 | |
| +			val = "0";
 | |
| +			val_prefix = "";
 | |
| +		}
 | |
|  		break;
 | |
|  	case S_STRING:
 | |
|  		escaped = escape_string_value(val);
 | |
| @@ -1108,8 +1123,9 @@ static int __conf_write_autoconf(const c
 | |
|  
 | |
|  	conf_write_heading(file, comment_style);
 | |
|  
 | |
| +	int print_negatives = getenv("KCONFIG_NEGATIVES") != NULL;
 | |
|  	for_all_symbols(i, sym)
 | |
| -		if ((sym->flags & SYMBOL_WRITE) && sym->name)
 | |
| +		if (((sym->flags & SYMBOL_WRITE) || (print_negatives && sym->type != S_STRING)) && sym->name)
 | |
|  			print_symbol(file, sym);
 | |
|  
 | |
|  	fflush(file);
 |