From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 77769 invoked by alias); 9 Jun 2017 18:45:59 -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 77485 invoked by uid 89); 9 Jun 2017 18:45:39 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-10.8 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-oi0-f53.google.com Received: from mail-oi0-f53.google.com (HELO mail-oi0-f53.google.com) (209.85.218.53) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Jun 2017 18:45:37 +0000 Received: by mail-oi0-f53.google.com with SMTP id p7so34151984oif.2 for ; Fri, 09 Jun 2017 11:45:41 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=wvRVr8I+9aY7WJ8JjIIqRhrfI25SIF12Ik0hfmUjXrU=; b=WFBPcwYBjBAvRgaMyVt8TIDBaUdN4+H+GuukxFFky8Do/aX2WzE+ZDxW/UGCNWPOyf eeAiF+4P2GWvYLOCCtYlgam8GmlD9fhMlaZ1vzgyY09r1ndRyD7W9BOs8qutQoCT4uTq Ui4ZUEyjTWACU9L9F11QbsplMLyQ267nJUFYqmeWt/cusy+GrCuKuLzjdNpF+C6IRGfW QAhW2MEwoY+lL5wzdLTuQjYwmpn1mbbTIpuTRKipCgAQ48AWTi2wrv5Lb4xPN0B3ouoj vq/Z0C8lr4LeIFtPZ0dhOgR75yqseLuMMKEzOmWEKks9GarIV9FPkGHdqMtVMR8F4Rty qhLA== X-Gm-Message-State: AODbwcBXdz5pMzvRoJkMRrZsQ4NC7VHeWvDdrdRtlKgYgcOvCafShBfy QeWZ2QV/6Ny6rWNY2scFMwXqkVAfCp/1 X-Received: by 10.202.73.213 with SMTP id w204mr16359877oia.39.1497033939817; Fri, 09 Jun 2017 11:45:39 -0700 (PDT) MIME-Version: 1.0 Received: by 10.202.207.77 with HTTP; Fri, 9 Jun 2017 11:45:38 -0700 (PDT) In-Reply-To: <20170609182213.GC67908@kam.mff.cuni.cz> References: <20170609101637.GC30427@atrey.karlin.mff.cuni.cz> <20170609182213.GC67908@kam.mff.cuni.cz> From: Ian Lance Taylor Date: Fri, 09 Jun 2017 18:45:00 -0000 Message-ID: Subject: Re: Patch RFC: disable block partitioning with split stack To: Jan Hubicka Cc: gcc-patches , "gofrontend-dev@googlegroups.com" Content-Type: multipart/mixed; boundary="001a113db7b433afbe05518b609c" X-SW-Source: 2017-06/txt/msg00674.txt.bz2 --001a113db7b433afbe05518b609c Content-Type: text/plain; charset="UTF-8" Content-length: 1579 On Fri, Jun 9, 2017 at 11:22 AM, Jan Hubicka wrote: >> On Fri, Jun 9, 2017 at 3:16 AM, Jan Hubicka wrote: >> > >> >> code compiled with -fsplit-stack, if the cold partition calls a >> >> function that is not compiled with -fsplit-stack (such as a C library >> >> function). The problem is that when the linker sees a split-stack >> >> function call a non-split-stack function, it adjusts the function >> >> header to request more stack space. This doesn't work if the call is >> >> in the cold partition, as the linker doesn't know how to find the >> >> header to adjust. You can see this by trying to build the Go library >> >> using the gold linker with this patch. >> > >> > If code does not work, I wonder why we let user to overwrite the default >> > by hand? In other cases we drop the flag with inform message. >> >> My thinking here is that there is no fundamental reason that the code >> does not work, and the actual problem does not lie in GCC but rather >> in the linker (specifically, gold). It's possible in principle to fix >> gold to make this work, and someone who is using a fixed gold could >> then direct GCC to take advantage of this optimization (and later >> after that version of gold is wide-spread enough we can change GCC to >> drop this patch). > > Thanks for explanation. Perhaps we could have this documented, because > otherwise people will think the option is simply broken. I guess even better > we could have configure autodetection for the broken linker. Committed to mainline with docs as follows. Ian --001a113db7b433afbe05518b609c Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j3q7cpa30 Content-length: 4767 SW5kZXg6IG9wdHMuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBvcHRz LmMJKHJldmlzaW9uIDI0OTA3MCkKKysrIG9wdHMuYwkod29ya2luZyBjb3B5 KQpAQCAtODYzLDYgKzg2MywxNiBAQCBmaW5pc2hfb3B0aW9ucyAoc3RydWN0 IGdjY19vcHRpb25zICpvcHRzCiAgICAgICBvcHRzLT54X2ZsYWdfcmVvcmRl cl9ibG9ja3MgPSAxOwogICAgIH0KIAorICAvKiBJZiBzdGFjayBzcGxpdHRp bmcgaXMgdHVybmVkIG9uLCBhbmQgdGhlIHVzZXIgZGlkIG5vdCBleHBsaWNp dGx5CisgICAgIHJlcXVlc3QgZnVuY3Rpb24gcGFydGl0aW9uaW5nLCB0dXJu IG9mZiBwYXJ0aXRpb25pbmcsIGFzIGl0CisgICAgIGNvbmZ1c2VzIHRoZSBs aW5rZXIgd2hlbiB0cnlpbmcgdG8gaGFuZGxlIHBhcnRpdGlvbmVkIHNwbGl0 LXN0YWNrCisgICAgIGNvZGUgdGhhdCBjYWxscyBhIG5vbi1zcGxpdC1zdGFj ayBmdW5jdGlvbnMuICBCdXQgaWYgcGFydGl0aW9uaW5nCisgICAgIHdhcyB0 dXJuZWQgb24gZXhwbGljaXRseSBqdXN0IGhvcGUgZm9yIHRoZSBiZXN0LiAg Ki8KKyAgaWYgKG9wdHMtPnhfZmxhZ19zcGxpdF9zdGFjaworICAgICAgJiYg b3B0cy0+eF9mbGFnX3Jlb3JkZXJfYmxvY2tzX2FuZF9wYXJ0aXRpb24KKyAg ICAgICYmICFvcHRzX3NldC0+eF9mbGFnX3Jlb3JkZXJfYmxvY2tzX2FuZF9w YXJ0aXRpb24pCisgICAgb3B0cy0+eF9mbGFnX3Jlb3JkZXJfYmxvY2tzX2Fu ZF9wYXJ0aXRpb24gPSAwOworCiAgIGlmIChvcHRzLT54X2ZsYWdfcmVvcmRl cl9ibG9ja3NfYW5kX3BhcnRpdGlvbgogICAgICAgJiYgIW9wdHNfc2V0LT54 X2ZsYWdfcmVvcmRlcl9mdW5jdGlvbnMpCiAgICAgb3B0cy0+eF9mbGFnX3Jl b3JkZXJfZnVuY3Rpb25zID0gMTsKSW5kZXg6IGRvYy9pbnZva2UudGV4aQo9 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb2MvaW52b2tlLnRleGkJKHJl dmlzaW9uIDI0OTA3MCkKKysrIGRvYy9pbnZva2UudGV4aQkod29ya2luZyBj b3B5KQpAQCAtODY1Niw3ICs4NjU2LDkgQEAgcGFnaW5nIGFuZCBjYWNoZSBs b2NhbGl0eSBwZXJmb3JtYW5jZS4KIFRoaXMgb3B0aW1pemF0aW9uIGlzIGF1 dG9tYXRpY2FsbHkgdHVybmVkIG9mZiBpbiB0aGUgcHJlc2VuY2Ugb2YKIGV4 Y2VwdGlvbiBoYW5kbGluZywgZm9yIGxpbmtvbmNlIHNlY3Rpb25zLCBmb3Ig ZnVuY3Rpb25zIHdpdGggYSB1c2VyLWRlZmluZWQKIHNlY3Rpb24gYXR0cmli dXRlIGFuZCBvbiBhbnkgYXJjaGl0ZWN0dXJlIHRoYXQgZG9lcyBub3Qgc3Vw cG9ydCBuYW1lZAotc2VjdGlvbnMuCitzZWN0aW9ucy4gIFdoZW4gQG9wdGlv bnstZnNwbGl0LXN0YWNrfSBpcyB1c2VkIHRoaXMgb3B0aW9uIGlzIG5vdAor ZW5hYmxlZCBieSBkZWZhdWx0ICh0byBhdm9pZCBsaW5rZXIgZXJyb3JzKSwg YnV0IG1heSBiZSBlbmFibGVkCitleHBsaWNpdGx5IChpZiB1c2luZyBhIHdv cmtpbmcgbGlua2VyKS4KIAogRW5hYmxlZCBmb3IgeDg2IGF0IGxldmVscyBA b3B0aW9uey1PMn0sIEBvcHRpb257LU8zfS4KIApJbmRleDogZ28vZ28tbGFu Zy5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGdvL2dvLWxhbmcuYwko cmV2aXNpb24gMjQ5MDcwKQorKysgZ28vZ28tbGFuZy5jCSh3b3JraW5nIGNv cHkpCkBAIC0zMDQsNiArMzA0LDE1IEBAIGdvX2xhbmdob29rX3Bvc3Rfb3B0 aW9ucyAoY29uc3QgY2hhciAqKnAKICAgICAgICYmIHRhcmdldG1fY29tbW9u LnN1cHBvcnRzX3NwbGl0X3N0YWNrIChmYWxzZSwgJmdsb2JhbF9vcHRpb25z KSkKICAgICBnbG9iYWxfb3B0aW9ucy54X2ZsYWdfc3BsaXRfc3RhY2sgPSAx OwogCisgIC8qIElmIHN0YWNrIHNwbGl0dGluZyBpcyB0dXJuZWQgb24sIGFu ZCB0aGUgdXNlciBkaWQgbm90IGV4cGxpY2l0bHkKKyAgICAgcmVxdWVzdCBm dW5jdGlvbiBwYXJ0aXRpb25pbmcsIHR1cm4gb2ZmIHBhcnRpdGlvbmluZywg YXMgaXQKKyAgICAgY29uZnVzZXMgdGhlIGxpbmtlciB3aGVuIHRyeWluZyB0 byBoYW5kbGUgcGFydGl0aW9uZWQgc3BsaXQtc3RhY2sKKyAgICAgY29kZSB0 aGF0IGNhbGxzIGEgbm9uLXNwbGl0LXN0YWNrIGZ1bmN0aW9uLiAgKi8KKyAg aWYgKGdsb2JhbF9vcHRpb25zLnhfZmxhZ19zcGxpdF9zdGFjaworICAgICAg JiYgZ2xvYmFsX29wdGlvbnMueF9mbGFnX3Jlb3JkZXJfYmxvY2tzX2FuZF9w YXJ0aXRpb24KKyAgICAgICYmICFnbG9iYWxfb3B0aW9uc19zZXQueF9mbGFn X3Jlb3JkZXJfYmxvY2tzX2FuZF9wYXJ0aXRpb24pCisgICAgZ2xvYmFsX29w dGlvbnMueF9mbGFnX3Jlb3JkZXJfYmxvY2tzX2FuZF9wYXJ0aXRpb24gPSAw OworCiAgIC8qIFJldHVybmluZyBmYWxzZSBtZWFucyB0aGF0IHRoZSBiYWNr ZW5kIHNob3VsZCBiZSB1c2VkLiAgKi8KICAgcmV0dXJuIGZhbHNlOwogfQpJ bmRleDogdGVzdHN1aXRlL2djYy5kZy90cmVlLXByb2Yvc3BsaXQtMS5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nY2MuZGcvdHJl ZS1wcm9mL3NwbGl0LTEuYwkocmV2aXNpb24gMCkKKysrIHRlc3RzdWl0ZS9n Y2MuZGcvdHJlZS1wcm9mL3NwbGl0LTEuYwkod29ya2luZyBjb3B5KQpAQCAt MCwwICsxLDQxIEBACisvKiBUZXN0IGNhc2UgdGhhdCB3ZSBkb24ndCBnZXQg YSBsaW5rLXRpbWUgZXJyb3Igd2hlbiB1c2luZworICAgLWZzcGxpdC1zdGFj ayB3aXRoIC1mcmVvcmRlci1ibG9ja3MtYW5kLXBhcnRpdGlvbi4gICovCisv KiB7IGRnLXJlcXVpcmUtZWZmZWN0aXZlLXRhcmdldCBmcmVvcmRlciB9ICov CisvKiB7IGRnLW9wdGlvbnMgIi1PMiAtZnNwbGl0LXN0YWNrIiB9ICovCisK K2V4dGVybiB1bnNpZ25lZCBpbnQgc2xlZXAgKHVuc2lnbmVkIGludCk7CisK KyNkZWZpbmUgU0laRSAxMDAwMAorCitjb25zdCBjaGFyICpzYXJyW1NJWkVd OworY29uc3QgY2hhciAqYnVmX2hvdDsKK2NvbnN0IGNoYXIgKmJ1Zl9jb2xk OworCitfX2F0dHJpYnV0ZV9fKChub2lubGluZSkpCit2b2lkIAorZm9vIChp bnQgcGF0aCkKK3sKKyAgaW50IGk7CisgIGlmIChwYXRoKQorICAgIHsKKyAg ICAgIGZvciAoaSA9IDA7IGkgPCBTSVpFOyBpKyspCisJc2FycltpXSA9IGJ1 Zl9ob3Q7CisgICAgfQorICBlbHNlCisgICAgeworICAgICAgZm9yIChpID0g MDsgaSA8IFNJWkU7IGkrKykKKwlzYXJyW2ldID0gYnVmX2NvbGQ7CisgICAg ICBzbGVlcCAoMCk7CisgICAgfQorfQorCitpbnQKK21haW4gKGludCBhcmdj LCBjaGFyICphcmd2W10pCit7CisgIGludCBpOworICBidWZfaG90ID0gICJo ZWxsbyI7CisgIGJ1Zl9jb2xkID0gIndvcmxkIjsKKyAgZm9yIChpID0gMDsg aSA8IDEwMDAwMDA7IGkrKykKKyAgICBmb28gKGFyZ2MpOworICByZXR1cm4g MDsKK30K --001a113db7b433afbe05518b609c--