util/kconfig: Uprev to Linux 6.6's kconfig
Upstream reimplemented KCONFIG_STRICT, just calling it KCONFIG_WERROR. Therefore, adapt our build system and documentation. Upstream is less strict at this time, but there's a proposed patch that got imported. TEST=`util/abuild/abuild -C` output (config.h and config.build) remains the same. Also, the failure type fixed in https://review.coreboot.org/c/coreboot/+/11272 can be detected, which I tested by manually breaking our Kconfig in a similar way. Change-Id: I322fb08a2f7308b93cff71a5dd4136f1a998773b Signed-off-by: Patrick Georgi <patrick@coreboot.org> Reviewed-on: https://review.coreboot.org/c/coreboot/+/79259 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Martin L Roth <gaumless@gmail.com> Reviewed-by: Felix Singer <service+coreboot-gerrit@felixsinger.de>
This commit is contained in:
		| @@ -10,8 +10,8 @@ | ||||
|  | ||||
| static int hscroll; | ||||
| static int begin_reached, end_reached, page_length; | ||||
| static char *buf; | ||||
| static char *page; | ||||
| static const char *buf, *page; | ||||
| static size_t start, end; | ||||
|  | ||||
| /* | ||||
|  * Go back 'n' lines in text. Called by dialog_textbox(). | ||||
| @@ -98,21 +98,10 @@ static void print_line(WINDOW *win, int row, int width) | ||||
| /* | ||||
|  * Print a new page of text. | ||||
|  */ | ||||
| static void print_page(WINDOW *win, int height, int width, update_text_fn | ||||
| 		       update_text, void *data) | ||||
| static void print_page(WINDOW *win, int height, int width) | ||||
| { | ||||
| 	int i, passed_end = 0; | ||||
|  | ||||
| 	if (update_text) { | ||||
| 		char *end; | ||||
|  | ||||
| 		for (i = 0; i < height; i++) | ||||
| 			get_line(); | ||||
| 		end = page; | ||||
| 		back_lines(height); | ||||
| 		update_text(buf, page - buf, end - buf, data); | ||||
| 	} | ||||
|  | ||||
| 	page_length = 0; | ||||
| 	for (i = 0; i < height; i++) { | ||||
| 		print_line(win, i, width); | ||||
| @@ -142,24 +131,26 @@ static void print_position(WINDOW *win) | ||||
|  * refresh window content | ||||
|  */ | ||||
| static void refresh_text_box(WINDOW *dialog, WINDOW *box, int boxh, int boxw, | ||||
| 			     int cur_y, int cur_x, update_text_fn update_text, | ||||
| 			     void *data) | ||||
| 			     int cur_y, int cur_x) | ||||
| { | ||||
| 	print_page(box, boxh, boxw, update_text, data); | ||||
| 	start = page - buf; | ||||
|  | ||||
| 	print_page(box, boxh, boxw); | ||||
| 	print_position(dialog); | ||||
| 	wmove(dialog, cur_y, cur_x);	/* Restore cursor position */ | ||||
| 	wrefresh(dialog); | ||||
|  | ||||
| 	end = page - buf; | ||||
| } | ||||
|  | ||||
| /* | ||||
|  * Display text from a file in a dialog box. | ||||
|  * | ||||
|  * keys is a null-terminated array | ||||
|  * update_text() may not add or remove any '\n' or '\0' in tbuf | ||||
|  */ | ||||
| int dialog_textbox(const char *title, char *tbuf, int initial_height, | ||||
| 		   int initial_width, int *keys, int *_vscroll, int *_hscroll, | ||||
| 		   update_text_fn update_text, void *data) | ||||
| int dialog_textbox(const char *title, const char *tbuf, int initial_height, | ||||
| 		   int initial_width, int *_vscroll, int *_hscroll, | ||||
| 		   int (*extra_key_cb)(int, size_t, size_t, void *), void *data) | ||||
| { | ||||
| 	int i, x, y, cur_x, cur_y, key = 0; | ||||
| 	int height, width, boxh, boxw; | ||||
| @@ -239,8 +230,7 @@ do_resize: | ||||
|  | ||||
| 	/* Print first page of text */ | ||||
| 	attr_clear(box, boxh, boxw, dlg.dialog.atr); | ||||
| 	refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x, update_text, | ||||
| 			 data); | ||||
| 	refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
|  | ||||
| 	while (!done) { | ||||
| 		key = wgetch(dialog); | ||||
| @@ -259,8 +249,7 @@ do_resize: | ||||
| 				begin_reached = 1; | ||||
| 				page = buf; | ||||
| 				refresh_text_box(dialog, box, boxh, boxw, | ||||
| 						 cur_y, cur_x, update_text, | ||||
| 						 data); | ||||
| 						 cur_y, cur_x); | ||||
| 			} | ||||
| 			break; | ||||
| 		case 'G':	/* Last page */ | ||||
| @@ -270,8 +259,7 @@ do_resize: | ||||
| 			/* point to last char in buf */ | ||||
| 			page = buf + strlen(buf); | ||||
| 			back_lines(boxh); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case 'K':	/* Previous line */ | ||||
| 		case 'k': | ||||
| @@ -280,8 +268,7 @@ do_resize: | ||||
| 				break; | ||||
|  | ||||
| 			back_lines(page_length + 1); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case 'B':	/* Previous page */ | ||||
| 		case 'b': | ||||
| @@ -290,8 +277,7 @@ do_resize: | ||||
| 			if (begin_reached) | ||||
| 				break; | ||||
| 			back_lines(page_length + boxh); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case 'J':	/* Next line */ | ||||
| 		case 'j': | ||||
| @@ -300,8 +286,7 @@ do_resize: | ||||
| 				break; | ||||
|  | ||||
| 			back_lines(page_length - 1); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case KEY_NPAGE:	/* Next page */ | ||||
| 		case ' ': | ||||
| @@ -310,8 +295,7 @@ do_resize: | ||||
| 				break; | ||||
|  | ||||
| 			begin_reached = 0; | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case '0':	/* Beginning of line */ | ||||
| 		case 'H':	/* Scroll left */ | ||||
| @@ -326,8 +310,7 @@ do_resize: | ||||
| 				hscroll--; | ||||
| 			/* Reprint current page to scroll horizontally */ | ||||
| 			back_lines(page_length); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case 'L':	/* Scroll right */ | ||||
| 		case 'l': | ||||
| @@ -337,8 +320,7 @@ do_resize: | ||||
| 			hscroll++; | ||||
| 			/* Reprint current page to scroll horizontally */ | ||||
| 			back_lines(page_length); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, | ||||
| 					 cur_x, update_text, data); | ||||
| 			refresh_text_box(dialog, box, boxh, boxw, cur_y, cur_x); | ||||
| 			break; | ||||
| 		case KEY_ESC: | ||||
| 			if (on_key_esc(dialog) == KEY_ESC) | ||||
| @@ -351,11 +333,9 @@ do_resize: | ||||
| 			on_key_resize(); | ||||
| 			goto do_resize; | ||||
| 		default: | ||||
| 			for (i = 0; keys[i]; i++) { | ||||
| 				if (key == keys[i]) { | ||||
| 					done = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			if (extra_key_cb && extra_key_cb(key, start, end, data)) { | ||||
| 				done = true; | ||||
| 				break; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user