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 22FE53858C2C for ; Fri, 8 Jul 2022 08:42:03 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 22FE53858C2C 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 C91451FE6C; Fri, 8 Jul 2022 08:42:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1657269721; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=suMA6GhpKMElmg3CpBtgxRF1knFAwjEyEnjD9fvrynU=; b=PtkegSZCaoil8o9cbnDN3/+1Vc0B3ub7QBlz8qug+42/XhTczoqQ9auzVh8u1qgJ9viY4+ KaIN0jGTRd0Ukzx7iAbNKtVo2JYCAaJE1Dyw7+kELGQP7UhbJDQvijnkYTNhKGpEhudcB5 HmznIooGoCtPuftK47a6jFrMKASZUwQ= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1657269721; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=suMA6GhpKMElmg3CpBtgxRF1knFAwjEyEnjD9fvrynU=; b=qdPqPQH+KcgU8sv7d2yB9n3CqPJnQqVWW4wco8olnLJiUE08sAG5c5APhbTDWXqtC07Mb2 2y5rAeXyQWMRd/Dg== 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 AE54A13A80; Fri, 8 Jul 2022 08:42:01 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id lRGmKdntx2LMNAAAMHmgww (envelope-from ); Fri, 08 Jul 2022 08:42:01 +0000 Content-Type: multipart/mixed; boundary="------------HXZU8MgD0lYnjktzyvuiwoAi" Message-ID: Date: Fri, 8 Jul 2022 10:42:01 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Subject: Re: [PATCH 3/3] lto-plugin: implement LDPT_GET_API_VERSION Content-Language: en-US To: Rui Ueyama Cc: Richard Biener , Alexander Monakov , GCC Patches References: <803a0290-3909-b9c5-2461-b1740a00c63a@suse.cz> <146a46f1-3a56-48c5-386f-c15633cc6781@ispras.ru> <37b52d36-d1dd-f291-0baa-0cf670493692@suse.cz> <4e3df681-9523-4781-d324-9a6e230f495a@suse.cz> <3dc13790-a22d-c4d6-6cfe-ab9b567968ff@suse.cz> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_LOTSOFHASH, NICE_REPLY_A, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) 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, 08 Jul 2022 08:42:07 -0000 This is a multi-part message in MIME format. --------------HXZU8MgD0lYnjktzyvuiwoAi Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Hi. All right, there's updated version of the patch that reflects the following suggestions: 1) strings are used for version identification 2) thread-safe API version (1) is not used if target does not support locking via pthreads Patch can bootstrap on x86_64-linux-gnu and survives regression tests. Ready to be installed? Thanks, Martin On 7/7/22 04:19, Rui Ueyama wrote: > On Mon, Jul 4, 2022 at 10:17 PM Martin Liška > wrote: > > On 7/1/22 08:36, Richard Biener wrote: > > On Thu, Jun 30, 2022 at 10:42 AM Martin Liška > wrote: > >> > >> On 6/30/22 08:43, Rui Ueyama wrote: > >>> Thanks Martin for creating this patch. > >> > >> You're welcome. > >> > >>> > >>> Here is a preliminary change for the mold side: https://github.com/rui314/mold/commit/9ad49d1c556bc963d06cca8233535183490de605 > > >>> > >>> Overall the API is looking fine, > >> > >> Good then! > >> > >>> though it is not clear what kind of value is expected as a linker version. A linker version is not a single unsigned integer but something like "1.3.0". Something like "1.3.0-rc2" can also be a linker version. So I don't think we can represent a linker version as a single integer. > >> > >> Well, you can use the same what we use GCC_VERSION (plugin_version): > >> > >> 1000 * MAJOR + MINOR > >> > >> Let me adjust the documentation of the API. > > > > Hmm, but then why not go back to the original suggestion merging > > linker_identifier and linker_version into > > a single string.  That of course puts the burden of parsing to the > > consumer - still that's probably better > > than imposing the constraint of encoding the version in an unsigned > > integer.  Alternatively easing > > parsing by separating out the version in a string would be possible as > > well (but then you'd have > > to care for 1.3.0-rc2+gitab4316174 or so, not sure what the advantage > > over putting everything in > > the identifier would be). > > I'm fine with the suggested 2 strings (linker_identifier and linker_version). > > Does it work for you Rui? > > > Yes. >   > > Cheers, > Martin > > > > > You usually cannot rely on a version anyway since distributors usually > > apply patches. > > > >> Richi: May I install the patch? > > > > Let's sort out the version thing and consider simplifying the API. > > > > Richard. > > > >> Thanks, > >> Martin > >> > >>> > >>> On Mon, Jun 20, 2022 at 9:01 PM Martin Liška >> wrote: > >>> > >>>     On 6/20/22 11:35, Richard Biener wrote: > >>>     > I think this is OK.  Can we get buy-in from mold people? > >>> > >>>     Sure, I've just pinged Rui: > >>>     https://github.com/rui314/mold/issues/454#issuecomment-1160419030 > > >>> > >>>     Martin > >>> > --------------HXZU8MgD0lYnjktzyvuiwoAi Content-Type: text/x-patch; charset=UTF-8; name="0001-lto-plugin-implement-LDPT_GET_API_VERSION.patch" Content-Disposition: attachment; filename="0001-lto-plugin-implement-LDPT_GET_API_VERSION.patch" Content-Transfer-Encoding: base64 RnJvbSBjMTA1ZWUwNTQzOTkyOWYxYzFmZDIyZDE1ZjU2Y2YzOThiNWE4YTBkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBNb24sIDE2IE1heSAyMDIyIDE0OjAxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g bHRvLXBsdWdpbjogaW1wbGVtZW50IExEUFRfR0VUX0FQSV9WRVJTSU9OCgppbmNsdWRlL0No YW5nZUxvZzoKCgkqIHBsdWdpbi1hcGkuaCAoZW51bSBsaW5rZXJfYXBpX3ZlcnNpb24pOiBO ZXcgZW51bS4KCShsZF9wbHVnaW5fZ2V0X2FwaV92ZXJzaW9uKTogTmV3LgoJKGVudW0gbGRf cGx1Z2luX3RhZyk6IEFkZCBMRFBUX0dFVF9BUElfVkVSU0lPTi4KCShzdHJ1Y3QgbGRfcGx1 Z2luX3R2KTogQWRkIHR2X2dldF9hcGlfdmVyc2lvbi4KCmx0by1wbHVnaW4vQ2hhbmdlTG9n OgoKCSogbHRvLXBsdWdpbi5jIChuZWdvdGlhdGVfYXBpX3ZlcnNpb24pOiBOZXcuCgkob25s b2FkKTogTmVnb3RpYXRlIEFQSSB2ZXJzaW9uLgoJKiBNYWtlZmlsZS5hbTogQWRkIC1EQkFT RV9WRVJTSU9OLgoJKiBNYWtlZmlsZS5pbjogUmVnZW5lcmF0ZS4KLS0tCiBpbmNsdWRlL3Bs dWdpbi1hcGkuaCAgICB8IDMyICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGx0 by1wbHVnaW4vTWFrZWZpbGUuYW0gIHwgIDIgKy0KIGx0by1wbHVnaW4vTWFrZWZpbGUuaW4g IHwgIDIgKy0KIGx0by1wbHVnaW4vbHRvLXBsdWdpbi5jIHwgNDIgKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysKIDQgZmlsZXMgY2hhbmdlZCwgNzYgaW5zZXJ0 aW9ucygrKSwgMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9pbmNsdWRlL3BsdWdpbi1h cGkuaCBiL2luY2x1ZGUvcGx1Z2luLWFwaS5oCmluZGV4IDhhZWJlMmZmMjY3Li4xZGVkYTY4 MDA4MSAxMDA2NDQKLS0tIGEvaW5jbHVkZS9wbHVnaW4tYXBpLmgKKysrIGIvaW5jbHVkZS9w bHVnaW4tYXBpLmgKQEAgLTQ4Myw2ICs0ODMsMzYgQEAgZW51bSBsZF9wbHVnaW5fbGV2ZWwK ICAgTERQTF9GQVRBTAogfTsKIAorLyogQ29udHJhY3QgYmV0d2VlbiBhIHBsdWctaW4gYW5k IGEgbGlua2VyLiAgKi8KKworZW51bSBsaW5rZXJfYXBpX3ZlcnNpb24KK3sKKyAgIC8qIFRo ZSBsaW5rZXIvcGx1Z2luIGRvIG5vdCBpbXBsZW1lbnQgYW55IG9mIHRoZSBBUEkgbGV2ZWxz IGJlbG93LCB0aGUgQVBJCisgICAgICAgaXMgZGV0ZXJtaW5lZCBzb2xlbHkgdmlhIHRoZSB0 cmFuc2ZlciB2ZWN0b3IuICAqLworICAgTEFQSV9VTlNQRUNJRklFRCA9IDAsCisKKyAgIC8q IEFQSSBsZXZlbCB2MS4gIFRoZSBsaW5rZXIgcHJvdmlkZXMgZ2V0X3N5bWJvbHNfdjMsIGFk ZF9zeW1ib2xzX3YyLAorICAgICAgdGhlIHBsdWdpbiB3aWxsIHVzZSB0aGF0IGFuZCBub3Qg YW55IGxvd2VyIHZlcnNpb25zLgorICAgICAgY2xhaW1fZmlsZSBpcyB0aHJlYWQtc2FmZSBv biB0aGUgcGx1Z2luIHNpZGUgYW5kCisgICAgICBhZGRfc3ltYm9scyBvbiB0aGUgbGlua2Vy IHNpZGUuICAqLworICAgTEFQSV9WMSA9IDEKK307CisKKy8qIFRoZSBsaW5rZXIncyBpbnRl cmZhY2UgZm9yIEFQSSB2ZXJzaW9uIG5lZ290aWF0aW9uLiAgQSBwbHVnLWluIGNhbGxzCisg IHRoZSBmdW5jdGlvbiAod2l0aCBpdHMgSURFTlRJRklFUiBhbmQgVkVSU0lPTiksIHBsdXMg bWluaW1hbCBhbmQgbWF4aW1hbAorICB2ZXJzaW9uIG9mIGxpbmtlcl9hcGlfdmVyc2lvbiBp cyBwcm92aWRlZC4gIExpbmtlciB0aGVuIHJldHVybnMgc2VsZWN0ZWQKKyAgQVBJIHZlcnNp b24gYW5kIHByb3ZpZGVzIGl0cyBJREVOVElGSUVSIGFuZCBWRVJTSU9OLgorICBJZGVudGlm aWVyIHBvaW50ZXJzIHJlbWFpbiB2YWxpZCBhcyBsb25nIGFzIHRoZSBwbHVnaW4gaXMgbG9h ZGVkLiAgKi8KKwordHlwZWRlZgorZW51bSBsaW5rZXJfYXBpX3ZlcnNpb24KKygqbGRfcGx1 Z2luX2dldF9hcGlfdmVyc2lvbikgKGNvbnN0IGNoYXIgKnBsdWdpbl9pZGVudGlmaWVyLAor CQkJICAgICAgY29uc3QgY2hhciAqcGx1Z2luX3ZlcnNpb24sCisJCQkgICAgICBlbnVtIGxp bmtlcl9hcGlfdmVyc2lvbiBtaW5pbWFsX2FwaV9zdXBwb3J0ZWQsCisJCQkgICAgICBlbnVt IGxpbmtlcl9hcGlfdmVyc2lvbiBtYXhpbWFsX2FwaV9zdXBwb3J0ZWQsCisJCQkgICAgICBj b25zdCBjaGFyICoqbGlua2VyX2lkZW50aWZpZXIsCisJCQkgICAgICBjb25zdCBjaGFyICoq bGlua2VyX3ZlcnNpb24pOworCiAvKiBWYWx1ZXMgZm9yIHRoZSB0dl90YWcgZmllbGQgb2Yg dGhlIHRyYW5zZmVyIHZlY3Rvci4gICovCiAKIGVudW0gbGRfcGx1Z2luX3RhZwpAQCAtNTIx LDYgKzU1MSw3IEBAIGVudW0gbGRfcGx1Z2luX3RhZwogICBMRFBUX1JFR0lTVEVSX05FV19J TlBVVF9IT09LLAogICBMRFBUX0dFVF9XUkFQX1NZTUJPTFMsCiAgIExEUFRfQUREX1NZTUJP TFNfVjIsCisgIExEUFRfR0VUX0FQSV9WRVJTSU9OLAogfTsKIAogLyogVGhlIHBsdWdpbiB0 cmFuc2ZlciB2ZWN0b3IuICAqLwpAQCAtNTU2LDYgKzU4Nyw3IEBAIHN0cnVjdCBsZF9wbHVn aW5fdHYKICAgICBsZF9wbHVnaW5fZ2V0X2lucHV0X3NlY3Rpb25fc2l6ZSB0dl9nZXRfaW5w dXRfc2VjdGlvbl9zaXplOwogICAgIGxkX3BsdWdpbl9yZWdpc3Rlcl9uZXdfaW5wdXQgdHZf cmVnaXN0ZXJfbmV3X2lucHV0OwogICAgIGxkX3BsdWdpbl9nZXRfd3JhcF9zeW1ib2xzIHR2 X2dldF93cmFwX3N5bWJvbHM7CisgICAgbGRfcGx1Z2luX2dldF9hcGlfdmVyc2lvbiB0dl9n ZXRfYXBpX3ZlcnNpb247CiAgIH0gdHZfdTsKIH07CiAKZGlmZiAtLWdpdCBhL2x0by1wbHVn aW4vTWFrZWZpbGUuYW0gYi9sdG8tcGx1Z2luL01ha2VmaWxlLmFtCmluZGV4IDgxMzYyZWFm YzM2Li40ODI5NDZlNGRkNSAxMDA2NDQKLS0tIGEvbHRvLXBsdWdpbi9NYWtlZmlsZS5hbQor KysgYi9sdG8tcGx1Z2luL01ha2VmaWxlLmFtCkBAIC04LDcgKzgsNyBAQCB0YXJnZXRfbm9u Y2Fub25pY2FsIDo9IEB0YXJnZXRfbm9uY2Fub25pY2FsQAogbGliZXhlY3N1YmRpciA6PSAk KGxpYmV4ZWNkaXIpL2djYy8kKHJlYWxfdGFyZ2V0X25vbmNhbm9uaWNhbCkvJChnY2NfdmVy c2lvbikkKGFjY2VsX2Rpcl9zdWZmaXgpCiAKIEFNX0NQUEZMQUdTID0gLUkkKHRvcF9zcmNk aXIpLy4uL2luY2x1ZGUgJChERUZTKQotQU1fQ0ZMQUdTID0gQGFjX2x0b19wbHVnaW5fd2Fy bl9jZmxhZ3NAICQoQ0VUX0hPU1RfRkxBR1MpCitBTV9DRkxBR1MgPSBAYWNfbHRvX3BsdWdp bl93YXJuX2NmbGFnc0AgJChDRVRfSE9TVF9GTEFHUykgLURCQVNFX1ZFUlNJT049JyIkKGdj Y192ZXJzaW9uKSInCiAjIFRoZSBwbHVnLWluIGRlcGVuZHMgb24gcHRocmVhZHMuCiBBTV9M REZMQUdTID0gLXB0aHJlYWQgQGFjX2x0b19wbHVnaW5fbGRmbGFnc0AKIEFNX0xJQlRPT0xG TEFHUyA9IC0tdGFnPWRpc2FibGUtc3RhdGljCmRpZmYgLS1naXQgYS9sdG8tcGx1Z2luL01h a2VmaWxlLmluIGIvbHRvLXBsdWdpbi9NYWtlZmlsZS5pbgppbmRleCAyMDMzZGQ5YjdjMi4u OTQ1M2JjN2Q2MDcgMTAwNjQ0Ci0tLSBhL2x0by1wbHVnaW4vTWFrZWZpbGUuaW4KKysrIGIv bHRvLXBsdWdpbi9NYWtlZmlsZS5pbgpAQCAtMzQzLDcgKzM0Myw3IEBAIEFVVE9NQUtFX09Q VElPTlMgPSBuby1kZXBlbmRlbmNpZXMKIGdjY192ZXJzaW9uIDo9ICQoc2hlbGwgQGdldF9n Y2NfYmFzZV92ZXJAICQodG9wX3NyY2RpcikvLi4vZ2NjL0JBU0UtVkVSKQogbGliZXhlY3N1 YmRpciA6PSAkKGxpYmV4ZWNkaXIpL2djYy8kKHJlYWxfdGFyZ2V0X25vbmNhbm9uaWNhbCkv JChnY2NfdmVyc2lvbikkKGFjY2VsX2Rpcl9zdWZmaXgpCiBBTV9DUFBGTEFHUyA9IC1JJCh0 b3Bfc3JjZGlyKS8uLi9pbmNsdWRlICQoREVGUykKLUFNX0NGTEFHUyA9IEBhY19sdG9fcGx1 Z2luX3dhcm5fY2ZsYWdzQCAkKENFVF9IT1NUX0ZMQUdTKQorQU1fQ0ZMQUdTID0gQGFjX2x0 b19wbHVnaW5fd2Fybl9jZmxhZ3NAICQoQ0VUX0hPU1RfRkxBR1MpIC1EQkFTRV9WRVJTSU9O PSciJChnY2NfdmVyc2lvbikiJwogIyBUaGUgcGx1Zy1pbiBkZXBlbmRzIG9uIHB0aHJlYWRz LgogQU1fTERGTEFHUyA9IC1wdGhyZWFkIEBhY19sdG9fcGx1Z2luX2xkZmxhZ3NACiBBTV9M SUJUT09MRkxBR1MgPSAtLXRhZz1kaXNhYmxlLXN0YXRpYwpkaWZmIC0tZ2l0IGEvbHRvLXBs dWdpbi9sdG8tcGx1Z2luLmMgYi9sdG8tcGx1Z2luL2x0by1wbHVnaW4uYwppbmRleCA3OTI3 ZGNhNjBhNC4uYWFkMTdiNDAzZTEgMTAwNjQ0Ci0tLSBhL2x0by1wbHVnaW4vbHRvLXBsdWdp bi5jCisrKyBiL2x0by1wbHVnaW4vbHRvLXBsdWdpbi5jCkBAIC0xODAsNiArMTgwLDEwIEBA IHN0YXRpYyBsZF9wbHVnaW5fYWRkX2lucHV0X2ZpbGUgYWRkX2lucHV0X2ZpbGU7CiBzdGF0 aWMgbGRfcGx1Z2luX2FkZF9pbnB1dF9saWJyYXJ5IGFkZF9pbnB1dF9saWJyYXJ5Owogc3Rh dGljIGxkX3BsdWdpbl9tZXNzYWdlIG1lc3NhZ2U7CiBzdGF0aWMgbGRfcGx1Z2luX2FkZF9z eW1ib2xzIGFkZF9zeW1ib2xzLCBhZGRfc3ltYm9sc192MjsKK3N0YXRpYyBsZF9wbHVnaW5f Z2V0X2FwaV92ZXJzaW9uIGdldF9hcGlfdmVyc2lvbjsKKworLyogQnkgZGVmYXVsdCwgdXNl IHZlcnNpb24gTEFQSV9VTlNQRUNJRklFRCBpZiB0aGVyZSBpcyBub3QgbmVnb3RpYXRpb24u ICAqLworc3RhdGljIGVudW0gbGlua2VyX2FwaV92ZXJzaW9uIGFwaV92ZXJzaW9uID0gTEFQ SV9VTlNQRUNJRklFRDsKIAogc3RhdGljIHN0cnVjdCBwbHVnaW5fZmlsZV9pbmZvICpjbGFp bWVkX2ZpbGVzID0gTlVMTDsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgbnVtX2NsYWltZWRfZmls ZXMgPSAwOwpAQCAtMTQyOCw2ICsxNDMyLDM4IEBAIHByb2Nlc3Nfb3B0aW9uIChjb25zdCBj aGFyICpvcHRpb24pCiAgIHZlcmJvc2UgPSB2ZXJib3NlIHx8IGRlYnVnOwogfQogCisvKiBO ZWdvdGlhdGUgbGlua2VyIEFQSSB2ZXJzaW9uLiAgKi8KKworc3RhdGljIHZvaWQKK25lZ290 aWF0ZV9hcGlfdmVyc2lvbiAodm9pZCkKK3sKKyAgY29uc3QgY2hhciAqbGlua2VyX2lkZW50 aWZpZXI7CisgIGNvbnN0IGNoYXIgKmxpbmtlcl92ZXJzaW9uOworCisgIGVudW0gbGlua2Vy X2FwaV92ZXJzaW9uIHN1cHBvcnRlZF9hcGkgPSBMQVBJX1VOU1BFQ0lGSUVEOworI2lmIEhB VkVfUFRIUkVBRF9MT0NLSU5HCisgIHN1cHBvcnRlZF9hcGkgPSBMQVBJX1YxOworI2VuZGlm CisKKyAgYXBpX3ZlcnNpb24gPSBnZXRfYXBpX3ZlcnNpb24gKCJHQ0MiLCBCQVNFX1ZFUlNJ T04sIExBUElfVU5TUEVDSUZJRUQsCisJCQkJIHN1cHBvcnRlZF9hcGksICZsaW5rZXJfaWRl bnRpZmllciwgJmxpbmtlcl92ZXJzaW9uKTsKKworICBzd2l0Y2ggKGFwaV92ZXJzaW9uKQor ICAgIHsKKyAgICBjYXNlIExBUElfVU5TUEVDSUZJRUQ6CisgICAgICBicmVhazsKKyAgICBj YXNlIExBUElfVjE6CisgICAgICBjaGVjayAoZ2V0X3N5bWJvbHNfdjMsIExEUExfRkFUQUws CisJICAgICAiZ2V0X3N5bWJvbHNfdjMgcmVxdWlyZWQgZm9yIEFQSSB2ZXJzaW9uIDEiKTsK KyAgICAgIGNoZWNrIChhZGRfc3ltYm9sc192MiwgTERQTF9GQVRBTCwKKwkgICAgICJhZGRf c3ltYm9sc192MiByZXF1aXJlZCBmb3IgQVBJIHZlcnNpb24gMSIpOworICAgICAgYnJlYWs7 CisgICAgZGVmYXVsdDoKKyAgICAgIGZwcmludGYgKHN0ZGVyciwgInVuc3VwcG9ydGVkIEFQ SSB2ZXJzaW9uXG4iKTsKKyAgICAgIGFib3J0ICgpOworICAgIH0KK30KKwogLyogQ2FsbGVk IGJ5IGEgbGlua2VyIGFmdGVyIGxvYWRpbmcgdGhlIHBsdWdpbi4gVFYgaXMgdGhlIHRyYW5z ZmVyIHZlY3Rvci4gKi8KIAogZW51bSBsZF9wbHVnaW5fc3RhdHVzCkBAIC0xNDk2LDEyICsx NTMyLDE4IEBAIG9ubG9hZCAoc3RydWN0IGxkX3BsdWdpbl90diAqdHYpCiAJICAvKiBXZSBv bmx5IHVzZSB0aGlzIHRvIG1ha2UgdXNlci1mcmllbmRseSB0ZW1wIGZpbGUgbmFtZXMuICAq LwogCSAgbGlua19vdXRwdXRfbmFtZSA9IHAtPnR2X3UudHZfc3RyaW5nOwogCSAgYnJlYWs7 CisJY2FzZSBMRFBUX0dFVF9BUElfVkVSU0lPTjoKKwkgIGdldF9hcGlfdmVyc2lvbiA9IHAt PnR2X3UudHZfZ2V0X2FwaV92ZXJzaW9uOworCSAgYnJlYWs7CiAJZGVmYXVsdDoKIAkgIGJy ZWFrOwogCX0KICAgICAgIHArKzsKICAgICB9CiAKKyAgaWYgKGdldF9hcGlfdmVyc2lvbikK KyAgICBuZWdvdGlhdGVfYXBpX3ZlcnNpb24gKCk7CisKICAgY2hlY2sgKHJlZ2lzdGVyX2Ns YWltX2ZpbGUsIExEUExfRkFUQUwsICJyZWdpc3Rlcl9jbGFpbV9maWxlIG5vdCBmb3VuZCIp OwogICBjaGVjayAoYWRkX3N5bWJvbHMsIExEUExfRkFUQUwsICJhZGRfc3ltYm9scyBub3Qg Zm91bmQiKTsKICAgc3RhdHVzID0gcmVnaXN0ZXJfY2xhaW1fZmlsZSAoY2xhaW1fZmlsZV9o YW5kbGVyKTsKLS0gCjIuMzYuMQoK --------------HXZU8MgD0lYnjktzyvuiwoAi--