From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30709 invoked by alias); 12 Jul 2010 11:51:28 -0000 Received: (qmail 30699 invoked by uid 22791); 12 Jul 2010 11:51:27 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,T_TO_NO_BRKTS_FREEMAIL X-Spam-Check-By: sourceware.org Received: from mail-ew0-f41.google.com (HELO mail-ew0-f41.google.com) (209.85.215.41) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 12 Jul 2010 11:51:21 +0000 Received: by ewy28 with SMTP id 28so916308ewy.0 for ; Mon, 12 Jul 2010 04:51:18 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.15.206 with SMTP id l14mr8907197eba.56.1278935477861; Mon, 12 Jul 2010 04:51:17 -0700 (PDT) Received: by 10.213.4.132 with HTTP; Mon, 12 Jul 2010 04:51:17 -0700 (PDT) In-Reply-To: References: Date: Mon, 12 Jul 2010 11:51:00 -0000 Message-ID: Subject: Re: [PATCH] fix build failure for win64, revise some format strings From: Ozkan Sezer To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0015174be934d93c8d048b2f5ea4 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2010-07/txt/msg00203.txt.bz2 --0015174be934d93c8d048b2f5ea4 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 3356 On Mon, Jul 12, 2010 at 1:14 PM, Ozkan Sezer wrote: > Hi: > > The current gdb cvs fails building for win64: > > cc1: warnings being treated as errors > ../../gdb-cvs/gdb/target.c: In function > 'debug_to_can_accel_watchpoint_condition': > ../../gdb-cvs/gdb/target.c:3335: error: cast from pointer to integer > of different size > ../../gdb-cvs/gdb/target.c: In function 'debug_to_insert_watchpoint': > ../../gdb-cvs/gdb/target.c:3424: error: cast from pointer to integer > of different size > ../../gdb-cvs/gdb/target.c: In function 'debug_to_remove_watchpoint': > ../../gdb-cvs/gdb/target.c:3439: error: cast from pointer to integer > of different size > > The warnings are due to the unsigned long casts in gdb/target.c > with assumption of LP64 behavior which isn't true for wih64 (LLP64). > There are even more unsigned long casts there which aren't > causing warnings but still truncating the value. > > I thought that it would be best to solve this using inttypes.h macros. > An initial patch is attached. Since gdb already uses gnulib for stdint, > it can also use inttypes. > > In the patch, I also touched gdbserver/server.c in order to fix > another format string issue with windows: > > ../../../gdb-cvs/gdb/gdbserver/server.c: In function 'handle_query': > ../../../gdb-cvs/gdb/gdbserver/server.c:1542: warning: unknown > conversion type character 'l' in format > ../../../gdb-cvs/gdb/gdbserver/server.c:1542: warning: too many > arguments for format > ../../../gdb-cvs/gdb/gdbserver/server.c:1566: warning: unknown > conversion type character 'l' in format > ../../../gdb-cvs/gdb/gdbserver/server.c:1566: warning: too many > arguments for format > > These warnings are due to the fact that M$ doesn't support %ll. > Fixed by using %I64d with _WIN32 ifdefs. > > Patch was test by compiling gdb for x86_64-linux and for x86_64-w64-mingw= 32 > where both targets already provide inttypes.h. > > =A0 =A0 =A0 =A0* target.c: Include inttypes.h. > =A0 =A0 =A0 =A0(debug_to_insert_breakpoint): Remove unnecessary unsigned = long casts > =A0 =A0 =A0 =A0from int type variables. For pointers, cast to uintptr_t i= nstead of > =A0 =A0 =A0 =A0unsigned long and use the PRIuPTR macro from inttypes.h in= stead of %ld. > =A0 =A0 =A0 =A0(debug_to_remove_breakpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_can_use_hw_breakpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_region_ok_for_hw_watchpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_can_accel_watchpoint_condition): Likewise. > =A0 =A0 =A0 =A0(debug_to_stopped_by_watchpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_stopped_data_address): Likewise. > =A0 =A0 =A0 =A0(debug_to_watchpoint_addr_within_range): Likewise. > =A0 =A0 =A0 =A0(debug_to_insert_hw_breakpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_remove_hw_breakpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_insert_watchpoint): Likewise. > =A0 =A0 =A0 =A0(debug_to_remove_watchpoint): Likewise. > > =A0 =A0 =A0 =A0gdbserver/server.c (handle_query): For windows, Use %I64d = instead of > =A0 =A0 =A0 =A0%lld in the sprintf format string. > > Note: if this patch is OK'ed, someone with an experience with gnulib shou= ld > import inttypes into gdb (I don't feel at home with gnulib.) > > Regards. > > -- > Ozkan > Just noticed that the patch had intptr_t (as a typo) instead of uintptr_t in a few places. Fixed one attached. -- Ozkan --0015174be934d93c8d048b2f5ea4 Content-Type: application/octet-stream; name="gdb_pformat.diff" Content-Disposition: attachment; filename="gdb_pformat.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gbj98d3f1 Content-length: 10562 CSogdGFyZ2V0LmM6IEluY2x1ZGUgaW50dHlwZXMuaC4KCShkZWJ1Z190b19p bnNlcnRfYnJlYWtwb2ludCk6IFJlbW92ZSB1bm5lY2Vzc2FyeSB1bnNpZ25l ZCBsb25nIGNhc3RzCglmcm9tIGludCB0eXBlIHZhcmlhYmxlcy4gRm9yIHBv aW50ZXJzLCBjYXN0IHRvIHVpbnRwdHJfdCBpbnN0ZWFkIG9mCgl1bnNpZ25l ZCBsb25nIGFuZCB1c2UgdGhlIFBSSXVQVFIgbWFjcm8gZnJvbSBpbnR0eXBl cy5oIGluc3RlYWQgb2YgJWxkLgoJKGRlYnVnX3RvX3JlbW92ZV9icmVha3Bv aW50KTogTGlrZXdpc2UuCgkoZGVidWdfdG9fY2FuX3VzZV9od19icmVha3Bv aW50KTogTGlrZXdpc2UuCgkoZGVidWdfdG9fcmVnaW9uX29rX2Zvcl9od193 YXRjaHBvaW50KTogTGlrZXdpc2UuCgkoZGVidWdfdG9fY2FuX2FjY2VsX3dh dGNocG9pbnRfY29uZGl0aW9uKTogTGlrZXdpc2UuCgkoZGVidWdfdG9fc3Rv cHBlZF9ieV93YXRjaHBvaW50KTogTGlrZXdpc2UuCgkoZGVidWdfdG9fc3Rv cHBlZF9kYXRhX2FkZHJlc3MpOiBMaWtld2lzZS4KCShkZWJ1Z190b193YXRj aHBvaW50X2FkZHJfd2l0aGluX3JhbmdlKTogTGlrZXdpc2UuCgkoZGVidWdf dG9faW5zZXJ0X2h3X2JyZWFrcG9pbnQpOiBMaWtld2lzZS4KCShkZWJ1Z190 b19yZW1vdmVfaHdfYnJlYWtwb2ludCk6IExpa2V3aXNlLgoJKGRlYnVnX3Rv X2luc2VydF93YXRjaHBvaW50KTogTGlrZXdpc2UuCgkoZGVidWdfdG9fcmVt b3ZlX3dhdGNocG9pbnQpOiBMaWtld2lzZS4KCgkqIGdkYnNlcnZlci9zZXJ2 ZXIuYyAoaGFuZGxlX3F1ZXJ5KTogRm9yIHdpbmRvd3MsIFVzZSAlSTY0ZCBp bnN0ZWFkIG9mCgklbGxkIGluIHRoZSBzcHJpbnRmIGZvcm1hdCBzdHJpbmcu CgpJbmRleDogZ2RiL3RhcmdldC5jCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K UkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvdGFyZ2V0LmMsdgpyZXRyaWV2 aW5nIHJldmlzaW9uIDEuMjU5CmRpZmYgLXUgLXAgLXIxLjI1OSB0YXJnZXQu YwotLS0gZ2RiL3RhcmdldC5jCTcgSnVsIDIwMTAgMTY6MTU6MTcgLTAwMDAJ MS4yNTkKKysrIGdkYi90YXJnZXQuYwkxMiBKdWwgMjAxMCAwNzoyMDozNyAt MDAwMApAQCAtMjIsNiArMjIsNyBAQAogICAgYWxvbmcgd2l0aCB0aGlzIHBy b2dyYW0uICBJZiBub3QsIHNlZSA8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vu c2VzLz4uICAqLwogCiAjaW5jbHVkZSAiZGVmcy5oIgorI2luY2x1ZGUgPGlu dHR5cGVzLmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRlICJnZGJf c3RyaW5nLmgiCiAjaW5jbHVkZSAidGFyZ2V0LmgiCkBAIC0zMjcwLDkgKzMy NzEsOCBAQCBkZWJ1Z190b19pbnNlcnRfYnJlYWtwb2ludCAoc3RydWN0IGdk YmFyCiAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19pbnNlcnRfYnJlYWtw b2ludCAoZ2RiYXJjaCwgYnBfdGd0KTsKIAogICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRfaW5zZXJ0X2JyZWFr cG9pbnQgKDB4JWx4LCB4eHgpID0gJWxkXG4iLAotCQkgICAgICAodW5zaWdu ZWQgbG9uZykgYnBfdGd0LT5wbGFjZWRfYWRkcmVzcywKLQkJICAgICAgKHVu c2lnbmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgICJ0YXJnZXRfaW5zZXJ0 X2JyZWFrcG9pbnQgKDB4JSIgUFJJdVBUUiAiLCB4eHgpID0gJWRcbiIsCisJ CSAgICAgICh1aW50cHRyX3QpIGJwX3RndC0+cGxhY2VkX2FkZHJlc3MsIHJl dHZhbCk7CiAgIHJldHVybiByZXR2YWw7CiB9CiAKQEAgLTMyODUsOSArMzI4 NSw4IEBAIGRlYnVnX3RvX3JlbW92ZV9icmVha3BvaW50IChzdHJ1Y3QgZ2Ri YXIKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX3JlbW92ZV9icmVha3Bv aW50IChnZGJhcmNoLCBicF90Z3QpOwogCiAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywKLQkJICAgICAgInRhcmdldF9yZW1vdmVfYnJlYWtw b2ludCAoMHglbHgsIHh4eCkgPSAlbGRcbiIsCi0JCSAgICAgICh1bnNpZ25l ZCBsb25nKSBicF90Z3QtPnBsYWNlZF9hZGRyZXNzLAotCQkgICAgICAodW5z aWduZWQgbG9uZykgcmV0dmFsKTsKKwkJICAgICAgInRhcmdldF9yZW1vdmVf YnJlYWtwb2ludCAoMHglIiBQUkl1UFRSICIsIHh4eCkgPSAlZFxuIiwKKwkJ ICAgICAgKHVpbnRwdHJfdCkgYnBfdGd0LT5wbGFjZWRfYWRkcmVzcywgcmV0 dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtMzI5OSwxMSArMzI5 OCw4IEBAIGRlYnVnX3RvX2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5 cGUKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX2Nhbl91c2VfaHdfYnJl YWtwb2ludCAodHlwZSwgY250LCBmcm9tX3R0eSk7CiAKICAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAgICAidGFyZ2V0X2Nhbl91 c2VfaHdfYnJlYWtwb2ludCAoJWxkLCAlbGQsICVsZCkgPSAlbGRcbiIsCi0J CSAgICAgICh1bnNpZ25lZCBsb25nKSB0eXBlLAotCQkgICAgICAodW5zaWdu ZWQgbG9uZykgY250LAotCQkgICAgICAodW5zaWduZWQgbG9uZykgZnJvbV90 dHksCi0JCSAgICAgICh1bnNpZ25lZCBsb25nKSByZXR2YWwpOworCQkgICAg ICAidGFyZ2V0X2Nhbl91c2VfaHdfYnJlYWtwb2ludCAoJWQsICVkLCAlZCkg PSAlZFxuIiwKKwkJICAgICAgdHlwZSwgY250LCBmcm9tX3R0eSwgcmV0dmFs KTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtMzMxNSwxMCArMzMxMSw5 IEBAIGRlYnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ08K ICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX3JlZ2lvbl9va19mb3JfaHdf d2F0Y2hwb2ludCAoYWRkciwgbGVuKTsKIAogICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRfcmVnaW9uX29rX2Zv cl9od193YXRjaHBvaW50ICglbGQsICVsZCkgPSAweCVseFxuIiwKLQkJICAg ICAgKHVuc2lnbmVkIGxvbmcpIGFkZHIsCi0JCSAgICAgICh1bnNpZ25lZCBs b25nKSBsZW4sCi0JCSAgICAgICh1bnNpZ25lZCBsb25nKSByZXR2YWwpOwor CQkgICAgICAidGFyZ2V0X3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAo JSIgUFJJdVBUUiBcCisJCSAgICAgICIsICVkKSA9IDB4JSIgUFJJdVBUUiAi XG4iLAorCQkgICAgICAodWludHB0cl90KSBhZGRyLCBsZW4sICh1aW50cHRy X3QpIHJldHZhbCk7CiAgIHJldHVybiByZXR2YWw7CiB9CiAKQEAgLTMzMzEs OSArMzMyNiw5IEBAIGRlYnVnX3RvX2Nhbl9hY2NlbF93YXRjaHBvaW50X2Nv bmRpdGlvbiAKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX2Nhbl9hY2Nl bF93YXRjaHBvaW50X2NvbmRpdGlvbiAoYWRkciwgbGVuLCBydywgY29uZCk7 CiAKICAgZnByaW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAg ICAidGFyZ2V0X2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoMHgl bHgsICVkLCAlZCwgMHglbHgpID0gJWxkXG4iLAotCQkgICAgICAodW5zaWdu ZWQgbG9uZykgYWRkciwgbGVuLCBydywgKHVuc2lnbmVkIGxvbmcpIGNvbmQs Ci0JCSAgICAgICh1bnNpZ25lZCBsb25nKSByZXR2YWwpOworCQkgICAgICAi dGFyZ2V0X2Nhbl9hY2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbiAoMHglIiBQ Ukl1UFRSIFwKKwkJICAgICAgIiwgJWQsICVkLCAweCUiIFBSSXVQVFIgIikg PSAlZFxuIiwKKwkJICAgICAgYWRkciwgbGVuLCBydywgKHVpbnRwdHJfdCkg Y29uZCwgcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtMzM0 NSw4ICszMzQwLDcgQEAgZGVidWdfdG9fc3RvcHBlZF9ieV93YXRjaHBvaW50 ICh2b2lkKQogICByZXR2YWwgPSBkZWJ1Z190YXJnZXQudG9fc3RvcHBlZF9i eV93YXRjaHBvaW50ICgpOwogCiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2Ri X3N0ZGxvZywKLQkJICAgICAgInRhcmdldF9zdG9wcGVkX2J5X3dhdGNocG9p bnQgKCkgPSAlbGRcbiIsCi0JCSAgICAgICh1bnNpZ25lZCBsb25nKSByZXR2 YWwpOworCQkgICAgICAidGFyZ2V0X3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAo KSA9ICVkXG4iLCByZXR2YWwpOwogICByZXR1cm4gcmV0dmFsOwogfQogCkBA IC0zMzU4LDkgKzMzNTIsOCBAQCBkZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRk cmVzcyAoc3RydWN0IHRhCiAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19z dG9wcGVkX2RhdGFfYWRkcmVzcyAodGFyZ2V0LCBhZGRyKTsKIAogICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRf c3RvcHBlZF9kYXRhX2FkZHJlc3MgKFsweCVseF0pID0gJWxkXG4iLAotCQkg ICAgICAodW5zaWduZWQgbG9uZykqYWRkciwKLQkJICAgICAgKHVuc2lnbmVk IGxvbmcpcmV0dmFsKTsKKwkJICAgICAgInRhcmdldF9zdG9wcGVkX2RhdGFf YWRkcmVzcyAoWzB4JSIgUFJJdVBUUiAiXSkgPSAlZFxuIiwKKwkJICAgICAg KHVpbnRwdHJfdCkqYWRkciwgcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsK IH0KIApAQCAtMzM3NSw5ICszMzY4LDkgQEAgZGVidWdfdG9fd2F0Y2hwb2lu dF9hZGRyX3dpdGhpbl9yYW5nZSAocwogCQkJCQkJCSBzdGFydCwgbGVuZ3Ro KTsKIAogICBmcHJpbnRmX2ZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAg InRhcmdldF93YXRjaHBvaW50X2FkZHJfd2l0aGluX3JhbmdlICgweCVseCwg MHglbHgsICVkKSA9ICVkXG4iLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIGFk ZHIsICh1bnNpZ25lZCBsb25nKSBzdGFydCwgbGVuZ3RoLAotCQkgICAgcmV0 dmFsKTsKKwkJICAgICJ0YXJnZXRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9y YW5nZSAoMHglIiBQUkl1UFRSIFwKKwkJICAgICIsIDB4JSIgUFJJdVBUUiAi LCAlZCkgPSAlZFxuIiwKKwkJICAgICh1aW50cHRyX3QpIGFkZHIsICh1aW50 cHRyX3QpIHN0YXJ0LCBsZW5ndGgsIHJldHZhbCk7CiAgIHJldHVybiByZXR2 YWw7CiB9CiAKQEAgLTMzOTAsOSArMzM4Myw5IEBAIGRlYnVnX3RvX2luc2Vy dF9od19icmVha3BvaW50IChzdHJ1Y3QgZ2QKICAgcmV0dmFsID0gZGVidWdf dGFyZ2V0LnRvX2luc2VydF9od19icmVha3BvaW50IChnZGJhcmNoLCBicF90 Z3QpOwogCiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKLQkJ ICAgICAgInRhcmdldF9pbnNlcnRfaHdfYnJlYWtwb2ludCAoMHglbHgsIHh4 eCkgPSAlbGRcbiIsCi0JCSAgICAgICh1bnNpZ25lZCBsb25nKSBicF90Z3Qt PnBsYWNlZF9hZGRyZXNzLAotCQkgICAgICAodW5zaWduZWQgbG9uZykgcmV0 dmFsKTsKKwkJICAgICAgInRhcmdldF9pbnNlcnRfaHdfYnJlYWtwb2ludCAo MHglIiBQUkl1UFRSIFwKKwkJICAgICAgIiwgeHh4KSA9ICVkXG4iLAorCQkg ICAgICAodWludHB0cl90KSBicF90Z3QtPnBsYWNlZF9hZGRyZXNzLCByZXR2 YWwpOwogICByZXR1cm4gcmV0dmFsOwogfQogCkBAIC0zNDA1LDkgKzMzOTgs OSBAQCBkZWJ1Z190b19yZW1vdmVfaHdfYnJlYWtwb2ludCAoc3RydWN0IGdk CiAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19yZW1vdmVfaHdfYnJlYWtw b2ludCAoZ2RiYXJjaCwgYnBfdGd0KTsKIAogICBmcHJpbnRmX3VuZmlsdGVy ZWQgKGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRfcmVtb3ZlX2h3X2Jy ZWFrcG9pbnQgKDB4JWx4LCB4eHgpID0gJWxkXG4iLAotCQkgICAgICAodW5z aWduZWQgbG9uZykgYnBfdGd0LT5wbGFjZWRfYWRkcmVzcywKLQkJICAgICAg KHVuc2lnbmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgICJ0YXJnZXRfcmVt b3ZlX2h3X2JyZWFrcG9pbnQgKDB4JSIgUFJJdVBUUiBcCisJCSAgICAgICIs IHh4eCkgPSAlZFxuIiwKKwkJICAgICAgKHVpbnRwdHJfdCkgYnBfdGd0LT5w bGFjZWRfYWRkcmVzcywgcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0K IApAQCAtMzQyMCw5ICszNDEzLDEwIEBAIGRlYnVnX3RvX2luc2VydF93YXRj aHBvaW50IChDT1JFX0FERFIgYWQKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0 LnRvX2luc2VydF93YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUsIGNvbmQp OwogCiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKLQkJICAg ICAgInRhcmdldF9pbnNlcnRfd2F0Y2hwb2ludCAoMHglbHgsICVkLCAlZCwg MHglbGQpID0gJWxkXG4iLAotCQkgICAgICAodW5zaWduZWQgbG9uZykgYWRk ciwgbGVuLCB0eXBlLCAodW5zaWduZWQgbG9uZykgY29uZCwKLQkJICAgICAg KHVuc2lnbmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgICJ0YXJnZXRfaW5z ZXJ0X3dhdGNocG9pbnQgKDB4JSIgUFJJdVBUUiBcCisJCSAgICAgICIsICVk LCAlZCwgMHglIiBQUkl1UFRSICIpID0gJWRcbiIsCisJCSAgICAgICh1aW50 cHRyX3QpIGFkZHIsIGxlbiwgdHlwZSwgKHVpbnRwdHJfdCkgY29uZCwKKwkJ ICAgICAgcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIApAQCAtMzQz NSw5ICszNDI5LDkgQEAgZGVidWdfdG9fcmVtb3ZlX3dhdGNocG9pbnQgKENP UkVfQUREUiBhZAogICByZXR2YWwgPSBkZWJ1Z190YXJnZXQudG9fcmVtb3Zl X3dhdGNocG9pbnQgKGFkZHIsIGxlbiwgdHlwZSwgY29uZCk7CiAKICAgZnBy aW50Zl91bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAgICAidGFyZ2V0 X3JlbW92ZV93YXRjaHBvaW50ICgweCVseCwgJWQsICVkLCAweCVsZCkgPSAl bGRcbiIsCi0JCSAgICAgICh1bnNpZ25lZCBsb25nKSBhZGRyLCBsZW4sIHR5 cGUsICh1bnNpZ25lZCBsb25nKSBjb25kLAotCQkgICAgICAodW5zaWduZWQg bG9uZykgcmV0dmFsKTsKKwkJICAgICAgInRhcmdldF9yZW1vdmVfd2F0Y2hw b2ludCAoMHglIiBQUkl1UFRSICIsICVkLCAlZCwgMHglIiBQUkl1UFRSIFwK KwkJICAgICAgIikgPSAlZFxuIiwKKwkJICAgICAgKHVpbnRwdHJfdCkgYWRk ciwgbGVuLCB0eXBlLCAodWludHB0cl90KSBjb25kLCByZXR2YWwpOwogICBy ZXR1cm4gcmV0dmFsOwogfQogCkluZGV4OiBnZGIvZ2Ric2VydmVyL3NlcnZl ci5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6IC9jdnMvc3Jj L3NyYy9nZGIvZ2Ric2VydmVyL3NlcnZlci5jLHYKcmV0cmlldmluZyByZXZp c2lvbiAxLjEyNQpkaWZmIC11IC1wIC1yMS4xMjUgc2VydmVyLmMKLS0tIGdk Yi9nZGJzZXJ2ZXIvc2VydmVyLmMJNyBKdWwgMjAxMCAxNjoxNDowNCAtMDAw MAkxLjEyNQorKysgZ2RiL2dkYnNlcnZlci9zZXJ2ZXIuYwkxMiBKdWwgMjAx MCAwOTo1MDoxMyAtMDAwMApAQCAtMTUzOSw3ICsxNTM5LDExIEBAIGhhbmRs ZV9xdWVyeSAoY2hhciAqb3duX2J1ZiwgaW50IHBhY2tldF8KIAogICAgICAg aWYgKGVyciA9PSAwKQogCXsKKyNpZmRlZiBfV0lOMzIKKwkgIHNwcmludGYg KG93bl9idWYsICIlSTY0ZCIsIGFkZHJlc3MpOworI2Vsc2UKIAkgIHNwcmlu dGYgKG93bl9idWYsICIlbGx4IiwgYWRkcmVzcyk7CisjZW5kaWYKIAkgIHJl dHVybjsKIAl9CiAgICAgICBlbHNlIGlmIChlcnIgPiAwKQpAQCAtMTU2Myw3 ICsxNTY3LDExIEBAIGhhbmRsZV9xdWVyeSAoY2hhciAqb3duX2J1ZiwgaW50 IHBhY2tldF8KICAgICAgIG4gPSAoKnRoZV90YXJnZXQtPmdldF90aWJfYWRk cmVzcykgKHB0aWQsICZ0bGIpOwogICAgICAgaWYgKG4gPT0gMSkKIAl7Cisj aWZkZWYgX1dJTjMyCisJICBzcHJpbnRmIChvd25fYnVmLCAiJUk2NGQiLCB0 bGIpOworI2Vsc2UKIAkgIHNwcmludGYgKG93bl9idWYsICIlbGx4IiwgdGxi KTsKKyNlbmRpZgogCSAgcmV0dXJuOwogCX0KICAgICAgIGVsc2UgaWYgKG4g PT0gMCkK --0015174be934d93c8d048b2f5ea4--