From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1095 invoked by alias); 19 Oct 2010 18:54:20 -0000 Received: (qmail 1084 invoked by uid 22791); 19 Oct 2010 18:54:16 -0000 X-SWARE-Spam-Status: No, hits=3.2 required=5.0 tests=AWL,BAYES_00,CHARSET_FARAWAY_HEADER,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MIME_CHARSET_FARAWAY,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from smtp-out.google.com (HELO smtp-out.google.com) (74.125.121.35) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Tue, 19 Oct 2010 18:54:06 +0000 Received: from kpbe18.cbf.corp.google.com (kpbe18.cbf.corp.google.com [172.25.105.82]) by smtp-out.google.com with ESMTP id o9JIs1KD032716 for ; Tue, 19 Oct 2010 11:54:03 -0700 Received: from pzk1 (pzk1.prod.google.com [10.243.19.129]) by kpbe18.cbf.corp.google.com with ESMTP id o9JIpnfo027409 for ; Tue, 19 Oct 2010 11:54:00 -0700 Received: by pzk1 with SMTP id 1so45743pzk.35 for ; Tue, 19 Oct 2010 11:53:59 -0700 (PDT) MIME-Version: 1.0 Received: by 10.143.157.16 with SMTP id j16mr5066111wfo.424.1287514432653; Tue, 19 Oct 2010 11:53:52 -0700 (PDT) Received: by 10.143.167.19 with HTTP; Tue, 19 Oct 2010 11:53:52 -0700 (PDT) In-Reply-To: References: Date: Tue, 19 Oct 2010 18:54:00 -0000 Message-ID: Subject: Re: [GOLD][PATCH] Set SHF_LINK_ORDER flags of ARM EXIDX sections. From: =?Big5?B?RG91ZyBLd2FuICjD9q62vHcp?= To: Ian Lance Taylor Cc: binutils Content-Type: multipart/mixed; boundary=001636e90a8266c8e50492fcd03e X-System-Of-Record: true X-IsSubscribed: yes Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org X-SW-Source: 2010-10/txt/msg00312.txt.bz2 --001636e90a8266c8e50492fcd03e Content-Type: text/plain; charset=Big5 Content-Transfer-Encoding: quoted-printable Content-length: 2840 Here is a revised patch. -Doug 2010-10-19 Doug Kwan * arm.cc (Target_arm::do_finalize_sections): Force SHF_LINK_ORDER flag in section headers of EXIDX sections in a relocatable link. * output.cc (Output_section::Output_section): Initialize member force_link_order_. * output.h (Output_section::force_link_order): New method. (Output_section::set_force_link_order): Ditto. (Output_section::force_link_order_): New data member. =A6b 2010=A6~10=A4=EB20=A4=E9=A4W=A4=C812:53=A1AIan Lance Taylor =BCg=B9D=A1G > "Doug Kwan (=C3=F6=AE=B6=BCw)" writes: > >> Gold does not handle SHF_LINK_ORDER flag in general, we drop the flag >> when searching for an output section. >> >> Output_section* >> Layout::choose_output_section(const Relobj* relobj, const char* name, >> elfcpp::Elf_Word type, elfcpp::Elf_Xword f= lags, >> bool is_input_section, Output_section_orde= r order, >> bool is_relro) >> ... >> >> // Some flags in the input section should not be automatically >> // copied to the output section. >> flags &=3D ~ (elfcpp::SHF_INFO_LINK >> | elfcpp::SHF_LINK_ORDER >> | elfcpp::SHF_GROUP >> | elfcpp::SHF_MERGE > > Oh yeah, sorry about that. > > That is incorrect when generating relocatable output. Rather than > testing for SHT_ARM_EXIDX in the target-independent code, suppose we add > another bit flag to Output_section. Then we can set it if > SHF_LINK_ORDER is set in the input section, which will be correct once > we finally support SHF_LINK_ORDER. And the ARM backend can set it at > will. > > Ian > >> =A6b 2010=A6~10=A4=EB19=A4=E9=A4U=A4=C810:07=A1AIan Lance Taylor =BCg=B9D=A1G >>> "Doug Kwan (=C3=F6=AE=B6=BCw)" writes: >>> >>>> This patch changes code writing output section headers so that the >>>> SHF_LINK_ORDER flag of a section of type SHT_ARM_EXIDX is always set. >>>> The flag is required to be set for such a section by the ARM EHABI. >>>> The existing code drops the SHF_LINK_ORDER flag and that confuses >>>> other tools. Gold does not handle SHF_LINK_ORDER in general but the >>>> ARM back-end can handle the EXIDX sections. >>>> >>>> -Doug >>>> >>>> >>>> 2010-10-19 Doug Kwan >>>> >>>> * output.cc(Output_section::write_header): Set SHF_LINK_ORDER = flags of >>>> ARM EXIDX sections. >>> >>> I don't see the ARM backend actually creating any SHT_ARM_EXIDX >>> sections. So it seems to me that they are input sections. If the ABI >>> requires the input sections to have the SHF_LINK_ORDER flag set, then >>> that setting should carry through to the output section. Does that not >>> happen? >>> >>> Ian >>> > --001636e90a8266c8e50492fcd03e Content-Type: text/plain; charset=US-ASCII; name="patch-link-order.txt" Content-Disposition: attachment; filename="patch-link-order.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gfh4ug9j0 Content-length: 3778 SW5kZXg6IGdvbGQvYXJtLmNjCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNT IGZpbGU6IC9jdnMvc3JjL3NyYy9nb2xkL2FybS5jYyx2CnJldHJpZXZpbmcg cmV2aXNpb24gMS4xMjQKZGlmZiAtdSAtdSAtcCAtcjEuMTI0IGFybS5jYwot LS0gZ29sZC9hcm0uY2MJMTcgT2N0IDIwMTAgMTU6MTI6NTAgLTAwMDAJMS4x MjQKKysrIGdvbGQvYXJtLmNjCTE5IE9jdCAyMDEwIDE4OjM3OjAxIC0wMDAw CkBAIC04NDk3LDYgKzg0OTcsOSBAQCBUYXJnZXRfYXJtPGJpZ19lbmRpYW4+ Ojpkb19maW5hbGl6ZV9zZWN0CiAJQXJtX291dHB1dF9zZWN0aW9uPGJpZ19l bmRpYW4+KiBvcyA9CiAJICBBcm1fb3V0cHV0X3NlY3Rpb248YmlnX2VuZGlh bj46OmFzX2FybV9vdXRwdXRfc2VjdGlvbigqcCk7CiAJb3MtPnNldF9leGlk eF9zZWN0aW9uX2xpbmsoKTsKKwkvLyBNYWtlIHN1cmUgU0hGX0xJTktfT1JE RVIgZmxhZyBpcyBzZXQuCisJaWYgKHBhcmFtZXRlcnMtPm9wdGlvbnMoKS5y ZWxvY2F0YWJsZSgpKQorCSAgb3MtPnNldF9mb3JjZV9saW5rX29yZGVyKHRy dWUpOwogICAgICAgfQogfQogCkluZGV4OiBnb2xkL291dHB1dC5jYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ29s ZC9vdXRwdXQuY2MsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMTM2CmRpZmYg LXUgLXUgLXAgLXIxLjEzNiBvdXRwdXQuY2MKLS0tIGdvbGQvb3V0cHV0LmNj CTE4IE9jdCAyMDEwIDA1OjM5OjIzIC0wMDAwCTEuMTM2CisrKyBnb2xkL291 dHB1dC5jYwkxOSBPY3QgMjAxMCAxODozNzowMSAtMDAwMApAQCAtMjAwNSw3 ICsyMDA1LDggQEAgT3V0cHV0X3NlY3Rpb246Ok91dHB1dF9zZWN0aW9uKGNv bnN0IGNoYQogICAgIGFsd2F5c19rZWVwc19pbnB1dF9zZWN0aW9uc18oZmFs c2UpLAogICAgIHRsc19vZmZzZXRfKDApLAogICAgIGNoZWNrcG9pbnRfKE5V TEwpLAotICAgIGxvb2t1cF9tYXBzXyhuZXcgT3V0cHV0X3NlY3Rpb25fbG9v a3VwX21hcHMpCisgICAgbG9va3VwX21hcHNfKG5ldyBPdXRwdXRfc2VjdGlv bl9sb29rdXBfbWFwcyksCisgICAgZm9yY2VfbGlua19vcmRlcl8oZmFsc2Up CiB7CiAgIC8vIEFuIHVuYWxsb2NhdGVkIHNlY3Rpb24gaGFzIG5vIGFkZHJl c3MuICBGb3JjaW5nIHRoaXMgbWVhbnMgdGhhdAogICAvLyB3ZSBkb24ndCBu ZWVkIHNwZWNpYWwgdHJlYXRtZW50IGZvciBzeW1ib2xzIGRlZmluZWQgaW4g ZGVidWcKQEAgLTMwOTEsNiArMzA5Miw4IEBAIE91dHB1dF9zZWN0aW9uOjp3 cml0ZV9oZWFkZXIoY29uc3QgTGF5b3UKICAgZWxmY3BwOjpFbGZfWHdvcmQg ZmxhZ3MgPSB0aGlzLT5mbGFnc187CiAgIGlmICh0aGlzLT5pbmZvX3NlY3Rp b25fICE9IE5VTEwgJiYgdGhpcy0+aW5mb191c2VzX3NlY3Rpb25faW5kZXhf KQogICAgIGZsYWdzIHw9IGVsZmNwcDo6U0hGX0lORk9fTElOSzsKKyAgaWYg KHRoaXMtPmZvcmNlX2xpbmtfb3JkZXJfKQorICAgIGZsYWdzIHw9IGVsZmNw cDo6U0hGX0xJTktfT1JERVI7CiAgIG9zaGRyLT5wdXRfc2hfZmxhZ3MoZmxh Z3MpOwogCiAgIG9zaGRyLT5wdXRfc2hfYWRkcih0aGlzLT5hZGRyZXNzKCkp OwpJbmRleDogZ29sZC9vdXRwdXQuaAo9PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 ClJDUyBmaWxlOiAvY3ZzL3NyYy9zcmMvZ29sZC9vdXRwdXQuaCx2CnJldHJp ZXZpbmcgcmV2aXNpb24gMS4xMTUKZGlmZiAtdSAtdSAtcCAtcjEuMTE1IG91 dHB1dC5oCi0tLSBnb2xkL291dHB1dC5oCTE4IE9jdCAyMDEwIDA1OjM5OjIz IC0wMDAwCTEuMTE1CisrKyBnb2xkL291dHB1dC5oCTE5IE9jdCAyMDEwIDE4 OjM3OjAxIC0wMDAwCkBAIC0zMzE0LDYgKzMzMTQsMTYgQEAgY2xhc3MgT3V0 cHV0X3NlY3Rpb24gOiBwdWJsaWMgT3V0cHV0X2RhdAogICB2b2lkCiAgIHBy aW50X21lcmdlX3N0YXRzKCk7CiAKKyAgLy8gV2hldGhlciB3ZSBhbHdheXMg c2V0IFNIRl9MSU5LX09SREVSIGluIHNlY3Rpb24gaGVhZGVyLgorICBib29s CisgIGZvcmNlX2xpbmtfb3JkZXIoKSBjb25zdAorICB7IHJldHVybiB0aGlz LT5mb3JjZV9saW5rX29yZGVyXzsgfQorCisgIC8vIEZvcmNlIHNldHRpbmcg U0hGX0xJTktfT1JERVIgaW4gb3V0cHV0IHNlY3Rpb24gaGVhZGVyLiAKKyAg dm9pZAorICBzZXRfZm9yY2VfbGlua19vcmRlcihib29sIHZhbHVlKQorICB7 IHRoaXMtPmZvcmNlX2xpbmtfb3JkZXJfID0gdmFsdWU7IH0KKwogIHByb3Rl Y3RlZDoKICAgLy8gUmV0dXJuIHRoZSBvdXRwdXQgc2VjdGlvbi0taS5lLiwg dGhlIG9iamVjdCBpdHNlbGYuCiAgIE91dHB1dF9zZWN0aW9uKgpAQCAtMzc2 NSw2ICszNzc1LDggQEAgY2xhc3MgT3V0cHV0X3NlY3Rpb24gOiBwdWJsaWMg T3V0cHV0X2RhdAogICBDaGVja3BvaW50X291dHB1dF9zZWN0aW9uKiBjaGVj a3BvaW50XzsKICAgLy8gRmFzdCBsb29rdXAgbWFwcyBmb3IgbWVyZ2VkIGFu ZCByZWxheGVkIGlucHV0IHNlY3Rpb25zLgogICBPdXRwdXRfc2VjdGlvbl9s b29rdXBfbWFwcyogbG9va3VwX21hcHNfOworICAvLyBGb3JjZSBTSEZfTElO S19PUkRFUiBpbiBzZWN0aW9uIGhlYWRlci4KKyAgYm9vbCBmb3JjZV9saW5r X29yZGVyXzsKIH07CiAKIC8vIEFuIG91dHB1dCBzZWdtZW50LiAgUFRfTE9B RCBzZWdtZW50cyBhcmUgYnVpbHQgZnJvbSBjb2xsZWN0aW9ucyBvZgo= --001636e90a8266c8e50492fcd03e--