From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 73169 invoked by alias); 9 Oct 2015 09:18:04 -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 73159 invoked by uid 89); 9 Oct 2015 09:18:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.3 required=5.0 tests=AWL,BAYES_00,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD,UNSUBSCRIBE_BODY autolearn=no version=3.3.2 X-HELO: foss.arm.com Received: from foss.arm.com (HELO foss.arm.com) (217.140.101.70) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 09 Oct 2015 09:18:03 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.72.51.249]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 7F0843C; Fri, 9 Oct 2015 02:18:00 -0700 (PDT) Received: from [10.2.206.27] (unknown [10.2.206.27]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 9FB8F3F687; Fri, 9 Oct 2015 02:18:00 -0700 (PDT) To: "gcc-patches@gcc.gnu.org" Cc: Caroline Tice , Marcus Shawcroft From: Ramana Radhakrishnan Subject: [RFC VTV] Fix VTV for targets that have section anchors. Message-ID: <56178638.4030601@foss.arm.com> Date: Fri, 09 Oct 2015 09:18:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------010809050709030402030500" X-IsSubscribed: yes X-SW-Source: 2015-10/txt/msg00935.txt.bz2 This is a multi-part message in MIME format. --------------010809050709030402030500 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Content-length: 2093 This started as a Friday afternoon project ... It turned out enabling VTV for AArch64 and ARM was a matter of fixing PR67868 which essentially comes from building libvtv with section anchors turned on. The problem was that the flow of control from output_object_block through to switch_section did not have the same special casing for the vtable section that exists in assemble_variable. Once this was done, I managed to build and test aarch64-none-linux-gnu with --enable-vtable-verify, a similar test was done for armhf. Testing showed no regressions in the gcc/ g++ testsuites for aarch64 and armhf Testing showed no failures in libvtv testsuite for aarch64 but a few more failures - see below. Testing showed 2 failures in libstdc++-v3 testsuite compared to without vtable verification. FAIL: libstdc++-abi/abi_check FAIL: experimental/filesystem/iterators/directory_iterator.cc execution test However both these failures also occur on x86_64 - so I'm content to declare victory on AArch64 as far as basic enablement goes. On ARM I see the following failures that I still need to debug - I can see that the failure is because the write to _ZN4_VTVI1BE12__vtable_mapE does not elicit a SEGV but I need to go further than that. FAIL: libvtv.cc/thunk_vtable_map_attack.cc -O0 -fvtable-verify=std execution test FAIL: libvtv.cc/thunk_vtable_map_attack.cc -O2 -fvtable-verify=std execution test FAIL: libvtv.cc/thunk_vtable_map_attack.cc -O0 -fvtable-verify=preinit execution test FAIL: libvtv.cc/thunk_vtable_map_attack.cc -O2 -fvtable-verify=preinit execution test Questions - 1. Are the generic changes to varasm.c ok ? 2. Can we take the AArch64 support in now, given this amount of testing ? Marcus / Caroline ? 3. Any suggestions / helpful debug hints for VTV debugging (other than turning VTV_DEBUG on and inspecting trace) ? There's an arm*-*-* hunk there but I'm easy about applying that right now and figuring out the issues over time. In case we don't fix it for 6.0 we can rip the support out before release. Thanks, Ramana P.S. (Yes, I'll provide a Changelog :) ) --------------010809050709030402030500 Content-Type: text/plain; charset=UTF-8; name="vtv.txt" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vtv.txt" Content-length: 3160 ZGlmZiAtLWdpdCBhL2djYy92YXJhc20uYyBiL2djYy92YXJhc20uYwppbmRl eCA0OGMzNjYyLi5jMTgyY2Q0IDEwMDY0NAotLS0gYS9nY2MvdmFyYXNtLmMK KysrIGIvZ2NjL3ZhcmFzbS5jCkBAIC0yMjM2LDcgKzIyMzYsNyBAQCBhc3Nl bWJsZV92YXJpYWJsZSAodHJlZSBkZWNsLCBpbnQgdG9wX2xldmVsIEFUVFJJ QlVURV9VTlVTRUQsCiAgICAgICAgICBjb2RlIGlzIHJlbW92ZWQsIHRoZSB2 YXJpYWJsZXMgZW5kIHVwIGluIHRoZSBzYW1lIHNlY3Rpb24KICAgICAgICAg IHdpdGggYSBzaW5nbGUgY29tZGF0IG5hbWUuCiAKLSAgICAgICAgIEZJWE1F OiAgcmVzb2x2ZV91bmlxdWVfc2VjdGlvbiBuZWVkcyB0byBkZWFsIGJldHRl ciB3aXRoCisJIEZJWE1FOiAgcmVzb2x2ZV91bmlxdWVfc2VjdGlvbiBuZWVk cyB0byBkZWFsIGJldHRlciB3aXRoCiAgICAgICAgICBkZWNscyB3aXRoIGJv dGggREVDTF9TRUNUSU9OX05BTUUgYW5kIERFQ0xfT05FX09OTFkuICBPbmNl CiAgICAgICAgICB0aGF0IGlzIGZpeGVkLCB0aGlzIGlmLWVsc2Ugc3RhdGVt ZW50IGNhbiBiZSByZXBsYWNlZCB3aXRoCiAgICAgICAgICBhIHNpbmdsZSBj YWxsIHRvICJzd2l0Y2hfdG9fc2VjdGlvbiAoc2VjdCkiLiAgKi8KQEAgLTcz MjksNyArNzMyOSwzMyBAQCBvdXRwdXRfb2JqZWN0X2Jsb2NrIChzdHJ1Y3Qg b2JqZWN0X2Jsb2NrICpibG9jaykKIAogICAvKiBTd2l0Y2ggdG8gdGhlIHNl Y3Rpb24gYW5kIG1ha2Ugc3VyZSB0aGF0IHRoZSBmaXJzdCBieXRlIGlzCiAg ICAgIHN1aXRhYmx5IGFsaWduZWQuICAqLwotICBzd2l0Y2hfdG9fc2VjdGlv biAoYmxvY2stPnNlY3QpOworICAvKiBUaGUgZm9sbG93aW5nIGJpdCBvZiBj b2RlIGVuc3VyZXMgdGhhdCB2dGFibGVfbWFwCisgICAgIHZhcmlhYmxlcyBh cmUgbm90IG9ubHkgaW4gdGhlIGNvbWRhdCBzZWN0aW9uLCBidXQgdGhhdAor ICAgICBlYWNoIHZhcmlhYmxlIGhhcyBpdHMgb3duIHVuaXF1ZSBjb21kYXQg bmFtZS4gIElmIHRoaXMKKyAgICAgY29kZSBpcyByZW1vdmVkLCB0aGUgdmFy aWFibGVzIGVuZCB1cCBpbiB0aGUgc2FtZSBzZWN0aW9uCisgICAgIHdpdGgg YSBzaW5nbGUgY29tZGF0IG5hbWUuCisKKyAgICAgRklYTUU6ICByZXNvbHZl X3VuaXF1ZV9zZWN0aW9uIG5lZWRzIHRvIGRlYWwgYmV0dGVyIHdpdGgKKyAg ICAgZGVjbHMgd2l0aCBib3RoIERFQ0xfU0VDVElPTl9OQU1FIGFuZCBERUNM X09ORV9PTkxZLiAgT25jZQorICAgICB0aGF0IGlzIGZpeGVkLCB0aGlzIGlm LWVsc2Ugc3RhdGVtZW50IGNhbiBiZSByZXBsYWNlZCB3aXRoCisgICAgIGEg c2luZ2xlIGNhbGwgdG8gInN3aXRjaF90b19zZWN0aW9uIChzZWN0KSIuICAq LworICBpZiAoU0VDVElPTl9TVFlMRSAoYmxvY2stPnNlY3QpID09IFNFQ1RJ T05fTkFNRUQKKyAgICAgICYmIGJsb2NrLT5zZWN0LT5uYW1lZC5uYW1lCisg ICAgICAmJiAoc3RyY21wIChibG9jay0+c2VjdC0+bmFtZWQubmFtZSwgIi52 dGFibGVfbWFwX3ZhcnMiKSA9PSAwKSkKKyAgICB7CisjaWYgZGVmaW5lZCAo T0JKRUNUX0ZPUk1BVF9FTEYpCisgICAgICB0YXJnZXRtLmFzbV9vdXQubmFt ZWRfc2VjdGlvbiAoYmxvY2stPnNlY3QtPm5hbWVkLm5hbWUsCisJCQkJICAg ICBibG9jay0+c2VjdC0+bmFtZWQuY29tbW9uLmZsYWdzCisJCQkJICAgICB8 IFNFQ1RJT05fTElOS09OQ0UsCisJCQkJICAgICBERUNMX05BTUUgKGJsb2Nr LT5zZWN0LT5uYW1lZC5kZWNsKSk7CisgICAgICBpbl9zZWN0aW9uID0gYmxv Y2stPnNlY3Q7CisjZWxzZQorICAgICAgc3dpdGNoX3RvX3NlY3Rpb24gKGJs b2NrLT5zZWN0KTsKKyNlbmRpZgorICAgIH0KKyAgZWxzZQorICAgIHN3aXRj aF90b19zZWN0aW9uIChibG9jay0+c2VjdCk7CisKICAgYXNzZW1ibGVfYWxp Z24gKGJsb2NrLT5hbGlnbm1lbnQpOwogCiAgIC8qIERlZmluZSB0aGUgdmFs dWVzIG9mIGFsbCBhbmNob3JzIHJlbGF0aXZlIHRvIHRoZSBjdXJyZW50IHNl Y3Rpb24KZGlmZiAtLWdpdCBhL2xpYnZ0di9jb25maWd1cmUudGd0IGIvbGli dnR2L2NvbmZpZ3VyZS50Z3QKaW5kZXggZTU0MzM3MS4uYWRjZmY1YyAxMDA2 NDQKLS0tIGEvbGlidnR2L2NvbmZpZ3VyZS50Z3QKKysrIGIvbGlidnR2L2Nv bmZpZ3VyZS50Z3QKQEAgLTM3LDYgKzM3LDEwIEBAIGNhc2UgIiR7dGFyZ2V0 fSIgaW4KICAgc3BhcmMqLSotbGludXgqKQogCTs7CiAgIGFybSotKi1saW51 eCopCisJVlRWX1NVUFBPUlRFRD15ZXMKKwk7OworICBhYXJjaDY0Ki0qLWxp bnV4KikKKwlWVFZfU1VQUE9SVEVEPXllcwogCTs7CiAgIHg4Nl82NC0qLWRh cndpblsxXSogfCBpPzg2LSotZGFyd2luWzFdKikKIAk7Owo= --------------010809050709030402030500--