From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out2.suse.de (smtp-out2.suse.de [195.135.220.29]) by sourceware.org (Postfix) with ESMTPS id 0E0E93858D20 for ; Fri, 4 Feb 2022 12:52:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 0E0E93858D20 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=suse.cz Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.cz Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by smtp-out2.suse.de (Postfix) with ESMTPS id F091E1F38E for ; Fri, 4 Feb 2022 12:52:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1643979177; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=84A6ILHaNQljlEdr4bJc/5G+6qEq9/9cI3icJXYoLyI=; b=zKkz7f6SkcIekhaTCNrxnmLMEgCQ6AKxKqJbVCzwug8QTO3WTzECHSUUfc577CN9Fl+Nf7 lBXzlI3vnNBJYVs5WQkMHXn5YalYTGVdeB65p8FS+4kj6NzCQJ5zsnuaQ2VzUYdXMARL0U a81qx/DJ+RSPP0ym7ORrdk5EY26sGDw= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1643979177; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc: mime-version:mime-version:content-type:content-type; bh=84A6ILHaNQljlEdr4bJc/5G+6qEq9/9cI3icJXYoLyI=; b=Y+sIFbTIizDJvd4En2n/sNEUozdGWJxS6IChznoVm6g3F9clds1K69G+8H4Tym+lG5rrss 2aUH+dPF6IpJkvBw== Received: from imap2.suse-dmz.suse.de (imap2.suse-dmz.suse.de [192.168.254.74]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-521) server-digest SHA512) (No client certificate requested) by imap2.suse-dmz.suse.de (Postfix) with ESMTPS id DFA2813A82 for ; Fri, 4 Feb 2022 12:52:57 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id 1rKiNakh/WHGXwAAMHmgww (envelope-from ) for ; Fri, 04 Feb 2022 12:52:57 +0000 Content-Type: multipart/mixed; boundary="------------kiOjB000P7KESYNKi0mkdP2n" Message-ID: <417eca08-e1ad-538e-c39a-388e20e2fcca@suse.cz> Date: Fri, 4 Feb 2022 13:52:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.5.1 From: =?UTF-8?Q?Martin_Li=c5=a1ka?= Subject: [PATCH] configure: add --disable-fix-includes To: gcc-patches@gcc.gnu.org Content-Language: en-US X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 04 Feb 2022 12:53:05 -0000 This is a multi-part message in MIME format. --------------kiOjB000P7KESYNKi0mkdP2n Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hello. It seems to me that fixincludes is hardy unused feature for nowadays header files and so I'm suggesting a developer option that can skip the fixing. How is the feature used on other targets? Right now, fixinclude takes about 11 seconds on my machine, where it reads (and applies regexes) 130MB of header files. The number of fixed headers is negligible without any significant change. I'm attaching diff that I can see on my developer machine. Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin fixincludes/ChangeLog: * fixinc.in: Add early exit. gcc/ChangeLog: * Makefile.in: Support disable_fix_includes. * configure.ac: Add --disable-fix-includes. * configure: Regenerate. --- fixincludes/fixinc.in | 6 ++++++ gcc/Makefile.in | 6 ++++-- gcc/configure | 21 +++++++++++++++++++-- gcc/configure.ac | 6 ++++++ 4 files changed, 35 insertions(+), 4 deletions(-) diff --git a/fixincludes/fixinc.in b/fixincludes/fixinc.in index 0c3066452c6..3ebcd346d41 100755 --- a/fixincludes/fixinc.in +++ b/fixincludes/fixinc.in @@ -63,6 +63,12 @@ else esac fi +if test "x$DISABLE_FIX_INCLUDES" = "xyes" +then + echo "Skipping fixincludes" + exit 0 +fi + # Define what target system we're fixing. # if test -r ./Makefile; then diff --git a/gcc/Makefile.in b/gcc/Makefile.in index 31ff95500c9..c77f1cc644d 100644 --- a/gcc/Makefile.in +++ b/gcc/Makefile.in @@ -401,6 +401,8 @@ PLUGINLIBS = @pluginlibs@ enable_plugin = @enable_plugin@ +disable_fix_includes = @disable_fix_includes@ + # On MinGW plugin installation involves installing import libraries. ifeq ($(enable_plugin),yes) plugin_implib := $(if $(strip $(filter mingw%,$(host_os))),yes,no) @@ -3248,8 +3250,8 @@ stmp-fixinc: gsyslimits.h macro_list fixinc_list \ chmod a+rx $${fix_dir} || true; \ (TARGET_MACHINE='$(target)'; srcdir=`cd $(srcdir); ${PWD_COMMAND}`; \ SHELL='$(SHELL)'; MACRO_LIST=`${PWD_COMMAND}`/macro_list ; \ - gcc_dir=`${PWD_COMMAND}` ; \ - export TARGET_MACHINE srcdir SHELL MACRO_LIST && \ + gcc_dir=`${PWD_COMMAND}` ; DISABLE_FIX_INCLUDES=${disable_fix_includes} \ + export TARGET_MACHINE srcdir SHELL MACRO_LIST DISABLE_FIX_INCLUDES && \ cd $(build_objdir)/fixincludes && \ $(SHELL) ./fixinc.sh "$${gcc_dir}/$${fix_dir}" \ $(BUILD_SYSTEM_HEADER_DIR) $(OTHER_FIXINCLUDES_DIRS) ); \ diff --git a/gcc/configure b/gcc/configure index bd4d4721868..843ab02bfa3 100755 --- a/gcc/configure +++ b/gcc/configure @@ -839,6 +839,7 @@ with_float with_cpu enable_multiarch enable_multilib +disable_fix_includes coverage_flags valgrind_command valgrind_path_defines @@ -958,6 +959,7 @@ enable_werror_always enable_checking enable_coverage enable_gather_detailed_mem_stats +enable_disable_fix_includes enable_valgrind_annotations enable_multilib enable_multiarch @@ -1688,6 +1690,7 @@ Optional Features: Values are opt, noopt, default is noopt --enable-gather-detailed-mem-stats enable detailed memory allocation stats gathering + --disable-fix-includes skip fixing of includes --enable-valgrind-annotations enable valgrind runtime interaction --enable-multilib enable library support for multiple ABIs @@ -7780,6 +7783,20 @@ cat >>confdefs.h <<_ACEOF _ACEOF +# Check whether --enable-disable-fix-includes was given. +if test "${enable_disable_fix_includes+set}" = set; then : + enableval=$enable_disable_fix_includes; +else + disable_fix_includes=yes +fi + + +cat >>confdefs.h <<_ACEOF +#define FIX_INCLUDES $disable_fix_includes +_ACEOF + + + # Check whether --enable-valgrind-annotations was given. if test "${enable_valgrind_annotations+set}" = set; then : enableval=$enable_valgrind_annotations; @@ -19659,7 +19676,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19662 "configure" +#line 19679 "configure" #include "confdefs.h" #if HAVE_DLFCN_H @@ -19765,7 +19782,7 @@ else lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_status=$lt_dlunknown cat > conftest.$ac_ext <<_LT_EOF -#line 19768 "configure" +#line 19785 "configure" #include "confdefs.h" #if HAVE_DLFCN_H diff --git a/gcc/configure.ac b/gcc/configure.ac index 1171c946e6e..6015e403aa9 100644 --- a/gcc/configure.ac +++ b/gcc/configure.ac @@ -842,6 +842,12 @@ gather_stats=`if test $enable_gather_detailed_mem_stats != no; then echo 1; else AC_DEFINE_UNQUOTED(GATHER_STATISTICS, $gather_stats, [Define to enable detailed memory allocation stats gathering.]) +AC_ARG_ENABLE(disable-fix-includes, +[AS_HELP_STRING([--disable-fix-includes], + [skip fixing of includes])], [], +[disable_fix_includes=yes]) +AC_SUBST(disable_fix_includes) + AC_ARG_ENABLE(valgrind-annotations, [AS_HELP_STRING([--enable-valgrind-annotations], [enable valgrind runtime interaction])], [], -- 2.35.1 --------------kiOjB000P7KESYNKi0mkdP2n Content-Type: text/x-patch; charset=UTF-8; name="fixincludes.diff" Content-Disposition: attachment; filename="fixincludes.diff" Content-Transfer-Encoding: base64 LS0tIC91c3IvaW5jbHVkZS9YMTEvWHczMmRlZnMuaAkyMDIyLTAxLTA3IDEzOjUyOjE1LjAw MDAwMDAwMCArMDEwMAorKysgaW5jbHVkZS1maXhlZC9YMTEvWHczMmRlZnMuaAkyMDIyLTAy LTA0IDA3OjU1OjA2Ljk1NjQ5MzQxNyArMDEwMApAQCAtMSw3ICsxLDE2IEBACiAjaWZuZGVm IF9YVzMyREVGU19ICiAjIGRlZmluZSAgX1hXMzJERUZTX0gKIAotIyBpZmRlZiBfX0dOVUNf XyAvKiBtaW5ndyBpcyBtb3JlIGNsb3NlIHRvIHVuaXggdGhhbiBtc3ZjICovCisjIGlmZGVm IF9fR05VQ19fIC8qIG1pbmd3IGlzIG1vcmUgY2xvc2UgdG8gX191bml4X18gdGhhbiBtc3Zj ICovCiAjICBpZiAhZGVmaW5lZChfX2RhZGRyX3RfZGVmaW5lZCkKIHR5cGVkZWYgY2hhciAq Y2FkZHJfdDsKICMgIGVuZGlmCi0tLSAvdXNyL2luY2x1ZGUvYm9vc3QvcHJlZGVmL29zL3Vu aXguaAkyMDIyLTAxLTA3IDE2OjIwOjUzLjAwMDAwMDAwMCArMDEwMAorKysgaW5jbHVkZS1m aXhlZC9ib29zdC9wcmVkZWYvb3MvdW5peC5oCTIwMjItMDItMDQgMDc6NTU6MDYuNTY0NDk2 MTQyICswMTAwCkBAIC0xLDMgKzEsMTIgQEAKIC8qCiBDb3B5cmlnaHQgUmVuZSBSaXZlcmEg MjAwOC0yMDE1CiBEaXN0cmlidXRlZCB1bmRlciB0aGUgQm9vc3QgU29mdHdhcmUgTGljZW5z ZSwgVmVyc2lvbiAxLjAuCkBAIC0yOSw3ICszOCw3IEBACiAKICNkZWZpbmUgQk9PU1RfT1Nf VU5JWCBCT09TVF9WRVJTSU9OX05VTUJFUl9OT1RfQVZBSUxBQkxFCiAKLSNpZiBkZWZpbmVk KHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBcCisjaWYgZGVmaW5lZChfX3VuaXhfXykg fHwgZGVmaW5lZChfX3VuaXgpIHx8IFwKICAgICBkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpIHx8 IGRlZmluZWQoX1BPU0lYX1NPVVJDRSkKICMgICB1bmRlZiBCT09TVF9PU19VTklYCiAjICAg ZGVmaW5lIEJPT1NUX09TX1VOSVggQk9PU1RfVkVSU0lPTl9OVU1CRVJfQVZBSUxBQkxFCi0t LSAvdXNyL2luY2x1ZGUvc2NoaWx5L3Byb3RvdHlwLmgJMjAyMi0wMS0wNyAxNTo1MTozMy4w MDAwMDAwMDAgKzAxMDAKKysrIGluY2x1ZGUtZml4ZWQvc2NoaWx5L3Byb3RvdHlwLmgJMjAy Mi0wMi0wNCAwNzo1NTowNC4yNjA1MTIxNTUgKzAxMDAKQEAgLTEsMyArMSwxMiBAQAogLyoK ICAqCURlZmluaXRpb25zIGZvciBkZWFsaW5nIHdpdGggQU5TSSAvIEtSIEMtQ29tcGlsZXJz CkBAIC01NCw3ICs2Myw3IEBACiAjCQlpZglfX1NURENfXwkJCQkvKiBBTlNJIEMgKi8KICMJ CQlkZWZpbmUJUFJPVE9UWVBFUwogIwkJZW5kaWYKLSMJCWlmCWRlZmluZWQoc3VuKSAmJiBf X1NURENfXyAtIDAgPT0gMAkvKiBTdW4gQyAqLworIwkJaWYJZGVmaW5lZChzdW4pICYmICAh ZGVmaW5lZChfX1NUUklDVF9BTlNJX18pCS8qIFN1biBDICovCiAjCQkJZGVmaW5lCVBST1RP VFlQRVMKICMJCWVuZGlmCiAjCWVuZGlmCi0tLSAvdXNyL2luY2x1ZGUvc2NoaWx5L21jb25m aWcuaAkyMDIyLTAxLTA3IDE1OjUxOjMzLjAwMDAwMDAwMCArMDEwMAorKysgaW5jbHVkZS1m aXhlZC9zY2hpbHkvbWNvbmZpZy5oCTIwMjItMDItMDQgMDc6NTU6MDQuMjQ0NTEyMjY1ICsw MTAwCkBAIC0xLDMgKzEsMTIgQEAKIC8qCiAgKglkZWZpbml0aW9ucyBmb3IgbWFjaGluZSBj b25maWd1cmF0aW9uCkBAIC0xMDYsNyArMTE1LDcgQEAKICMJZGVmaW5lCUlTX0dDQ19XSU4z MgogIwlkZWZpbmUJSVNfQ1lHV0lOCiAKLSNpZglkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQo X1g4NikKKyNpZglkZWZpbmVkKF9fdW5peF9fKSB8fCBkZWZpbmVkKF9YODYpCiAjCWRlZmlu ZQlJU19DWUdXSU5fMQogI2VuZGlmCiAjZW5kaWYKLS0tIC91c3IvaW5jbHVkZS9uc3MzL3Nl Y3BvcnQuaAkyMDIyLTAxLTI2IDIxOjM3OjIxLjAwMDAwMDAwMCArMDEwMAorKysgaW5jbHVk ZS1maXhlZC9uc3MzL3NlY3BvcnQuaAkyMDIyLTAyLTA0IDA3OjU1OjA0LjIzMjUxMjM1MSAr MDEwMApAQCAtMSwzICsxLDEyIEBACiAgKiBMaWNlbnNlLCB2LiAyLjAuIElmIGEgY29weSBv ZiB0aGUgTVBMIHdhcyBub3QgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzCiAgKiBmaWxlLCBZb3Ug Y2FuIG9idGFpbiBvbmUgYXQgaHR0cDovL21vemlsbGEub3JnL01QTC8yLjAvLiAqLwpAQCAt MzMsNyArNDIsNyBAQAogI2VuZGlmCiAjZW5kaWYKIAotI2lmZGVmIHVuaXgKKyNpZmRlZiBf X3VuaXhfXwogI2lmbmRlZiBYUF9VTklYCiAjZGVmaW5lIFhQX1VOSVgKICNlbmRpZgotLS0g L3Vzci9pbmNsdWRlL21zZ3BhY2svcHJlZGVmL29zL3VuaXguaAkyMDE5LTA3LTA0IDA2OjM2 OjEyLjAwMDAwMDAwMCArMDIwMAorKysgaW5jbHVkZS1maXhlZC9tc2dwYWNrL3ByZWRlZi9v cy91bml4LmgJMjAyMi0wMi0wNCAwNzo1NTowMy4xMzY1MTk5NjYgKzAxMDAKQEAgLTEsMyAr MSwxMiBAQAogQ29weXJpZ2h0IFJlbmUgUml2ZXJhIDIwMDgtMjAxNQogRGlzdHJpYnV0ZWQg dW5kZXIgdGhlIEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgpAQCAtMjgs NyArMzcsNyBAQAogCiAjZGVmaW5lIE1TR1BBQ0tfT1NfVU5JWCBNU0dQQUNLX1ZFUlNJT05f TlVNQkVSX05PVF9BVkFJTEFCTEUKIAotI2lmIGRlZmluZWQodW5peCkgfHwgZGVmaW5lZChf X3VuaXgpIHx8IFwKKyNpZiBkZWZpbmVkKF9fdW5peF9fKSB8fCBkZWZpbmVkKF9fdW5peCkg fHwgXAogICAgIGRlZmluZWQoX1hPUEVOX1NPVVJDRSkgfHwgZGVmaW5lZChfUE9TSVhfU09V UkNFKQogIyAgIHVuZGVmIE1TR1BBQ0tfT1NfVU5JWAogIyAgIGRlZmluZSBNU0dQQUNLX09T X1VOSVggTVNHUEFDS19WRVJTSU9OX05VTUJFUl9BVkFJTEFCTEUKLS0tIC91c3IvaW5jbHVk ZS9tc2dwYWNrL3ByZWRlZi9vcy9saW51eC5oCTIwMTktMDctMDQgMDY6MzY6MTIuMDAwMDAw MDAwICswMjAwCisrKyBpbmNsdWRlLWZpeGVkL21zZ3BhY2svcHJlZGVmL29zL2xpbnV4LmgJ MjAyMi0wMi0wNCAwNzo1NTowMy4xMzY1MTk5NjYgKzAxMDAKQEAgLTEsMyArMSwxMiBAQAog Q29weXJpZ2h0IFJlbmUgUml2ZXJhIDIwMDgtMjAxNQogRGlzdHJpYnV0ZWQgdW5kZXIgdGhl IEJvb3N0IFNvZnR3YXJlIExpY2Vuc2UsIFZlcnNpb24gMS4wLgpAQCAtMjcsNyArMzYsNyBA QAogI2RlZmluZSBNU0dQQUNLX09TX0xJTlVYIE1TR1BBQ0tfVkVSU0lPTl9OVU1CRVJfTk9U X0FWQUlMQUJMRQogCiAjaWYgIWRlZmluZWQoTVNHUEFDS19QUkVERUZfREVUQUlMX09TX0RF VEVDVEVEKSAmJiAoIFwKLSAgICBkZWZpbmVkKGxpbnV4KSB8fCBkZWZpbmVkKF9fbGludXgp IFwKKyAgICBkZWZpbmVkKF9fbGludXhfXykgfHwgZGVmaW5lZChfX2xpbnV4KSBcCiAgICAg KQogIyAgIHVuZGVmIE1TR1BBQ0tfT1NfTElOVVgKICMgICBkZWZpbmUgTVNHUEFDS19PU19M SU5VWCBNU0dQQUNLX1ZFUlNJT05fTlVNQkVSX0FWQUlMQUJMRQotLS0gL3Vzci9pbmNsdWRl L21zZ3BhY2svc3lzZGVwLmgJMjAyMC0wMi0xOSAxMDoyMTo0Ni4wMDAwMDAwMDAgKzAxMDAK KysrIGluY2x1ZGUtZml4ZWQvbXNncGFjay9zeXNkZXAuaAkyMDIyLTAyLTA0IDA3OjU1OjAz LjEyNDUyMDA1MiArMDEwMApAQCAtMSwzICsxLDEyIEBACiAgKiBNZXNzYWdlUGFjayBzeXN0 ZW0gZGVwZW5kZW5jaWVzCiAgKgpAQCAtODcsNyArOTYsNyBAQAogI2VsaWYgZGVmaW5lZCh1 bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmlu ZWQoX19PcGVuQlNEX18pCiAKICNpbmNsdWRlIDxhcnBhL2luZXQuaD4gIC8qIF9fQllURV9P UkRFUiAqLwotIyAgIGlmIGRlZmluZWQobGludXgpCisjICAgaWYgZGVmaW5lZChfX2xpbnV4 X18pCiAjICAgICAgIGluY2x1ZGUgPGJ5dGVzd2FwLmg+CiAjICAgZW5kaWYKIApAQCAtOTks NyArMTA4LDcgQEAKIAogI2lmIE1TR1BBQ0tfRU5ESUFOX0xJVFRMRV9CWVRFCiAKLSMgICBp ZiBkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBkZWZpbmVkKF9fQVBQTEVf XykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykKKyMgICBpZiBkZWZpbmVkKF9fdW5peF9fKSB8 fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19P cGVuQlNEX18pCiAjICAgICAgIGRlZmluZSBfbXNncGFja19iZTE2KHgpIG50b2hzKCh1aW50 MTZfdCl4KQogIyAgIGVsc2UKICMgICAgICAgaWYgZGVmaW5lZChudG9ocykKQEAgLTExMyw3 ICsxMjIsNyBAQAogIyAgICAgICAgZW5kaWYKICMgICBlbmRpZgogCi0jICAgaWYgZGVmaW5l ZCh1bml4KSB8fCBkZWZpbmVkKF9fdW5peCkgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRl ZmluZWQoX19PcGVuQlNEX18pCisjICAgaWYgZGVmaW5lZChfX3VuaXhfXykgfHwgZGVmaW5l ZChfX3VuaXgpIHx8IGRlZmluZWQoX19BUFBMRV9fKSB8fCBkZWZpbmVkKF9fT3BlbkJTRF9f KQogIyAgICAgICBkZWZpbmUgX21zZ3BhY2tfYmUzMih4KSBudG9obCgodWludDMyX3QpeCkK ICMgICBlbHNlCiAjICAgICAgIGlmIGRlZmluZWQobnRvaGwpCi0tLSAvdXNyL2luY2x1ZGUv bXNncGFjay92cmVmYnVmZmVyLmgJMjAyMC0wMi0xOSAxMDoyMTo0Ni4wMDAwMDAwMDAgKzAx MDAKKysrIGluY2x1ZGUtZml4ZWQvbXNncGFjay92cmVmYnVmZmVyLmgJMjAyMi0wMi0wNCAw Nzo1NTowMy4xMjQ1MjAwNTIgKzAxMDAKQEAgLTEsMyArMSwxMiBAQAogICogTWVzc2FnZVBh Y2sgZm9yIEMgemVyby1jb3B5IGJ1ZmZlciBpbXBsZW1lbnRhdGlvbgogICoKQEAgLTEzLDcg KzIyLDcgQEAKICNpbmNsdWRlICJ6b25lLmgiCiAjaW5jbHVkZSA8c3RkbGliLmg+CiAKLSNp ZiBkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBkZWZpbmVkKF9fbGludXhf XykgfHwgZGVmaW5lZChfX0FQUExFX18pIHx8IGRlZmluZWQoX19PcGVuQlNEX18pIHx8IGRl ZmluZWQoX19OZXRCU0RfXykgfHwgZGVmaW5lZChfX1FOWF9fKSB8fCBkZWZpbmVkKF9fUU5Y VE9fXykgfHwgZGVmaW5lZChfX0hBSUtVX18pCisjaWYgZGVmaW5lZChfX3VuaXhfXykgfHwg ZGVmaW5lZChfX3VuaXgpIHx8IGRlZmluZWQoX19saW51eF9fKSB8fCBkZWZpbmVkKF9fQVBQ TEVfXykgfHwgZGVmaW5lZChfX09wZW5CU0RfXykgfHwgZGVmaW5lZChfX05ldEJTRF9fKSB8 fCBkZWZpbmVkKF9fUU5YX18pIHx8IGRlZmluZWQoX19RTlhUT19fKSB8fCBkZWZpbmVkKF9f SEFJS1VfXykKICNpbmNsdWRlIDxzeXMvdWlvLmg+CiAjZWxzZQogc3RydWN0IGlvdmVjIHsK LS0tIC91c3IvaW5jbHVkZS94b3JnL2NvbXBpbGVyLmgJMjAyMi0wMS0wNyAyMDoyMToyMC4w MDAwMDAwMDAgKzAxMDAKKysrIGluY2x1ZGUtZml4ZWQveG9yZy9jb21waWxlci5oCTIwMjIt MDItMDQgMDc6NTU6MDIuODE2NTIyMTkyICswMTAwCkBAIC0xLDMgKzEsMTIgQEAKICAqIENv cHlyaWdodCAxOTkwLDkxIGJ5IFRob21hcyBSb2VsbCwgRGlua2Vsc2NoZXJiZW4sIEdlcm1h bnkuCiAgKgpAQCAtOTM2LDcgKzk0NSw3IEBACiAjZW5kaWYgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qIGFyY2ggbWFkbmVzcyAqLwogCiAjZWxzZSAgICAgICAgICAgICAgICAgICAg ICAgICAgIC8qICFHTlVDICovCi0jaWYgZGVmaW5lZChfX1NURENfXykgJiYgKF9fU1REQ19f ID09IDEpCisjaWYgZGVmaW5lZChfX1NURENfXykgJiYgKCBkZWZpbmVkKF9fU1RSSUNUX0FO U0lfXykpCiAjaWZuZGVmIGFzbQogI2RlZmluZSBhc20gX19hc20KICNlbmRpZgotLS0gL3Vz ci9pbmNsdWRlL3hvcmcvZWRpZC5oCTIwMjItMDEtMDcgMjA6MjE6MjAuMDAwMDAwMDAwICsw MTAwCisrKyBpbmNsdWRlLWZpeGVkL3hvcmcvZWRpZC5oCTIwMjItMDItMDQgMDc6NTU6MDIu ODEyNTIyMjIxICswMTAwCkBAIC0xLDMgKzEsMTIgQEAKICAqIGVkaWQuaDogZGVmaW5lcyB0 byBwYXJzZSBhbiBFRElEIGJsb2NrCiAgKgpAQCAtMzM2LDcgKzM0NSw3IEBACiAjZGVmaW5l IEFERF9EVU1NWSAweDEwCiAKICNkZWZpbmUgX05FWFRfRFRfTURfU0VDVElPTih4KSAoeCA9 ICh4ICsgREVUX1RJTUlOR19JTkZPX0xFTikpCi0jZGVmaW5lIE5FWFRfRFRfTURfU0VDVElP TiBfTkVYVF9EVF9NRF9TRUNUSU9OKGMpCisjZGVmaW5lIE5FWFRfRFRfTURfU0VDVElPTiBf TkVYVF9EVF9NRF9TRUNUSU9OKCdjJykKIAogI2VuZGlmICAgICAgICAgICAgICAgICAgICAg ICAgICAvKiBfUEFSU0VfRURJRF8gKi8KIAotLS0gL3Vzci9pbmNsdWRlL3NtYmlvc19jL2Nv bmZpZy9zdWZmaXguaAkyMDIyLTAxLTA3IDE4OjU4OjA5LjAwMDAwMDAwMCArMDEwMAorKysg aW5jbHVkZS1maXhlZC9zbWJpb3NfYy9jb25maWcvc3VmZml4LmgJMjAyMi0wMi0wNCAwNzo1 NTowMS43NDg1Mjk2MTUgKzAxMDAKQEAgLTEsMyArMSwxMiBAQAogCiAvLyAgKEMpIENvcHly aWdodCBKb2huIE1hZGRvY2sgMjAwMSAtIDIwMDMuCkBAIC0xNzgsNyArMTg3LDcgQEAKICMg ICAgIGRlZmluZSBMSUJTTUJJT1NfQ19TVERMSUIgIlVua25vd24gSVNPIHN0YW5kYXJkIGxp YnJhcnkiCiAjICBlbmRpZgogIyAgaWZuZGVmIExJQlNNQklPU19DX1BMQVRGT1JNCi0jICAg ICBpZiBkZWZpbmVkKHVuaXgpIHx8IGRlZmluZWQoX191bml4KSB8fCBkZWZpbmVkKF9YT1BF Tl9TT1VSQ0UpIFwKKyMgICAgIGlmIGRlZmluZWQoX191bml4X18pIHx8IGRlZmluZWQoX191 bml4KSB8fCBkZWZpbmVkKF9YT1BFTl9TT1VSQ0UpIFwKICAgICAgICAgIHx8IGRlZmluZWQo X1BPU0lYX1NPVVJDRSkKICMgICAgICAgIGRlZmluZSBMSUJTTUJJT1NfQ19QTEFURk9STSAi R2VuZXJpYyBVbml4IgogIyAgICAgZWxzZQotLS0gL3Vzci9pbmNsdWRlL3p1dGlsLmgJMjAy Mi0wMS0wNyAxMzo1Mjo1OS4wMDAwMDAwMDAgKzAxMDAKKysrIGluY2x1ZGUtZml4ZWQvenV0 aWwuaAkyMDIyLTAyLTA0IDA3OjU1OjA2LjU5MjQ5NTk0NyArMDEwMApAQCAtMSwzICsxLDEy IEBACiAgKiBDb3B5cmlnaHQgKEMpIDE5OTUtMjAxNiBKZWFuLWxvdXAgR2FpbGx5LCBNYXJr IEFkbGVyCiAgKiBGb3IgY29uZGl0aW9ucyBvZiBkaXN0cmlidXRpb24gYW5kIHVzZSwgc2Vl IGNvcHlyaWdodCBub3RpY2UgaW4gemxpYi5oCkBAIC04Niw3ICs5NSw3IEBACiAjICBkZWZp bmUgT1NfQ09ERSAgMHgwMAogIyAgaWZuZGVmIFpfU09MTwogIyAgICBpZiBkZWZpbmVkKF9f VFVSQk9DX18pIHx8IGRlZmluZWQoX19CT1JMQU5EQ19fKQotIyAgICAgIGlmIChfX1NURENf XyA9PSAxKSAmJiAoZGVmaW5lZChfX0xBUkdFX18pIHx8IGRlZmluZWQoX19DT01QQUNUX18p KQorIyAgICAgIGlmICggZGVmaW5lZChfX1NUUklDVF9BTlNJX18pKSAmJiAoZGVmaW5lZChf X0xBUkdFX18pIHx8IGRlZmluZWQoX19DT01QQUNUX18pKQogICAgICAgICAgLyogQWxsb3cg Y29tcGlsYXRpb24gd2l0aCBBTlNJIGtleXdvcmRzIG9ubHkgZW5hYmxlZCAqLwogICAgICAg ICAgdm9pZCBfQ2RlY2wgZmFyZnJlZSggdm9pZCAqYmxvY2sgKTsKICAgICAgICAgIHZvaWQg Kl9DZGVjbCBmYXJtYWxsb2MoIHVuc2lnbmVkIGxvbmcgbmJ5dGVzICk7Ci0tLSAvdXNyL2lu Y2x1ZGUvc2xhbmcuaAkyMDIyLTAxLTAyIDE2OjE1OjI1LjAwMDAwMDAwMCArMDEwMAorKysg aW5jbHVkZS1maXhlZC9zbGFuZy5oCTIwMjItMDItMDQgMDc6NTU6MDQuNzgwNTA4NTQyICsw MTAwCkBAIC0xLDMgKzEsMTIgQEAKICNkZWZpbmUgREFWSVNfU0xBTkdfSF8KIC8qIC0qLSBt b2RlOiBDOyBtb2RlOiBmb2xkOyAtKi0gKi8KQEAgLTQzLDcgKzUyLDcgQEAKICMgZW5kaWYK ICNlbmRpZiAvKiBfX3dhdGNvbWNfXyAqLwogCi0jaWYgZGVmaW5lZCh1bml4KSB8fCBkZWZp bmVkKF9fdW5peCkKKyNpZiBkZWZpbmVkKF9fdW5peF9fKSB8fCBkZWZpbmVkKF9fdW5peCkK ICMgaWZuZGVmIF9fdW5peF9fCiAjICBkZWZpbmUgX191bml4X18gMQogIyBlbmRpZgotLS0g L3Vzci9pbmNsdWRlL2xpYnY0bGNvbnZlcnQuaAkyMDIyLTAxLTA3IDE3OjQwOjQ4LjAwMDAw MDAwMCArMDEwMAorKysgaW5jbHVkZS1maXhlZC9saWJ2NGxjb252ZXJ0LmgJMjAyMi0wMi0w NCAwNzo1NTowMy4zMzI1MTg2MDQgKzAxMDAKQEAgLTEsMyArMSwxMiBAQAogIyAgICAgICAg ICAgICAoQykgMjAwOCBIYW5zIGRlIEdvZWRlIDxoZGVnb2VkZUByZWRoYXQuY29tPgogCkBA IC0yMiw3ICszMSw3IEBACiAvKiBUaGVzZSBoZWFkZXJzIGFyZSBub3QgbmVlZGVkIGJ5IHVz LCBidXQgYnkgbGludXgvdmlkZW9kZXYyLmgsCiAgICB3aGljaCBpcyBicm9rZW4gb24gc29t ZSBzeXN0ZW1zIGFuZCBkb2Vzbid0IGluY2x1ZGUgdGhlbSBpdHNlbGYgOiggKi8KIAotI2lm ZGVmIGxpbnV4CisjaWZkZWYgX19saW51eF9fCiAjaW5jbHVkZSA8c3lzL3RpbWUuaD4KICNp bmNsdWRlIDxsaW51eC90eXBlcy5oPgogI2luY2x1ZGUgPGxpbnV4L2lvY3RsLmg+Ci0tLSAv dXNyL2luY2x1ZGUvbGlidjRsMS12aWRlb2Rldi5oCTIwMjItMDEtMDcgMTc6NDA6NTAuMDAw MDAwMDAwICswMTAwCisrKyBpbmNsdWRlLWZpeGVkL2xpYnY0bDEtdmlkZW9kZXYuaAkyMDIy LTAyLTA0IDA3OjU1OjAyLjIyNDUyNjMwNSArMDEwMApAQCAtMSw4ICsxLDE3IEBACiAjaWZu ZGVmIF9fTElOVVhfVklERU9ERVZfSAogI2RlZmluZSBfX0xJTlVYX1ZJREVPREVWX0gKIAot I2lmZGVmIGxpbnV4CisjaWZkZWYgX19saW51eF9fCiAjaW5jbHVkZSA8bGludXgvaW9jdGwu aD4KICNlbmRpZgogCi0tLSAvdXNyL2luY2x1ZGUvcHRocmVhZC5oCTIwMjItMDEtMDcgMTM6 NTc6NTUuMDAwMDAwMDAwICswMTAwCisrKyBpbmNsdWRlLWZpeGVkL3B0aHJlYWQuaAkyMDIy LTAyLTA0IDA3OjU1OjAxLjY4NDUzMDA2MSArMDEwMApAQCAtMSwzICsxLDEyIEBACiAgICBU aGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KIApAQCAtNzcwLDcgKzc3 OSw3IEBACiAjZWxzZQogIyBkZWZpbmUgX19zaWdzZXRqbXBfY2FuY2VsKGVudiwgc2F2ZW1h c2spIFwKICAgX19zaWdzZXRqbXAgKChzdHJ1Y3QgX19qbXBfYnVmX3RhZyAqKSAodm9pZCAq KSAoZW52KSwgKHNhdmVtYXNrKSkKLWV4dGVybiBpbnQgX19zaWdzZXRqbXAgKHN0cnVjdCBf X2ptcF9idWZfdGFnIF9fZW52WzFdLAorZXh0ZXJuIGludCBfX3NpZ3NldGptcCAoc3RydWN0 IF9fam1wX2J1Zl90YWcgKl9fZW52LAogCQkJaW50IF9fc2F2ZW1hc2spIF9fVEhST1dOTDsK ICNlbmRpZgogCg== --------------kiOjB000P7KESYNKi0mkdP2n--