From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.220.28]) by sourceware.org (Postfix) with ESMTPS id 9336C382C5EC for ; Thu, 16 Jun 2022 12:25:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 9336C382C5EC 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-out1.suse.de (Postfix) with ESMTPS id A05EE21B6D; Thu, 16 Jun 2022 12:25:46 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_rsa; t=1655382346; 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=NHbzG5L+Avqj6rU1uVsbWcxefVk2lYPYxc9xtL6hxLE=; b=IRvxxvYF9H9mEpLwkH/eSYBa4pIGsnXbNMzIuga5yTyoS/JSpAV8arGgDkUnRH0QzsjnZY E6gMcrFz+wWCXXFNMbJdX6MVFzCj2e9P0T8WVs5cdtsPSLDJXDiEkojp+u1vaymAypoPm0 ChlSG2EfxqSY0KcS1yODwate0uohj/o= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.cz; s=susede2_ed25519; t=1655382346; 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=NHbzG5L+Avqj6rU1uVsbWcxefVk2lYPYxc9xtL6hxLE=; b=zd7WIm1BgC8GpdvVxyB9Y8mJsTGUewySXSsUNpuDoPQmshcKdVhgkN1u3y6VmC5+3JghlF YFUdlT0WIiZyfsBw== 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 779041344E; Thu, 16 Jun 2022 12:25:46 +0000 (UTC) Received: from dovecot-director2.suse.de ([192.168.254.65]) by imap2.suse-dmz.suse.de with ESMTPSA id CU1iG0ohq2LyBAAAMHmgww (envelope-from ); Thu, 16 Jun 2022 12:25:46 +0000 Content-Type: multipart/mixed; boundary="------------FYgvRg4oCWSsMK50uj7u12Ld" Message-ID: <37b52d36-d1dd-f291-0baa-0cf670493692@suse.cz> Date: Thu, 16 Jun 2022 14:25:46 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.10.0 Subject: Re: [PATCH 3/3] lto-plugin: implement LDPT_GET_API_VERSION Content-Language: en-US To: Alexander Monakov Cc: gcc-patches@gcc.gnu.org, Richard Biener References: <803a0290-3909-b9c5-2461-b1740a00c63a@suse.cz> <146a46f1-3a56-48c5-386f-c15633cc6781@ispras.ru> From: =?UTF-8?Q?Martin_Li=c5=a1ka?= In-Reply-To: <146a46f1-3a56-48c5-386f-c15633cc6781@ispras.ru> X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, 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: Thu, 16 Jun 2022 12:25:49 -0000 This is a multi-part message in MIME format. --------------FYgvRg4oCWSsMK50uj7u12Ld Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On 6/16/22 10:00, Alexander Monakov wrote: > On Thu, 16 Jun 2022, Martin Liška wrote: > >> Hi. >> >> I'm sending updated version of the patch where I addressed the comments. >> >> Patch can bootstrap on x86_64-linux-gnu and survives regression tests. >> >> Ready to be installed? > > I noticed a typo (no objection on the substance on the patch from me): Good! > >> --- a/include/plugin-api.h >> +++ b/include/plugin-api.h >> @@ -483,6 +483,34 @@ enum ld_plugin_level >> LDPL_FATAL >> }; >> >> +/* Contract between a plug-in and a linker. */ >> + >> +enum linker_api_version >> +{ >> + /* The linker/plugin do not implement any of the API levels below, the API >> + is determined solely via the transfer vector. */ >> + LAPI_UNSPECIFIED = 0, >> + >> + /* API level v1. The linker provides add_symbols_v3, add_symbols_v2, > > This should be '*get_*symbols_v3, add_symbols_v2'. Sure, fixed. > >> + the plugin will use that and not any lower versions. >> + claim_file is thread-safe on the plugin side and >> + add_symbols on the linker side. */ >> + LAPI_V1 = 1 >> +}; >> + >> +/* The linker's interface for API version negotiation. A plug-in calls >> + the function (with its IDENTIFIER and VERSION), plus minimal and maximal >> + version of linker_api_version is provided. Linker then returns selected >> + API version and provides its IDENTIFIER and VERSION. */ >> + >> +typedef >> +enum linker_api_version >> +(*ld_plugin_get_api_version) (const char *plugin_identifier, unsigned plugin_version, >> + enum linker_api_version minimal_api_supported, >> + enum linker_api_version maximal_api_supported, >> + const char **linker_identifier, >> + unsigned *linker_version); > > IIRC Richi asked to mention which side owns the strings (does the receiver need > to 'free' or 'strdup' them). Perhaps we could say they are owned by the > originating side, but it might be even better to say they are unchanging to > allow simply using string literals. Perhaps add something like this to the > comment? > > Identifier pointers remain valid as long as the plugin is loaded. I welcome the change and I'm sending a patch that incorporates that. > >> /* Values for the tv_tag field of the transfer vector. */ >> >> enum ld_plugin_tag >> @@ -521,6 +549,7 @@ enum ld_plugin_tag >> LDPT_REGISTER_NEW_INPUT_HOOK, >> LDPT_GET_WRAP_SYMBOLS, >> LDPT_ADD_SYMBOLS_V2, >> + LDPT_GET_API_VERSION, >> }; > > I went checking if this is in sync with Binutils header and noticed that > get_wrap_symbols and add_symbols_v2 are not even mentioned on the wiki page with > plugin API documentation. Yes, I know about that. I'm going to update wiki page once we get this in. Cheers, Martin > > Alexander --------------FYgvRg4oCWSsMK50uj7u12Ld 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 RnJvbSAzZTAxODIzZjIyMjgyYzdhNDY3NzFjODJmOTYyMmY3ZmYyOTI5YjE4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gTGlza2EgPG1saXNrYUBzdXNlLmN6PgpE YXRlOiBNb24sIDE2IE1heSAyMDIyIDE0OjAxOjUyICswMjAwClN1YmplY3Q6IFtQQVRDSF0g bHRvLXBsdWdpbjogaW1wbGVtZW50IExEUFRfR0VUX0FQSV9WRVJTSU9OCgppbmNsdWRlL0No YW5nZUxvZzoKCgkqIHBsdWdpbi1hcGkuaCAoZW51bSBsaW5rZXJfYXBpX3ZlcnNpb24pOiBO ZXcgZW51bS4KCShsZF9wbHVnaW5fZ2V0X2FwaV92ZXJzaW9uKTogTmV3LgoJKGVudW0gbGRf cGx1Z2luX3RhZyk6IEFkZCBMRFBUX0dFVF9BUElfVkVSU0lPTi4KCShzdHJ1Y3QgbGRfcGx1 Z2luX3R2KTogQWRkIHR2X2dldF9hcGlfdmVyc2lvbi4KCmx0by1wbHVnaW4vQ2hhbmdlTG9n OgoKCSogbHRvLXBsdWdpbi5jIChuZWdvdGlhdGVfYXBpX3ZlcnNpb24pOiBOZXcuCgkob25s b2FkKTogTmVnb3RpYXRlIEFQSSB2ZXJzaW9uLgotLS0KIGluY2x1ZGUvcGx1Z2luLWFwaS5o ICAgIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogbHRvLXBsdWdpbi9s dG8tcGx1Z2luLmMgfCAzOCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogMiBmaWxlcyBjaGFuZ2VkLCA2OSBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvaW5j bHVkZS9wbHVnaW4tYXBpLmggYi9pbmNsdWRlL3BsdWdpbi1hcGkuaAppbmRleCA4YWViZTJm ZjI2Ny4uY2MzYTQzYjQ0YTYgMTAwNjQ0Ci0tLSBhL2luY2x1ZGUvcGx1Z2luLWFwaS5oCisr KyBiL2luY2x1ZGUvcGx1Z2luLWFwaS5oCkBAIC00ODMsNiArNDgzLDM1IEBAIGVudW0gbGRf cGx1Z2luX2xldmVsCiAgIExEUExfRkFUQUwKIH07CiAKKy8qIENvbnRyYWN0IGJldHdlZW4g YSBwbHVnLWluIGFuZCBhIGxpbmtlci4gICovCisKK2VudW0gbGlua2VyX2FwaV92ZXJzaW9u Cit7CisgICAvKiBUaGUgbGlua2VyL3BsdWdpbiBkbyBub3QgaW1wbGVtZW50IGFueSBvZiB0 aGUgQVBJIGxldmVscyBiZWxvdywgdGhlIEFQSQorICAgICAgIGlzIGRldGVybWluZWQgc29s ZWx5IHZpYSB0aGUgdHJhbnNmZXIgdmVjdG9yLiAgKi8KKyAgIExBUElfVU5TUEVDSUZJRUQg PSAwLAorCisgICAvKiBBUEkgbGV2ZWwgdjEuICBUaGUgbGlua2VyIHByb3ZpZGVzIGdldF9z eW1ib2xzX3YzLCBhZGRfc3ltYm9sc192MiwKKyAgICAgIHRoZSBwbHVnaW4gd2lsbCB1c2Ug dGhhdCBhbmQgbm90IGFueSBsb3dlciB2ZXJzaW9ucy4KKyAgICAgIGNsYWltX2ZpbGUgaXMg dGhyZWFkLXNhZmUgb24gdGhlIHBsdWdpbiBzaWRlIGFuZAorICAgICAgYWRkX3N5bWJvbHMg b24gdGhlIGxpbmtlciBzaWRlLiAgKi8KKyAgIExBUElfVjEgPSAxCit9OworCisvKiBUaGUg bGlua2VyJ3MgaW50ZXJmYWNlIGZvciBBUEkgdmVyc2lvbiBuZWdvdGlhdGlvbi4gIEEgcGx1 Zy1pbiBjYWxscworICB0aGUgZnVuY3Rpb24gKHdpdGggaXRzIElERU5USUZJRVIgYW5kIFZF UlNJT04pLCBwbHVzIG1pbmltYWwgYW5kIG1heGltYWwKKyAgdmVyc2lvbiBvZiBsaW5rZXJf YXBpX3ZlcnNpb24gaXMgcHJvdmlkZWQuICBMaW5rZXIgdGhlbiByZXR1cm5zIHNlbGVjdGVk CisgIEFQSSB2ZXJzaW9uIGFuZCBwcm92aWRlcyBpdHMgSURFTlRJRklFUiBhbmQgVkVSU0lP Ti4KKyAgSWRlbnRpZmllciBwb2ludGVycyByZW1haW4gdmFsaWQgYXMgbG9uZyBhcyB0aGUg cGx1Z2luIGlzIGxvYWRlZC4gICovCisKK3R5cGVkZWYKK2VudW0gbGlua2VyX2FwaV92ZXJz aW9uCisoKmxkX3BsdWdpbl9nZXRfYXBpX3ZlcnNpb24pIChjb25zdCBjaGFyICpwbHVnaW5f aWRlbnRpZmllciwgdW5zaWduZWQgcGx1Z2luX3ZlcnNpb24sCisJCQkgICAgICBlbnVtIGxp bmtlcl9hcGlfdmVyc2lvbiBtaW5pbWFsX2FwaV9zdXBwb3J0ZWQsCisJCQkgICAgICBlbnVt IGxpbmtlcl9hcGlfdmVyc2lvbiBtYXhpbWFsX2FwaV9zdXBwb3J0ZWQsCisJCQkgICAgICBj b25zdCBjaGFyICoqbGlua2VyX2lkZW50aWZpZXIsCisJCQkgICAgICB1bnNpZ25lZCAqbGlu a2VyX3ZlcnNpb24pOworCiAvKiBWYWx1ZXMgZm9yIHRoZSB0dl90YWcgZmllbGQgb2YgdGhl IHRyYW5zZmVyIHZlY3Rvci4gICovCiAKIGVudW0gbGRfcGx1Z2luX3RhZwpAQCAtNTIxLDYg KzU1MCw3IEBAIGVudW0gbGRfcGx1Z2luX3RhZwogICBMRFBUX1JFR0lTVEVSX05FV19JTlBV VF9IT09LLAogICBMRFBUX0dFVF9XUkFQX1NZTUJPTFMsCiAgIExEUFRfQUREX1NZTUJPTFNf VjIsCisgIExEUFRfR0VUX0FQSV9WRVJTSU9OLAogfTsKIAogLyogVGhlIHBsdWdpbiB0cmFu c2ZlciB2ZWN0b3IuICAqLwpAQCAtNTU2LDYgKzU4Niw3IEBAIHN0cnVjdCBsZF9wbHVnaW5f dHYKICAgICBsZF9wbHVnaW5fZ2V0X2lucHV0X3NlY3Rpb25fc2l6ZSB0dl9nZXRfaW5wdXRf c2VjdGlvbl9zaXplOwogICAgIGxkX3BsdWdpbl9yZWdpc3Rlcl9uZXdfaW5wdXQgdHZfcmVn aXN0ZXJfbmV3X2lucHV0OwogICAgIGxkX3BsdWdpbl9nZXRfd3JhcF9zeW1ib2xzIHR2X2dl dF93cmFwX3N5bWJvbHM7CisgICAgbGRfcGx1Z2luX2dldF9hcGlfdmVyc2lvbiB0dl9nZXRf YXBpX3ZlcnNpb247CiAgIH0gdHZfdTsKIH07CiAKZGlmZiAtLWdpdCBhL2x0by1wbHVnaW4v bHRvLXBsdWdpbi5jIGIvbHRvLXBsdWdpbi9sdG8tcGx1Z2luLmMKaW5kZXggMTMxMThjNDk4 M2MuLjIwOGIyNmQ1YzRiIDEwMDY0NAotLS0gYS9sdG8tcGx1Z2luL2x0by1wbHVnaW4uYwor KysgYi9sdG8tcGx1Z2luL2x0by1wbHVnaW4uYwpAQCAtNzAsNiArNzAsNyBAQCBhbG9uZyB3 aXRoIHRoaXMgcHJvZ3JhbTsgc2VlIHRoZSBmaWxlIENPUFlJTkczLiAgSWYgbm90IHNlZQog I2luY2x1ZGUgIi4uL2djYy9sdG8vY29tbW9uLmgiCiAjaW5jbHVkZSAic2ltcGxlLW9iamVj dC5oIgogI2luY2x1ZGUgInBsdWdpbi1hcGkuaCIKKyNpbmNsdWRlICJhbnNpZGVjbC5oIgog CiAvKiBXZSBuZWVkIHRvIHVzZSBJNjQgaW5zdGVhZCBvZiBsbCB3aWR0aC1zcGVjaWZpZXIg b24gbmF0aXZlIFdpbmRvd3MuCiAgICBUaGUgcmVhc29uIGZvciB0aGlzIGlzIHRoYXQgb2xk ZXIgTVMtcnVudGltZXMgZG9uJ3Qgc3VwcG9ydCB0aGUgbGwuICAqLwpAQCAtMTcwLDYgKzE3 MSwxMCBAQCBzdGF0aWMgbGRfcGx1Z2luX2FkZF9pbnB1dF9maWxlIGFkZF9pbnB1dF9maWxl Owogc3RhdGljIGxkX3BsdWdpbl9hZGRfaW5wdXRfbGlicmFyeSBhZGRfaW5wdXRfbGlicmFy eTsKIHN0YXRpYyBsZF9wbHVnaW5fbWVzc2FnZSBtZXNzYWdlOwogc3RhdGljIGxkX3BsdWdp bl9hZGRfc3ltYm9scyBhZGRfc3ltYm9scywgYWRkX3N5bWJvbHNfdjI7CitzdGF0aWMgbGRf cGx1Z2luX2dldF9hcGlfdmVyc2lvbiBnZXRfYXBpX3ZlcnNpb247CisKKy8qIEJ5IGRlZmF1 bHQsIHVzZSB2ZXJzaW9uIExBUElfVU5TUEVDSUZJRUQgaWYgdGhlcmUgaXMgbm90IG5lZ290 aWF0aW9uLiAgKi8KK3N0YXRpYyBlbnVtIGxpbmtlcl9hcGlfdmVyc2lvbiBhcGlfdmVyc2lv biA9IExBUElfVU5TUEVDSUZJRUQ7CiAKIHN0YXRpYyBzdHJ1Y3QgcGx1Z2luX2ZpbGVfaW5m byAqY2xhaW1lZF9maWxlcyA9IE5VTEw7CiBzdGF0aWMgdW5zaWduZWQgaW50IG51bV9jbGFp bWVkX2ZpbGVzID0gMDsKQEAgLTE0MTUsNiArMTQyMCwzMyBAQCBwcm9jZXNzX29wdGlvbiAo Y29uc3QgY2hhciAqb3B0aW9uKQogICB2ZXJib3NlID0gdmVyYm9zZSB8fCBkZWJ1ZzsKIH0K IAorLyogTmVnb3RpYXRlIGxpbmtlciBBUEkgdmVyc2lvbi4gICovCisKK3N0YXRpYyB2b2lk CituZWdvdGlhdGVfYXBpX3ZlcnNpb24gKHZvaWQpCit7CisgIGNvbnN0IGNoYXIgKmxpbmtl cl9pZGVudGlmaWVyOworICB1bnNpZ25lZCBsaW5rZXJfdmVyc2lvbjsKKworICBhcGlfdmVy c2lvbiA9IGdldF9hcGlfdmVyc2lvbiAoIkdDQyIsIEdDQ19WRVJTSU9OLCBMQVBJX1VOU1BF Q0lGSUVELAorCQkJCSBMQVBJX1YxLCAmbGlua2VyX2lkZW50aWZpZXIsICZsaW5rZXJfdmVy c2lvbik7CisKKyAgc3dpdGNoIChhcGlfdmVyc2lvbikKKyAgICB7CisgICAgY2FzZSBMQVBJ X1VOU1BFQ0lGSUVEOgorICAgICAgYnJlYWs7CisgICAgY2FzZSBMQVBJX1YxOgorICAgICAg Y2hlY2sgKGdldF9zeW1ib2xzX3YzLCBMRFBMX0ZBVEFMLAorCSAgICAgImdldF9zeW1ib2xz X3YzIHJlcXVpcmVkIGZvciBBUEkgdmVyc2lvbiAxIik7CisgICAgICBjaGVjayAoYWRkX3N5 bWJvbHNfdjIsIExEUExfRkFUQUwsCisJICAgICAiYWRkX3N5bWJvbHNfdjIgcmVxdWlyZWQg Zm9yIEFQSSB2ZXJzaW9uIDEiKTsKKyAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAg ICBmcHJpbnRmIChzdGRlcnIsICJ1bnN1cHBvcnRlZCBBUEkgdmVyc2lvblxuIik7CisgICAg ICBhYm9ydCAoKTsKKyAgICB9Cit9CisKIC8qIENhbGxlZCBieSBhIGxpbmtlciBhZnRlciBs b2FkaW5nIHRoZSBwbHVnaW4uIFRWIGlzIHRoZSB0cmFuc2ZlciB2ZWN0b3IuICovCiAKIGVu dW0gbGRfcGx1Z2luX3N0YXR1cwpAQCAtMTQ4MSwxMiArMTUxMywxOCBAQCBvbmxvYWQgKHN0 cnVjdCBsZF9wbHVnaW5fdHYgKnR2KQogCSAgLyogV2Ugb25seSB1c2UgdGhpcyB0byBtYWtl IHVzZXItZnJpZW5kbHkgdGVtcCBmaWxlIG5hbWVzLiAgKi8KIAkgIGxpbmtfb3V0cHV0X25h bWUgPSBwLT50dl91LnR2X3N0cmluZzsKIAkgIGJyZWFrOworCWNhc2UgTERQVF9HRVRfQVBJ X1ZFUlNJT046CisJICBnZXRfYXBpX3ZlcnNpb24gPSBwLT50dl91LnR2X2dldF9hcGlfdmVy c2lvbjsKKwkgIGJyZWFrOwogCWRlZmF1bHQ6CiAJICBicmVhazsKIAl9CiAgICAgICBwKys7 CiAgICAgfQogCisgIGlmIChnZXRfYXBpX3ZlcnNpb24pCisgICAgbmVnb3RpYXRlX2FwaV92 ZXJzaW9uICgpOworCiAgIGNoZWNrIChyZWdpc3Rlcl9jbGFpbV9maWxlLCBMRFBMX0ZBVEFM LCAicmVnaXN0ZXJfY2xhaW1fZmlsZSBub3QgZm91bmQiKTsKICAgY2hlY2sgKGFkZF9zeW1i b2xzLCBMRFBMX0ZBVEFMLCAiYWRkX3N5bWJvbHMgbm90IGZvdW5kIik7CiAgIHN0YXR1cyA9 IHJlZ2lzdGVyX2NsYWltX2ZpbGUgKGNsYWltX2ZpbGVfaGFuZGxlcik7Ci0tIAoyLjM2LjEK Cg== --------------FYgvRg4oCWSsMK50uj7u12Ld--