From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7904 invoked by alias); 16 Jul 2010 17:18:33 -0000 Received: (qmail 7890 invoked by uid 22791); 16 Jul 2010 17:18:33 -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 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; Fri, 16 Jul 2010 17:18:22 +0000 Received: by ewy28 with SMTP id 28so901205ewy.0 for ; Fri, 16 Jul 2010 10:18:19 -0700 (PDT) MIME-Version: 1.0 Received: by 10.213.19.6 with SMTP id y6mr1379473eba.7.1279300699443; Fri, 16 Jul 2010 10:18:19 -0700 (PDT) Received: by 10.213.11.1 with HTTP; Fri, 16 Jul 2010 10:18:19 -0700 (PDT) In-Reply-To: References: Date: Fri, 16 Jul 2010 17:18:00 -0000 Message-ID: Subject: Re: [PATCH] fix build failure for win64, revise some format strings From: Ozkan Sezer To: Tom Tromey Cc: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary=0015174be074c0545d048b84678f 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/msg00245.txt.bz2 --0015174be074c0545d048b84678f Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2393 On Fri, Jul 16, 2010 at 6:35 PM, Tom Tromey wrote: >>>>>> "Ozkan" =3D=3D Ozkan Sezer writes: > > Ozkan> PING > Ozkan> Can someone please review this patch? (Win64 fails to build for a = week.) > > Sorry about that. =A0I was hoping someone else would do this ;-) > > Thanks for pinging. > Thanks for the suggestion, seems like an easier way, indeed. > I think it would be better to change those places to use > host_address_to_string. =A0E.g., change from: > > =A0fprintf_unfiltered (gdb_stdlog, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"target_insert_breakpoint (0x%= lx, xxx) =3D %ld\n", > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) bp_tgt->placed= _address, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) retval); > > to > > =A0fprintf_unfiltered (gdb_stdlog, > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"target_insert_breakpoint (%s,= xxx) =3D %ld\n", > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0host_address_to_string (bp_tgt= ->placed_address), > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned long) retval); > > > This lets us avoid dealing with the gnulib changes, etc. > > Tom > I cooked the attached patch. Tested by compiling for win64 (--host=3Dx86_64-w64-mingw32 --disable-nls --disable-multilib), for i686-linux (--disable-nls --disable-multilib) and for win32 (--host=3Di686-w64-mingw32 --disable-nls --disable-multilib). OK for apply? gdb/ * target.c (debug_to_insert_breakpoint): For printing pointer-wide (address) variables, use host_address_to_string() and %s instead of casting to unsigned long and %ld. (debug_to_remove_breakpoint): Likewise. (debug_to_region_ok_for_hw_watchpoint): Likewise. (debug_to_can_accel_watchpoint_condition): Likewise. (debug_to_stopped_data_address): Likewise. (debug_to_watchpoint_addr_within_range): Likewise. (debug_to_insert_hw_breakpoint): Likewise. (debug_to_remove_hw_breakpoint): Likewise. (debug_to_insert_watchpoint): Likewise. (debug_to_remove_watchpoint): Likewise. gdb/gdbserver/ * server.c (handle_query): For windows, Use %I64d instead of %lld in the sprintf format string. (Note: debug_to_region_ok_for_hw_watchpoint() specifically did not use 0x%lx but only %ld for the addr value. Should I not care, or should I change my patch to use host_address_to_string ((void *) addr) + 2 ... to skip the "0x" instead? -- Ozkan --0015174be074c0545d048b84678f Content-Type: application/octet-stream; name="g1.diff" Content-Disposition: attachment; filename="g1.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gbpa9qj60 Content-length: 11119 Z2RiLwoKCSogdGFyZ2V0LmMgKGRlYnVnX3RvX2luc2VydF9icmVha3BvaW50 KTogRm9yIHByaW50aW5nIHBvaW50ZXItd2lkZQoJKGFkZHJlc3MpIHZhcmlh YmxlcywgdXNlIGhvc3RfYWRkcmVzc190b19zdHJpbmcoKSBhbmQgJXMgaW5z dGVhZCBvZgoJY2FzdGluZyB0byB1bnNpZ25lZCBsb25nIGFuZCAlbGQuCgko ZGVidWdfdG9fcmVtb3ZlX2JyZWFrcG9pbnQpOiBMaWtld2lzZS4KCShkZWJ1 Z190b19yZWdpb25fb2tfZm9yX2h3X3dhdGNocG9pbnQpOiBMaWtld2lzZS4K CShkZWJ1Z190b19jYW5fYWNjZWxfd2F0Y2hwb2ludF9jb25kaXRpb24pOiBM aWtld2lzZS4KCShkZWJ1Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcyk6IExp a2V3aXNlLgoJKGRlYnVnX3RvX3dhdGNocG9pbnRfYWRkcl93aXRoaW5fcmFu Z2UpOiBMaWtld2lzZS4KCShkZWJ1Z190b19pbnNlcnRfaHdfYnJlYWtwb2lu dCk6IExpa2V3aXNlLgoJKGRlYnVnX3RvX3JlbW92ZV9od19icmVha3BvaW50 KTogTGlrZXdpc2UuCgkoZGVidWdfdG9faW5zZXJ0X3dhdGNocG9pbnQpOiBM aWtld2lzZS4KCShkZWJ1Z190b19yZW1vdmVfd2F0Y2hwb2ludCk6IExpa2V3 aXNlLgoKZ2RiL2dkYnNlcnZlci8KCgkqIHNlcnZlci5jIChoYW5kbGVfcXVl cnkpOiBGb3Igd2luZG93cywgVXNlICVJNjRkIGluc3RlYWQgb2YKCSVsbGQg aW4gdGhlIHNwcmludGYgZm9ybWF0IHN0cmluZy4KCkluZGV4OiBnZGIvdGFy Z2V0LmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PQpSQ1MgZmlsZTogL2N2cy9z cmMvc3JjL2dkYi90YXJnZXQuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4y NTkKZGlmZiAtVTggLXAgLXIxLjI1OSB0YXJnZXQuYwotLS0gZ2RiL3Rhcmdl dC5jCTcgSnVsIDIwMTAgMTY6MTU6MTcgLTAwMDAJMS4yNTkKKysrIGdkYi90 YXJnZXQuYwkxNiBKdWwgMjAxMCAxNzowMjo0MCAtMDAwMApAQCAtMzI2NSwz MyArMzI2NSwzMyBAQCBzdGF0aWMgaW50CiBkZWJ1Z190b19pbnNlcnRfYnJl YWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdkYmFyY2gsCiAJCQkgICAgc3Ry dWN0IGJwX3RhcmdldF9pbmZvICpicF90Z3QpCiB7CiAgIGludCByZXR2YWw7 CiAKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX2luc2VydF9icmVha3Bv aW50IChnZGJhcmNoLCBicF90Z3QpOwogCiAgIGZwcmludGZfdW5maWx0ZXJl ZCAoZ2RiX3N0ZGxvZywKLQkJICAgICAgInRhcmdldF9pbnNlcnRfYnJlYWtw b2ludCAoMHglbHgsIHh4eCkgPSAlbGRcbiIsCi0JCSAgICAgICh1bnNpZ25l ZCBsb25nKSBicF90Z3QtPnBsYWNlZF9hZGRyZXNzLAorCQkgICAgICAidGFy Z2V0X2luc2VydF9icmVha3BvaW50ICglcywgeHh4KSA9ICVsZFxuIiwKKwkJ ICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoKHZvaWQgKikgYnBfdGd0 LT5wbGFjZWRfYWRkcmVzcyksCiAJCSAgICAgICh1bnNpZ25lZCBsb25nKSBy ZXR2YWwpOwogICByZXR1cm4gcmV0dmFsOwogfQogCiBzdGF0aWMgaW50CiBk ZWJ1Z190b19yZW1vdmVfYnJlYWtwb2ludCAoc3RydWN0IGdkYmFyY2ggKmdk YmFyY2gsCiAJCQkgICAgc3RydWN0IGJwX3RhcmdldF9pbmZvICpicF90Z3Qp CiB7CiAgIGludCByZXR2YWw7CiAKICAgcmV0dmFsID0gZGVidWdfdGFyZ2V0 LnRvX3JlbW92ZV9icmVha3BvaW50IChnZGJhcmNoLCBicF90Z3QpOwogCiAg IGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywKLQkJICAgICAgInRh cmdldF9yZW1vdmVfYnJlYWtwb2ludCAoMHglbHgsIHh4eCkgPSAlbGRcbiIs Ci0JCSAgICAgICh1bnNpZ25lZCBsb25nKSBicF90Z3QtPnBsYWNlZF9hZGRy ZXNzLAorCQkgICAgICAidGFyZ2V0X3JlbW92ZV9icmVha3BvaW50ICglcywg eHh4KSA9ICVsZFxuIiwKKwkJICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmlu ZyAoKHZvaWQgKikgYnBfdGd0LT5wbGFjZWRfYWRkcmVzcyksCiAJCSAgICAg ICh1bnNpZ25lZCBsb25nKSByZXR2YWwpOwogICByZXR1cm4gcmV0dmFsOwog fQogCiBzdGF0aWMgaW50CiBkZWJ1Z190b19jYW5fdXNlX2h3X2JyZWFrcG9p bnQgKGludCB0eXBlLCBpbnQgY250LCBpbnQgZnJvbV90dHkpCiB7CiAgIGlu dCByZXR2YWw7CkBAIC0zMzEwLDM1ICszMzEwLDM1IEBAIGRlYnVnX3RvX2Nh bl91c2VfaHdfYnJlYWtwb2ludCAoaW50IHR5cGUKIHN0YXRpYyBpbnQKIGRl YnVnX3RvX3JlZ2lvbl9va19mb3JfaHdfd2F0Y2hwb2ludCAoQ09SRV9BRERS IGFkZHIsIGludCBsZW4pCiB7CiAgIENPUkVfQUREUiByZXR2YWw7CiAKICAg cmV0dmFsID0gZGVidWdfdGFyZ2V0LnRvX3JlZ2lvbl9va19mb3JfaHdfd2F0 Y2hwb2ludCAoYWRkciwgbGVuKTsKIAogICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRfcmVnaW9uX29rX2Zvcl9o d193YXRjaHBvaW50ICglbGQsICVsZCkgPSAweCVseFxuIiwKLQkJICAgICAg KHVuc2lnbmVkIGxvbmcpIGFkZHIsCisJCSAgICAgICJ0YXJnZXRfcmVnaW9u X29rX2Zvcl9od193YXRjaHBvaW50ICglcywgJWxkKSA9ICVzXG4iLAorCQkg ICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nICgodm9pZCAqKSBhZGRyKSwK IAkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGxlbiwKLQkJICAgICAgKHVuc2ln bmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgIGhvc3RfYWRkcmVzc190b19z dHJpbmcgKCh2b2lkICopIHJldHZhbCkpOwogICByZXR1cm4gcmV0dmFsOwog fQogCiBzdGF0aWMgaW50CiBkZWJ1Z190b19jYW5fYWNjZWxfd2F0Y2hwb2lu dF9jb25kaXRpb24gKENPUkVfQUREUiBhZGRyLCBpbnQgbGVuLCBpbnQgcncs CiAJCQkJCSBzdHJ1Y3QgZXhwcmVzc2lvbiAqY29uZCkKIHsKICAgaW50IHJl dHZhbDsKIAogICByZXR2YWwgPSBkZWJ1Z190YXJnZXQudG9fY2FuX2FjY2Vs X3dhdGNocG9pbnRfY29uZGl0aW9uIChhZGRyLCBsZW4sIHJ3LCBjb25kKTsK IAogICBmcHJpbnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0JCSAgICAg ICJ0YXJnZXRfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uICgweCVs eCwgJWQsICVkLCAweCVseCkgPSAlbGRcbiIsCi0JCSAgICAgICh1bnNpZ25l ZCBsb25nKSBhZGRyLCBsZW4sIHJ3LCAodW5zaWduZWQgbG9uZykgY29uZCwK LQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgICJ0 YXJnZXRfY2FuX2FjY2VsX3dhdGNocG9pbnRfY29uZGl0aW9uICglcywgJWQs ICVkLCAlcykgPSAlbGRcbiIsCisJCSAgICAgIGhvc3RfYWRkcmVzc190b19z dHJpbmcgKCh2b2lkICopIGFkZHIpLCBsZW4sIHJ3LAorCQkgICAgICBob3N0 X2FkZHJlc3NfdG9fc3RyaW5nIChjb25kKSwgKHVuc2lnbmVkIGxvbmcpIHJl dHZhbCk7CiAgIHJldHVybiByZXR2YWw7CiB9CiAKIHN0YXRpYyBpbnQKIGRl YnVnX3RvX3N0b3BwZWRfYnlfd2F0Y2hwb2ludCAodm9pZCkKIHsKICAgaW50 IHJldHZhbDsKIApAQCAtMzM1Myw5NiArMzM1Myw5NiBAQCBkZWJ1Z190b19z dG9wcGVkX2J5X3dhdGNocG9pbnQgKHZvaWQpCiBzdGF0aWMgaW50CiBkZWJ1 Z190b19zdG9wcGVkX2RhdGFfYWRkcmVzcyAoc3RydWN0IHRhcmdldF9vcHMg KnRhcmdldCwgQ09SRV9BRERSICphZGRyKQogewogICBpbnQgcmV0dmFsOwog CiAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19zdG9wcGVkX2RhdGFfYWRk cmVzcyAodGFyZ2V0LCBhZGRyKTsKIAogICBmcHJpbnRmX3VuZmlsdGVyZWQg KGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRfc3RvcHBlZF9kYXRhX2Fk ZHJlc3MgKFsweCVseF0pID0gJWxkXG4iLAotCQkgICAgICAodW5zaWduZWQg bG9uZykqYWRkciwKKwkJICAgICAgInRhcmdldF9zdG9wcGVkX2RhdGFfYWRk cmVzcyAoWyVzXSkgPSAlbGRcbiIsCisJCSAgICAgIGhvc3RfYWRkcmVzc190 b19zdHJpbmcgKCh2b2lkICopICphZGRyKSwKIAkJICAgICAgKHVuc2lnbmVk IGxvbmcpcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIAogc3RhdGlj IGludAogZGVidWdfdG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAo c3RydWN0IHRhcmdldF9vcHMgKnRhcmdldCwKIAkJCQkgICAgICAgQ09SRV9B RERSIGFkZHIsCiAJCQkJICAgICAgIENPUkVfQUREUiBzdGFydCwgaW50IGxl bmd0aCkKIHsKICAgaW50IHJldHZhbDsKIAogICByZXR2YWwgPSBkZWJ1Z190 YXJnZXQudG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAodGFyZ2V0 LCBhZGRyLAogCQkJCQkJCSBzdGFydCwgbGVuZ3RoKTsKIAogICBmcHJpbnRm X2ZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAgInRhcmdldF93YXRjaHBv aW50X2FkZHJfd2l0aGluX3JhbmdlICgweCVseCwgMHglbHgsICVkKSA9ICVk XG4iLAotCQkgICAgKHVuc2lnbmVkIGxvbmcpIGFkZHIsICh1bnNpZ25lZCBs b25nKSBzdGFydCwgbGVuZ3RoLAotCQkgICAgcmV0dmFsKTsKKwkJICAgICJ0 YXJnZXRfd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5nZSAoJXMsICVzLCAl ZCkgPSAlZFxuIiwKKwkJICAgIGhvc3RfYWRkcmVzc190b19zdHJpbmcgKCh2 b2lkICopIGFkZHIpLAorCQkgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAo KHZvaWQgKikgc3RhcnQpLCBsZW5ndGgsIHJldHZhbCk7CiAgIHJldHVybiBy ZXR2YWw7CiB9CiAKIHN0YXRpYyBpbnQKIGRlYnVnX3RvX2luc2VydF9od19i cmVha3BvaW50IChzdHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCSAgICAg ICBzdHJ1Y3QgYnBfdGFyZ2V0X2luZm8gKmJwX3RndCkKIHsKICAgaW50IHJl dHZhbDsKIAogICByZXR2YWwgPSBkZWJ1Z190YXJnZXQudG9faW5zZXJ0X2h3 X2JyZWFrcG9pbnQgKGdkYmFyY2gsIGJwX3RndCk7CiAKICAgZnByaW50Zl91 bmZpbHRlcmVkIChnZGJfc3RkbG9nLAotCQkgICAgICAidGFyZ2V0X2luc2Vy dF9od19icmVha3BvaW50ICgweCVseCwgeHh4KSA9ICVsZFxuIiwKLQkJICAg ICAgKHVuc2lnbmVkIGxvbmcpIGJwX3RndC0+cGxhY2VkX2FkZHJlc3MsCisJ CSAgICAgICJ0YXJnZXRfaW5zZXJ0X2h3X2JyZWFrcG9pbnQgKCVzLCB4eHgp ID0gJWxkXG4iLAorCQkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nICgo dm9pZCAqKSBicF90Z3QtPnBsYWNlZF9hZGRyZXNzKSwKIAkJICAgICAgKHVu c2lnbmVkIGxvbmcpIHJldHZhbCk7CiAgIHJldHVybiByZXR2YWw7CiB9CiAK IHN0YXRpYyBpbnQKIGRlYnVnX3RvX3JlbW92ZV9od19icmVha3BvaW50IChz dHJ1Y3QgZ2RiYXJjaCAqZ2RiYXJjaCwKIAkJCSAgICAgICBzdHJ1Y3QgYnBf dGFyZ2V0X2luZm8gKmJwX3RndCkKIHsKICAgaW50IHJldHZhbDsKIAogICBy ZXR2YWwgPSBkZWJ1Z190YXJnZXQudG9fcmVtb3ZlX2h3X2JyZWFrcG9pbnQg KGdkYmFyY2gsIGJwX3RndCk7CiAKICAgZnByaW50Zl91bmZpbHRlcmVkIChn ZGJfc3RkbG9nLAotCQkgICAgICAidGFyZ2V0X3JlbW92ZV9od19icmVha3Bv aW50ICgweCVseCwgeHh4KSA9ICVsZFxuIiwKLQkJICAgICAgKHVuc2lnbmVk IGxvbmcpIGJwX3RndC0+cGxhY2VkX2FkZHJlc3MsCisJCSAgICAgICJ0YXJn ZXRfcmVtb3ZlX2h3X2JyZWFrcG9pbnQgKCVzLCB4eHgpID0gJWxkXG4iLAor CQkgICAgICBob3N0X2FkZHJlc3NfdG9fc3RyaW5nICgodm9pZCAqKSBicF90 Z3QtPnBsYWNlZF9hZGRyZXNzKSwKIAkJICAgICAgKHVuc2lnbmVkIGxvbmcp IHJldHZhbCk7CiAgIHJldHVybiByZXR2YWw7CiB9CiAKIHN0YXRpYyBpbnQK IGRlYnVnX3RvX2luc2VydF93YXRjaHBvaW50IChDT1JFX0FERFIgYWRkciwg aW50IGxlbiwgaW50IHR5cGUsCiAJCQkgICAgc3RydWN0IGV4cHJlc3Npb24g KmNvbmQpCiB7CiAgIGludCByZXR2YWw7CiAKICAgcmV0dmFsID0gZGVidWdf dGFyZ2V0LnRvX2luc2VydF93YXRjaHBvaW50IChhZGRyLCBsZW4sIHR5cGUs IGNvbmQpOwogCiAgIGZwcmludGZfdW5maWx0ZXJlZCAoZ2RiX3N0ZGxvZywK LQkJICAgICAgInRhcmdldF9pbnNlcnRfd2F0Y2hwb2ludCAoMHglbHgsICVk LCAlZCwgMHglbGQpID0gJWxkXG4iLAotCQkgICAgICAodW5zaWduZWQgbG9u ZykgYWRkciwgbGVuLCB0eXBlLCAodW5zaWduZWQgbG9uZykgY29uZCwKLQkJ ICAgICAgKHVuc2lnbmVkIGxvbmcpIHJldHZhbCk7CisJCSAgICAgICJ0YXJn ZXRfaW5zZXJ0X3dhdGNocG9pbnQgKCVzLCAlZCwgJWQsICVzKSA9ICVsZFxu IiwKKwkJICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0cmluZyAoKHZvaWQgKikg YWRkciksIGxlbiwgdHlwZSwKKwkJICAgICAgaG9zdF9hZGRyZXNzX3RvX3N0 cmluZyAoY29uZCksICh1bnNpZ25lZCBsb25nKSByZXR2YWwpOwogICByZXR1 cm4gcmV0dmFsOwogfQogCiBzdGF0aWMgaW50CiBkZWJ1Z190b19yZW1vdmVf d2F0Y2hwb2ludCAoQ09SRV9BRERSIGFkZHIsIGludCBsZW4sIGludCB0eXBl LAogCQkJICAgIHN0cnVjdCBleHByZXNzaW9uICpjb25kKQogewogICBpbnQg cmV0dmFsOwogCiAgIHJldHZhbCA9IGRlYnVnX3RhcmdldC50b19yZW1vdmVf d2F0Y2hwb2ludCAoYWRkciwgbGVuLCB0eXBlLCBjb25kKTsKIAogICBmcHJp bnRmX3VuZmlsdGVyZWQgKGdkYl9zdGRsb2csCi0JCSAgICAgICJ0YXJnZXRf cmVtb3ZlX3dhdGNocG9pbnQgKDB4JWx4LCAlZCwgJWQsIDB4JWxkKSA9ICVs ZFxuIiwKLQkJICAgICAgKHVuc2lnbmVkIGxvbmcpIGFkZHIsIGxlbiwgdHlw ZSwgKHVuc2lnbmVkIGxvbmcpIGNvbmQsCi0JCSAgICAgICh1bnNpZ25lZCBs b25nKSByZXR2YWwpOworCQkgICAgICAidGFyZ2V0X3JlbW92ZV93YXRjaHBv aW50ICglcywgJWQsICVkLCAlcykgPSAlbGRcbiIsCisJCSAgICAgIGhvc3Rf YWRkcmVzc190b19zdHJpbmcgKCh2b2lkICopIGFkZHIpLCBsZW4sIHR5cGUs CisJCSAgICAgIGhvc3RfYWRkcmVzc190b19zdHJpbmcgKGNvbmQpLCAodW5z aWduZWQgbG9uZykgcmV0dmFsKTsKICAgcmV0dXJuIHJldHZhbDsKIH0KIAog c3RhdGljIHZvaWQKIGRlYnVnX3RvX3Rlcm1pbmFsX2luaXQgKHZvaWQpCiB7 CiAgIGRlYnVnX3RhcmdldC50b190ZXJtaW5hbF9pbml0ICgpOwogCkluZGV4 OiBnZGIvZ2Ric2VydmVyL3NlcnZlci5jCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT0KUkNTIGZpbGU6IC9jdnMvc3JjL3NyYy9nZGIvZ2Ric2VydmVyL3NlcnZl ci5jLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEyNQpkaWZmIC1VOCAtcCAt cjEuMTI1IHNlcnZlci5jCi0tLSBnZGIvZ2Ric2VydmVyL3NlcnZlci5jCTcg SnVsIDIwMTAgMTY6MTQ6MDQgLTAwMDAJMS4xMjUKKysrIGdkYi9nZGJzZXJ2 ZXIvc2VydmVyLmMJMTYgSnVsIDIwMTAgMTc6MDI6NDIgLTAwMDAKQEAgLTE1 MzQsMTcgKzE1MzQsMjEgQEAgaGFuZGxlX3F1ZXJ5IChjaGFyICpvd25fYnVm LCBpbnQgcGFja2V0XwogCSAgICBlcnIgPSAyOwogCSAgZWxzZQogCSAgICBl cnIgPSB0aGVfdGFyZ2V0LT5nZXRfdGxzX2FkZHJlc3MgKHRocmVhZCwgcGFy dHNbMF0sIHBhcnRzWzFdLAogCQkJCQkgICAgICAgJmFkZHJlc3MpOwogCX0K IAogICAgICAgaWYgKGVyciA9PSAwKQogCXsKKyNpZmRlZiBfV0lOMzIKKwkg IHNwcmludGYgKG93bl9idWYsICIlSTY0ZCIsIGFkZHJlc3MpOworI2Vsc2UK IAkgIHNwcmludGYgKG93bl9idWYsICIlbGx4IiwgYWRkcmVzcyk7CisjZW5k aWYKIAkgIHJldHVybjsKIAl9CiAgICAgICBlbHNlIGlmIChlcnIgPiAwKQog CXsKIAkgIHdyaXRlX2VubiAob3duX2J1Zik7CiAJICByZXR1cm47CiAJfQog CkBAIC0xNTU4LDE3ICsxNTYyLDIxIEBAIGhhbmRsZV9xdWVyeSAoY2hhciAq b3duX2J1ZiwgaW50IHBhY2tldF8KICAgICAgIGNoYXIgKmFubmV4OwogICAg ICAgaW50IG47CiAgICAgICBDT1JFX0FERFIgdGxiOwogICAgICAgcHRpZF90 IHB0aWQgPSByZWFkX3B0aWQgKG93bl9idWYgKyAxMiwgJmFubmV4KTsKIAog ICAgICAgbiA9ICgqdGhlX3RhcmdldC0+Z2V0X3RpYl9hZGRyZXNzKSAocHRp ZCwgJnRsYik7CiAgICAgICBpZiAobiA9PSAxKQogCXsKKyNpZmRlZiBfV0lO MzIKKwkgIHNwcmludGYgKG93bl9idWYsICIlSTY0ZCIsIHRsYik7CisjZWxz ZQogCSAgc3ByaW50ZiAob3duX2J1ZiwgIiVsbHgiLCB0bGIpOworI2VuZGlm CiAJICByZXR1cm47CiAJfQogICAgICAgZWxzZSBpZiAobiA9PSAwKQogCXsK IAkgIHdyaXRlX2VubiAob3duX2J1Zik7CiAJICByZXR1cm47CiAJfQogICAg ICAgcmV0dXJuOwo= --0015174be074c0545d048b84678f--