From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 71369 invoked by alias); 12 Sep 2016 19:00:32 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 71273 invoked by uid 89); 12 Sep 2016 19:00:26 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-3.5 required=5.0 tests=AWL,BAYES_00,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_LOW,RCVD_IN_SORBS_SPAM,RP_MATCHES_RCVD,SPF_PASS autolearn=ham version=3.3.2 spammy=weakref, H*Ad:U*davidxl, dgfinal, dg-final X-HELO: mail-wm0-f45.google.com Received: from mail-wm0-f45.google.com (HELO mail-wm0-f45.google.com) (74.125.82.45) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Mon, 12 Sep 2016 19:00:24 +0000 Received: by mail-wm0-f45.google.com with SMTP id 1so161715767wmz.1 for ; Mon, 12 Sep 2016 12:00:23 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=q8bD2yQciWxxLZhKHtOYtcWPzuA/4S1QZM3xudphsmA=; b=ZCiYc4Pk5SKkvT2vLlze1V/6Zz6zEYgSc65laoOTcal/rXQuoNGIDJ70lKyhgeTsPQ MW8DehjIQ5z//dmw+QhSFgDYYAq1sqL6NWl60HbLr8wzUKGjpy+C5HbZKBWIhxqd22Wo FDL3qEASpJ9bJSr/Nu3OPLKGa92yYmy8zbjtD+vHN5IbZ2EO6o3HwKbZj9ktYov9hvF2 XsU/pKMaWFOWoSIX30KkE7YJaStRXpLr6sJ/kv8CuzVGvRWJUnMOO0scsy2Y9Z+SB8HO AIOUvoLg0e5QKjcKRox1wi+5JTo3rU+upZ+6yq+tYP2fsEoPyDyw54u2+QaAncx1NBm8 1HBA== X-Gm-Message-State: AE9vXwMXAnlV4VOBY5FW8sbpThC9NKFGgUsyA+7ITdmiwVLZyOoXmlmW0jKBpN6Ecdfqhd0aVXSZYqyuoiUmfdOp X-Received: by 10.28.185.202 with SMTP id j193mr1297774wmf.78.1473706821623; Mon, 12 Sep 2016 12:00:21 -0700 (PDT) MIME-Version: 1.0 Received: by 10.28.203.198 with HTTP; Mon, 12 Sep 2016 12:00:20 -0700 (PDT) In-Reply-To: References: From: Sriraman Tallam Date: Mon, 12 Sep 2016 19:30:00 -0000 Message-ID: Subject: Re: [RFC] COMDAT Safe Module Level Multi versioning To: Cary Coutant Cc: Xinliang David Li , Richard Biener , "H.J. Lu" , GCC Patches , binutils , Yury Gribov Content-Type: multipart/mixed; boundary=001a1148ef269bfe6f053c541b35 X-IsSubscribed: yes X-SW-Source: 2016-09/txt/msg00658.txt.bz2 --001a1148ef269bfe6f053c541b35 Content-Type: text/plain; charset=UTF-8 Content-length: 2140 On Mon, Oct 5, 2015 at 2:58 PM, Sriraman Tallam wrote: > On Wed, Sep 9, 2015 at 4:01 PM, Sriraman Tallam wrote: >> On Wed, Sep 2, 2015 at 4:32 PM, Sriraman Tallam wrote: >>> >>> On Tue, Aug 18, 2015 at 9:46 PM, Cary Coutant wrote: >>> >> Thanks, will make those changes. Do you recommend a different name >>> >> for this flag like -fmake-comdat-functions-static? >>> > >>> > Well, the C++ ABI refers to this as "vague linkage." It may be a bit >>> > too long or too ABI-specific, but maybe something like >>> > -f[no-]use-vague-linkage-for-functions or >>> > -f[no-]functions-vague-linkage? >>> >>> Done and patch attached. >> >> >> >> Ping. Forgot to follow up on this one but is patch of for trunk? * c-family/c.opt (fvague-linkage-functions): New option. * cp/decl2.c (comdat_linkage): Implement new option. Warn when virtual comdat functions are seen. * ipa.c (function_and_variable_visibility): Check for no vague linkage. * doc/invoke.texi: Document new option. * testsuite/g++.dg/no-vague-linkage-functions-1.C: New test. Thanks Sri > > Ping. > > >> >> * c-family/c.opt (fvague-linkage-functions): New option. >> * cp/decl2.c (comdat_linkage): Implement new option. Warn when >> virtual comdat functions are seen. >> * ipa.c (function_and_variable_visibility): Check for no vague >> linkage. >> * doc/invoke.texi: Document new option. >> * testsuite/g++.dg/no-vague-linkage-functions-1.C: New test. >> >>> >>> >>> * c-family/c.opt (fvague-linkage-functions): New option. >>> * cp/decl2.c (comdat_linkage): Implement new option. Warn when >>> virtual comdat functions are seen. >>> * ipa.c (function_and_variable_visibility): Check for no vague >>> linkage. >>> * doc/invoke.texi: Document new option. >>> * testsuite/g++.dg/no-vague-linkage-functions-1.C: New test. >>> >>> >>> >>> >>> > >>> > And perhaps note in the doc that using this option may technically >>> > break the C++ ODR, so it should be used only when you know what you're >>> > doing. >>> >>> Done. >>> >>> Thanks >>> Sri >>> >>> > >>> > -cary --001a1148ef269bfe6f053c541b35 Content-Type: text/plain; charset=US-ASCII; name="no_vague_linkage_functions.txt" Content-Disposition: attachment; filename="no_vague_linkage_functions.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_it0ey8lo1 Content-length: 6816 CSogYy1mYW1pbHkvYy5vcHQgKGZ2YWd1ZS1saW5rYWdlLWZ1bmN0aW9ucyk6 IE5ldyBvcHRpb24uCgkqIGNwL2RlY2wyLmMgKGNvbWRhdF9saW5rYWdlKTog SW1wbGVtZW50IG5ldyBvcHRpb24uICBXYXJuIHdoZW4KCXZpcnR1YWwgY29t ZGF0IGZ1bmN0aW9ucyBhcmUgc2Vlbi4KCSogaXBhLmMgKGZ1bmN0aW9uX2Fu ZF92YXJpYWJsZV92aXNpYmlsaXR5KTogQ2hlY2sgZm9yIG5vIHZhZ3VlCgls aW5rYWdlLgoJKiBkb2MvaW52b2tlLnRleGk6IERvY3VtZW50IG5ldyBvcHRp b24uCgkqIHRlc3RzdWl0ZS9nKysuZGcvbm8tdmFndWUtbGlua2FnZS1mdW5j dGlvbnMtMS5DOiBOZXcgdGVzdC4KCkluZGV4OiBjLWZhbWlseS9jLm9wdAo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjLWZhbWlseS9jLm9wdAkocmV2 aXNpb24gMjI3MzgzKQorKysgYy1mYW1pbHkvYy5vcHQJKHdvcmtpbmcgY29w eSkKQEAgLTEyMzYsNiArMTIzNiwxNiBAQCBmd2VhawogQysrIE9iakMrKyBW YXIoZmxhZ193ZWFrKSBJbml0KDEpCiBFbWl0IGNvbW1vbi1saWtlIHN5bWJv bHMgYXMgd2VhayBzeW1ib2xzCiAKK2Z2YWd1ZS1saW5rYWdlLWZ1bmN0aW9u cworQysrIFZhcihmbGFnX3ZhZ3VlX2xpbmthZ2VfZnVuY3Rpb25zKSBJbml0 KDEpCitPcHRpb24gLWZuby12YWd1ZS1saW5rYWdlLWZ1bmN0aW9ucyBtYWtl cyBjb21kYXQgZnVuY3Rpb25zIHN0YXRpYyBhbmQgbG9jYWwKK3RvIHRoZSBt b2R1bGUuIFdpdGggLWZuby12YWd1ZS1saW5rYWdlLWZ1bmN0aW9ucywgdmly dHVhbCBjb21kYXQgZnVuY3Rpb25zCitzdGlsbCB1c2UgdmFndWUgbGlua2Fn ZS4gIFdpdGggLWZuby12YWd1ZS1saW5rYWdlLWZ1bmN0aW9ucywgdGhlIGFk ZHJlc3Mgb2YKK3RoZSBjb21kYXQgZnVuY3Rpb25zIHRoYXQgYXJlIG1hZGUg bG9jYWwgd2lsbCBiZSB1bmlxdWUgYW5kIHRoaXMgY2FuIGNhdXNlCit1bmlu dGVuZGVkIGJlaGF2aW9yIHdoZW4gYWRkcmVzc2VzIG9mIHRoZXNlIGNvbWRh dCBmdW5jdGlvbnMgYXJlIHVzZWQgaW4KK2NvbXBhcmlzb25zLiAgVGhpcyBv cHRpb24gbWF5IHRlY2huaWNhbGx5IGJyZWFrIHRoZSBDKysgT0RSIGFuZCB1 c2VycyBvZgordGhpcyBmbGFnIHNob3VsZCBrbm93IHdoYXQgdGhleSBhcmUg ZG9pbmcuCisKIGZ3aWRlLWV4ZWMtY2hhcnNldD0KIEMgT2JqQyBDKysgT2Jq QysrIEpvaW5lZCBSZWplY3ROZWdhdGl2ZQogLWZ3aWRlLWV4ZWMtY2hhcnNl dD08Y3NldD4JQ29udmVydCBhbGwgd2lkZSBzdHJpbmdzIGFuZCBjaGFyYWN0 ZXIgY29uc3RhbnRzIHRvIGNoYXJhY3RlciBzZXQgPGNzZXQ+CkluZGV4OiBj cC9kZWNsMi5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGNwL2RlY2wy LmMJKHJldmlzaW9uIDIyNzM4MykKKysrIGNwL2RlY2wyLmMJKHdvcmtpbmcg Y29weSkKQEAgLTE3MDIsOCArMTcwMiwyMiBAQCBtYXJrX3Z0YWJsZV9lbnRy aWVzICh0cmVlIGRlY2wpCiB2b2lkCiBjb21kYXRfbGlua2FnZSAodHJlZSBk ZWNsKQogewotICBpZiAoZmxhZ193ZWFrCi0gICAgbWFrZV9kZWNsX29uZV9v bmx5IChkZWNsLCBjeHhfY29tZGF0X2dyb3VwIChkZWNsKSk7CisgIGlmIChm bGFnX3dlYWsKKyAgICAgICYmIChmbGFnX3ZhZ3VlX2xpbmthZ2VfZnVuY3Rp b25zCisJICB8fCBUUkVFX0NPREUgKGRlY2wpICE9IEZVTkNUSU9OX0RFQ0wK KwkgIHx8IERFQ0xfVklSVFVBTF9QIChkZWNsKSkpCisgICAgeworICAgICAg bWFrZV9kZWNsX29uZV9vbmx5IChkZWNsLCBjeHhfY29tZGF0X2dyb3VwIChk ZWNsKSk7CisgICAgICAvKiBXYXJuIHdoZW4gLWZuby12YWd1ZS1saW5rYWdl LWZ1bmN0aW9ucyBpcyB1c2VkIGFuZCB3ZSBmb3VuZCB2aXJ0dWFsCisJIGNv bWRhdCBmdW5jdGlvbnMuICBWaXJ0dWFsIGNvbWRhdCBmdW5jdGlvbnMgbXVz dCBzdGlsbCB1c2UgdmFndWUKKwkgbGlua2FnZS4gICovCisgICAgICBpZiAo VFJFRV9DT0RFIChkZWNsKSA9PSBGVU5DVElPTl9ERUNMCisJICAmJiBERUNM X1ZJUlRVQUxfUCAoZGVjbCkKKwkgICYmICFmbGFnX3ZhZ3VlX2xpbmthZ2Vf ZnVuY3Rpb25zKQorCXdhcm5pbmdfYXQgKERFQ0xfU09VUkNFX0xPQ0FUSU9O IChkZWNsKSwgMCwKKwkJICAgICJmbm8tdmFndWUtbGlua2FnZS1mdW5jdGlv bnM6IENvbWRhdCBsaW5rYWdlIG9mIHZpcnR1YWwgIgorCQkgICAgImZ1bmN0 aW9uICVxI0QgcHJlc2VydmVkLiIsIGRlY2wpOworICAgIH0KICAgZWxzZSBp ZiAoVFJFRV9DT0RFIChkZWNsKSA9PSBGVU5DVElPTl9ERUNMCiAJICAgfHwg KFZBUl9QIChkZWNsKSAmJiBERUNMX0FSVElGSUNJQUwgKGRlY2wpKSkKICAg ICAvKiBXZSBjYW4ganVzdCBlbWl0IGZ1bmN0aW9uIGFuZCBjb21waWxlci1n ZW5lcmF0ZWQgdmFyaWFibGVzCkluZGV4OiBkb2MvaW52b2tlLnRleGkKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZG9jL2ludm9rZS50ZXhpCShyZXZp c2lvbiAyMjczODMpCisrKyBkb2MvaW52b2tlLnRleGkJKHdvcmtpbmcgY29w eSkKQEAgLTE4OSw3ICsxODksNyBAQCBpbiB0aGUgZm9sbG93aW5nIHNlY3Rp b25zLgogLWZuby1wcmV0dHktdGVtcGxhdGVzIEBnb2wKIC1mcmVwbyAgLWZu by1ydHRpICAtZnN0YXRzICAtZnRlbXBsYXRlLWJhY2t0cmFjZS1saW1pdD1A dmFye259IEBnb2wKIC1mdGVtcGxhdGUtZGVwdGg9QHZhcntufSBAZ29sCi0t Zm5vLXRocmVhZHNhZmUtc3RhdGljcyAtZnVzZS1jeGEtYXRleGl0ICAtZm5v LXdlYWsgIC1ub3N0ZGluYysrIEBnb2wKKy1mbm8tdGhyZWFkc2FmZS1zdGF0 aWNzIC1mdXNlLWN4YS1hdGV4aXQgIC1mbm8td2VhayAtZm5vLXZhZ3VlLWxp bmthZ2UtZnVuY3Rpb25zIC1ub3N0ZGluYysrIEBnb2wKIC1mdmlzaWJpbGl0 eS1pbmxpbmVzLWhpZGRlbiBAZ29sCiAtZnZ0YWJsZS12ZXJpZnk9QHZhcntz dGR8cHJlaW5pdHxub25lfSBAZ29sCiAtZnZ0di1jb3VudHMgLWZ2dHYtZGVi dWcgQGdvbApAQCAtMjQ0OCw2ICsyNDQ4LDE4IEBAIG9wdGlvbiBleGlzdHMg b25seSBmb3IgdGVzdGluZywgYW5kIHNob3VsZCBub3QgYmUKIGl0IHJlc3Vs dHMgaW4gaW5mZXJpb3IgY29kZSBhbmQgaGFzIG5vIGJlbmVmaXRzLiAgVGhp cyBvcHRpb24gbWF5CiBiZSByZW1vdmVkIGluIGEgZnV0dXJlIHJlbGVhc2Ug b2YgRysrLgogCitAaXRlbSAtZm5vLXZhZ3VlLWxpbmthZ2UtZnVuY3Rpb25z CitAb3BpbmRleCBmbm8tdmFndWUtbGlua2FnZS1mdW5jdGlvbnMKK0RvIG5v dCB1c2UgdmFndWUgbGlua2FnZSBmb3IgY29tZGF0IG5vbi12aXJ0dWFsIGZ1 bmN0aW9ucywgZXZlbiBpZiBpdAoraXMgcHJvdmlkZWQgYnkgdGhlIGxpbmtl ci4gIFRoaXMgb3B0aW9uIGlzIHVzZWZ1bCB3aGVuIGNvbWRhdCBmdW5jdGlv bnMKK2dlbmVyYXRlZCBpbiBjZXJ0YWluIGNvbXBpbGF0aW9uIHVuaXRzIG5l ZWQgdG8gYmUga2VwdCBsb2NhbCB0byB0aGUKK3Jlc3BlY3RpdmUgdW5pdHMg YW5kIG5vdCBleHBvc2VkIGdsb2JhbGx5LiAgVGhpcyBkb2VzIG5vdCBhcHBs eSB0byB2aXJ0dWFsCitjb21kYXQgZnVuY3Rpb25zIGFzIHRoZWlyIHBvaW50 ZXJzIG1heSBiZSB0YWtlbiB2aWEgdmlydHVhbCB0YWJsZXMuCitUaGlzIGNh biBjYXVzZSB1bmludGVuZGVkIGJlaGF2aW9yIGlmIHRoZSBhZGRyZXNzZXMg b2YgdGhlIGNvbWRhdCBmdW5jdGlvbnMKK3RoYXQgYXJlIG1hZGUgbG9jYWwg YXJlIHVzZWQgaW4gY29tcGFyaXNvbnMsIHdoaWNoIGFyZSBub3Qgd2FybmVk IGFib3V0LgorVGhpcyBvcHRpb24gbWF5IHRlY2huaWNhbGx5IGJyZWFrIHRo ZSBDKysgT0RSIGFuZCB1c2VycyBvZiB0aGlzIGZsYWcgc2hvdWxkCitrbm93 IHdoYXQgdGhleSBhcmUgZG9pbmcuCisKIEBpdGVtIC1ub3N0ZGluYysrCiBA b3BpbmRleCBub3N0ZGluYysrCiBEbyBub3Qgc2VhcmNoIGZvciBoZWFkZXIg ZmlsZXMgaW4gdGhlIHN0YW5kYXJkIGRpcmVjdG9yaWVzIHNwZWNpZmljIHRv CkluZGV4OiBpcGEuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBpcGEu YwkocmV2aXNpb24gMjI3MzgzKQorKysgaXBhLmMJKHdvcmtpbmcgY29weSkK QEAgLTEwMzcsNiArMTAzNyw3IEBAIGZ1bmN0aW9uX2FuZF92YXJpYWJsZV92 aXNpYmlsaXR5IChib29sIHdob2xlX3Byb2dyCiAJfQogICAgICAgZ2NjX2Fz c2VydCAoKCFERUNMX1dFQUsgKG5vZGUtPmRlY2wpCiAJCSAgJiYgIURFQ0xf Q09NREFUIChub2RlLT5kZWNsKSkKKwkJICB8fCAhZmxhZ192YWd1ZV9saW5r YWdlX2Z1bmN0aW9ucwogICAgICAgCSAgICAgICAgICB8fCBUUkVFX1BVQkxJ QyAobm9kZS0+ZGVjbCkKIAkJICB8fCBub2RlLT53ZWFrcmVmCiAJCSAgfHwg REVDTF9FWFRFUk5BTCAobm9kZS0+ZGVjbCkpOwpJbmRleDogdGVzdHN1aXRl L2crKy5kZy9uby12YWd1ZS1saW5rYWdlLWZ1bmN0aW9ucy0xLkMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1aXRlL2crKy5kZy9uby12YWd1 ZS1saW5rYWdlLWZ1bmN0aW9ucy0xLkMJKHJldmlzaW9uIDApCisrKyB0ZXN0 c3VpdGUvZysrLmRnL25vLXZhZ3VlLWxpbmthZ2UtZnVuY3Rpb25zLTEuQwko d29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDkgQEAKKy8qIHsgZGctZG8gY29t cGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1mbm8tdmFndWUtbGlua2Fn ZS1mdW5jdGlvbnMgLWZrZWVwLWlubGluZS1mdW5jdGlvbnMgLWZmdW5jdGlv bi1zZWN0aW9ucyIgfSAqLworCitpbmxpbmUgaW50IGZvbyAoKSB7CisgIHJl dHVybiAwOworfQorCisvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIg Il9aM2Zvb3YiIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1i bGVyLW5vdCAiX1ozZm9vdi4qY29tZGF0IiB9IH0gKi8K --001a1148ef269bfe6f053c541b35--