From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 24746 invoked by alias); 28 Aug 2009 13:40:57 -0000 Received: (qmail 24729 invoked by uid 22791); 28 Aug 2009 13:40:55 -0000 X-SWARE-Spam-Status: No, hits=-1.8 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-ew0-f222.google.com (HELO mail-ew0-f222.google.com) (209.85.219.222) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 28 Aug 2009 13:40:47 +0000 Received: by ewy22 with SMTP id 22so2176745ewy.28 for ; Fri, 28 Aug 2009 06:40:42 -0700 (PDT) MIME-Version: 1.0 Received: by 10.216.90.74 with SMTP id d52mr239895wef.51.1251466842193; Fri, 28 Aug 2009 06:40:42 -0700 (PDT) In-Reply-To: <20090828055016.GE19523@bubble.grove.modra.org> References: <20090828000233.GA23692@lucon.org> <20090828031410.GC19523@bubble.grove.modra.org> <6dc9ffc80908272032p5b5a54a6h75caad74a27ffeda@mail.gmail.com> <6dc9ffc80908272055l3daa1368l1f84cfafcc07c2de@mail.gmail.com> <20090828055016.GE19523@bubble.grove.modra.org> Date: Fri, 28 Aug 2009 14:31:00 -0000 Message-ID: <6dc9ffc80908280640q35b52922gda316d43127b7ab7@mail.gmail.com> Subject: Re: PATCH: PR ld/10569: -z max-page-size may not work for linker scripts From: "H.J. Lu" To: binutils Content-Type: multipart/mixed; boundary=0016e6d99d61943e11047233d4e9 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: 2009-08/txt/msg00530.txt.bz2 --0016e6d99d61943e11047233d4e9 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Content-length: 2528 On Thu, Aug 27, 2009 at 10:50 PM, Alan Modra wrote: > On Thu, Aug 27, 2009 at 08:55:46PM -0700, H.J. Lu wrote: >> On Thu, Aug 27, 2009 at 8:32 PM, H.J. Lu wrote: >> > On Thu, Aug 27, 2009 at 8:14 PM, Alan Modra wro= te: >> >> I think this is the wrong place to call bfd_emul_set_maxpagesize >> >> (and the current call in elf32.em is wrong too). =A0You probably shou= ld >> >> be calling bfd_emul_set_maxpagesize in open_output. =A0Also, >> > >> > Will open_output be called before any linker scripts are processed? > > Depends on what you mean by processed. =A0Yes, they are parsed and > converted to internal format before open_output, but why does it > matter? =A0Nothing much depends on maxpagesize until > lang_size_sections. This linker script: --- SECTIONS { .text : {*(.text)} . =3D ALIGN(CONSTANT (MAXPAGESIZE)); .data : {*(.data)} /DISCARD/ : {*(*)} } --- calls fold_name on MAXPAGESIZE before open_output is called. > > Perhaps even a nicer patch would be to put your > bfd_emul_set_maxpagesize calls in a LD_EMUL_SET_OUTPUT_ARCH hook, > which is called just after open_output. > >> >> bfd_emul_get_maxpagesize in fold_name shouldn't be using >> >> default_target. =A0Ditto for commonpagesize. >> >> >> > >> > That is true. I will fix it. >> >> There is no easy fix. Should we just set max/common page sizes for >> all enabled ELF targets? > > Why can't you use output_target? > We may set and get page sizes in linker. In linker script, we should use emulation target, which may be different from output target, to get page size, We need to set page size for emulation target in gld${EMULATION_NAME}_handle_option. We also need to set page size for output target in ldemul_set_output_arch. OK to install? Thanks. H.J. --- ld/ 2009-08-28 H.J. Lu PR ld/10569 * ldemul.c (ldemul_set_output_arch): Set maximum/common page sizes on output target. * ldexp.c: Include "ldfile.h" and "ldemul.h". (fold_name): Use ldemul_choose_target instead of default_target to get maximum/common page sizes. * ldmain.c (main): Initialize config.maxpagesize and config.commonpagesize to (bfd_vma) -1. * emultempl/elf32.em (gld${EMULATION_NAME}_handle_option): Use ldemul_choose_target instead of default_target to set maximum/common page sizes. ld/testsuite 2009-08-28 H.J. Lu PR ld/10569 * ld-elf/commonpage2.d: New. * ld-elf/maxpage4.d: Likewise. * ld-elf/maxpage4.t: Likewise. --0016e6d99d61943e11047233d4e9 Content-Type: application/octet-stream; name="ld-page-size-2.patch" Content-Disposition: attachment; filename="ld-page-size-2.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fywylgjg0 Content-length: 6898 bGQvCgoyMDA5LTA4LTI4ICBILkouIEx1ICA8aG9uZ2ppdS5sdUBpbnRlbC5j b20+CgoJUFIgbGQvMTA1NjkKCSogbGRlbXVsLmMgKGxkZW11bF9zZXRfb3V0 cHV0X2FyY2gpOiBTZXQgbWF4aW11bS9jb21tb24gcGFnZQoJIHNpemVzIG9u IG91dHB1dCB0YXJnZXQuCgoJKiBsZGV4cC5jOiBJbmNsdWRlICJsZGZpbGUu aCIgYW5kICJsZGVtdWwuaCIuCgkoZm9sZF9uYW1lKTogVXNlIGxkZW11bF9j aG9vc2VfdGFyZ2V0IGluc3RlYWQgb2YgZGVmYXVsdF90YXJnZXQKCXRvIGdl dCBtYXhpbXVtL2NvbW1vbiBwYWdlIHNpemVzLgoKCSogbGRtYWluLmMgKG1h aW4pOiBJbml0aWFsaXplIGNvbmZpZy5tYXhwYWdlc2l6ZSBhbmQKCWNvbmZp Zy5jb21tb25wYWdlc2l6ZSB0byAoYmZkX3ZtYSkgLTEuCgoJKiBlbXVsdGVt cGwvZWxmMzIuZW06IFVzZSBsZGVtdWxfY2hvb3NlX3RhcmdldCBpbnN0ZWFk IG9mCglkZWZhdWx0X3RhcmdldCB0byBzZXQgbWF4aW11bS9jb21tb24gcGFn ZSBzaXplcy4KCgpsZC90ZXN0c3VpdGUKCjIwMDktMDgtMjggIEguSi4gTHUg IDxob25naml1Lmx1QGludGVsLmNvbT4KCglQUiBsZC8xMDU2OQoJKiBsZC1l bGYvY29tbW9ucGFnZTIuZDogTmV3LgoJKiBsZC1lbGYvbWF4cGFnZTQuZDog TGlrZXdpc2UuCgkqIGxkLWVsZi9tYXhwYWdlNC50OiBMaWtld2lzZS4KCklu ZGV4OiBlbXVsdGVtcGwvZWxmMzIuZW0KPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZW11bHRlbXBsL2VsZjMyLmVtCShyZXZpc2lvbiA2NjQzKQorKysg ZW11bHRlbXBsL2VsZjMyLmVtCSh3b3JraW5nIGNvcHkpCkBAIC0yMTc4LDgg KzIxNzgsOCBAQCBmcmFnbWVudCA8PEVPRgogCSAgaWYgKCplbmQgfHwgKGNv bmZpZy5tYXhwYWdlc2l6ZSAmIChjb25maWcubWF4cGFnZXNpemUgLSAxKSkg IT0gMCkKIAkgICAgZWluZm8gKF8oIiVQJUY6IGludmFsaWQgbWF4aXVtIHBh Z2Ugc2l6ZSBcYCVzJ1xuIiksCiAJCSAgIG9wdGFyZyArIDE0KTsKLQkgIEFT U0VSVCAoZGVmYXVsdF90YXJnZXQgIT0gTlVMTCk7Ci0JICBiZmRfZW11bF9z ZXRfbWF4cGFnZXNpemUgKGRlZmF1bHRfdGFyZ2V0LCBjb25maWcubWF4cGFn ZXNpemUpOworCSAgYmZkX2VtdWxfc2V0X21heHBhZ2VzaXplIChsZGVtdWxf Y2hvb3NlX3RhcmdldCAoMCwgTlVMTCksCisJCQkJICAgIGNvbmZpZy5tYXhw YWdlc2l6ZSk7CiAJfQogICAgICAgZWxzZSBpZiAoQ09OU1RfU1RSTkVRIChv cHRhcmcsICJjb21tb24tcGFnZS1zaXplPSIpKQogCXsKQEAgLTIxODksOCAr MjE4OSw3IEBAIGZyYWdtZW50IDw8RU9GCiAJICAgICAgfHwgKGNvbmZpZy5j b21tb25wYWdlc2l6ZSAmIChjb25maWcuY29tbW9ucGFnZXNpemUgLSAxKSkg IT0gMCkKIAkgICAgZWluZm8gKF8oIiVQJUY6IGludmFsaWQgY29tbW9uIHBh Z2Ugc2l6ZSBcYCVzJ1xuIiksCiAJCSAgIG9wdGFyZyArIDE3KTsKLQkgIEFT U0VSVCAoZGVmYXVsdF90YXJnZXQgIT0gTlVMTCk7Ci0JICBiZmRfZW11bF9z ZXRfY29tbW9ucGFnZXNpemUgKGRlZmF1bHRfdGFyZ2V0LAorCSAgYmZkX2Vt dWxfc2V0X2NvbW1vbnBhZ2VzaXplIChsZGVtdWxfY2hvb3NlX3RhcmdldCAo MCwgTlVMTCksCiAJCQkJICAgICAgIGNvbmZpZy5jb21tb25wYWdlc2l6ZSk7 CiAJfQogICAgICAgLyogV2hhdCBhYm91dCB0aGUgb3RoZXIgU29sYXJpcyAt eiBvcHRpb25zPyBGSVhNRS4gICovCkluZGV4OiB0ZXN0c3VpdGUvbGQtZWxm L21heHBhZ2U0LmQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1 aXRlL2xkLWVsZi9tYXhwYWdlNC5kCShyZXZpc2lvbiAwKQorKysgdGVzdHN1 aXRlL2xkLWVsZi9tYXhwYWdlNC5kCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx LDkgQEAKKyNzb3VyY2U6IG1heHBhZ2UxLnMKKyNhczogLS0zMgorI2xkOiAt eiBtYXgtcGFnZS1zaXplPTB4MjAwMDAwIC1UIG1heHBhZ2U0LnQKKyNyZWFk ZWxmOiAtbCAtLXdpZGUKKyN0YXJnZXQ6IHg4Nl82NC0qLWxpbnV4KgorCisj Li4uCisgIExPQUQrLioweDIwMDAwMAorI3Bhc3MKSW5kZXg6IHRlc3RzdWl0 ZS9sZC1lbGYvbWF4cGFnZTQudAo9PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSB0ZXN0c3VpdGUvbGQtZWxmL21heHBhZ2U0LnQJKHJldmlzaW9uIDApCisr KyB0ZXN0c3VpdGUvbGQtZWxmL21heHBhZ2U0LnQJKHJldmlzaW9uIDApCkBA IC0wLDAgKzEsOSBAQAorT1VUUFVUX0ZPUk1BVCgiZWxmMzItaTM4NiIpCitP VVRQVVRfQVJDSChpMzg2KQorRU5UUlkoX3N0YXJ0KQorU0VDVElPTlMKK3sK KyAgLnRleHQgOiB7KigudGV4dCl9CisgIC5kYXRhIDogeyooLmRhdGEpfQor ICAvRElTQ0FSRC8gOiB7KigqKX0KK30KSW5kZXg6IHRlc3RzdWl0ZS9sZC1l bGYvY29tbW9ucGFnZTIuZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0 ZXN0c3VpdGUvbGQtZWxmL2NvbW1vbnBhZ2UyLmQJKHJldmlzaW9uIDApCisr KyB0ZXN0c3VpdGUvbGQtZWxmL2NvbW1vbnBhZ2UyLmQJKHJldmlzaW9uIDAp CkBAIC0wLDAgKzEsOSBAQAorI3NvdXJjZTogbWF4cGFnZTEucworI2FzOiAt LTMyCisjbGQ6IC16IG1heC1wYWdlLXNpemU9MHgyMDAwMDAgLXogY29tbW9u LXBhZ2Utc2l6ZT0weDEwMDAwMCAtVCBtYXhwYWdlNC50CisjcmVhZGVsZjog LWwgLS13aWRlCisjdGFyZ2V0OiB4ODZfNjQtKi1saW51eCoKKworIy4uLgor ICBMT0FEKy4qMHgyMDAwMDAKKyNwYXNzCkluZGV4OiBsZG1haW4uYwo9PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09Ci0tLSBsZG1haW4uYwkocmV2aXNpb24gNjYw MCkKKysrIGxkbWFpbi5jCSh3b3JraW5nIGNvcHkpCkBAIC0yNDgsNiArMjQ4 LDggQEAgbWFpbiAoaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogICBjb25maWcu bWFrZV9leGVjdXRhYmxlID0gVFJVRTsKICAgY29uZmlnLm1hZ2ljX2RlbWFu ZF9wYWdlZCA9IFRSVUU7CiAgIGNvbmZpZy50ZXh0X3JlYWRfb25seSA9IFRS VUU7CisgIGNvbmZpZy5tYXhwYWdlc2l6ZSA9IChiZmRfdm1hKSAtMTsKKyAg Y29uZmlnLmNvbW1vbnBhZ2VzaXplID0gKGJmZF92bWEpIC0xOwogCiAgIGNv bW1hbmRfbGluZS53YXJuX21pc21hdGNoID0gVFJVRTsKICAgY29tbWFuZF9s aW5lLndhcm5fc2VhcmNoX21pc21hdGNoID0gVFJVRTsKSW5kZXg6IGxkZW11 bC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGxkZW11bC5jCShyZXZp c2lvbiA2NjAwKQorKysgbGRlbXVsLmMJKHdvcmtpbmcgY29weSkKQEAgLTgy LDYgKzgyLDIxIEBAIHZvaWQKIGxkZW11bF9zZXRfb3V0cHV0X2FyY2ggKHZv aWQpCiB7CiAgIGxkX2VtdWxhdGlvbi0+c2V0X291dHB1dF9hcmNoICgpOwor CisgIGlmIChjb25maWcubWF4cGFnZXNpemUgIT0gKGJmZF92bWEpIC0xCisg ICAgICB8fCBjb25maWcuY29tbW9ucGFnZXNpemUgIT0gKGJmZF92bWEpIC0x KQorICAgIHsKKyAgICAgIGNvbnN0IGNoYXIgKm91dHB1dF90YXJnZXQgPSBs YW5nX2dldF9vdXRwdXRfdGFyZ2V0ICgpOworCisgICAgICBpZiAoY29uZmln Lm1heHBhZ2VzaXplICE9IChiZmRfdm1hKSAtMSkKKwliZmRfZW11bF9zZXRf bWF4cGFnZXNpemUgKG91dHB1dF90YXJnZXQsCisJCQkJICBjb25maWcubWF4 cGFnZXNpemUpOworCisgICAgICBpZiAoY29uZmlnLmNvbW1vbnBhZ2VzaXpl ICE9IChiZmRfdm1hKSAtMSkKKwliZmRfZW11bF9zZXRfY29tbW9ucGFnZXNp emUgKG91dHB1dF90YXJnZXQsCisJCQkJICAgICBjb25maWcuY29tbW9ucGFn ZXNpemUpOworCisgICAgfQogfQogCiB2b2lkCkluZGV4OiBsZGV4cC5jCj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT0KLS0tIGxkZXhwLmMJKHJldmlzaW9uIDY2 MDApCisrKyBsZGV4cC5jCSh3b3JraW5nIGNvcHkpCkBAIC00MCw2ICs0MCw4 IEBACiAjaW5jbHVkZSAibGRsZXguaCIKICNpbmNsdWRlIDxsZGdyYW0uaD4K ICNpbmNsdWRlICJsZGxhbmcuaCIKKyNpbmNsdWRlICJsZGZpbGUuaCIKKyNp bmNsdWRlICJsZGVtdWwuaCIKICNpbmNsdWRlICJsaWJpYmVydHkuaCIKICNp bmNsdWRlICJzYWZlLWN0eXBlLmgiCiAKQEAgLTQ4Miw2ICs0ODQsOCBAQCBm b2xkX3RyaW5hcnkgKGV0cmVlX3R5cGUgKnRyZWUpCiBzdGF0aWMgdm9pZAog Zm9sZF9uYW1lIChldHJlZV90eXBlICp0cmVlKQogeworICBjb25zdCBjaGFy ICp0YXJnZXQ7CisKICAgbWVtc2V0ICgmZXhwbGQucmVzdWx0LCAwLCBzaXpl b2YgKGV4cGxkLnJlc3VsdCkpOwogCiAgIHN3aXRjaCAodHJlZS0+dHlwZS5u b2RlX2NvZGUpCkBAIC02NzIsMTAgKzY3NiwxMSBAQCBmb2xkX25hbWUgKGV0 cmVlX3R5cGUgKnRyZWUpCiAgICAgICBicmVhazsKIAogICAgIGNhc2UgQ09O U1RBTlQ6CisgICAgICB0YXJnZXQgPSBsZGVtdWxfY2hvb3NlX3RhcmdldCAo MCwgTlVMTCk7CiAgICAgICBpZiAoc3RyY21wICh0cmVlLT5uYW1lLm5hbWUs ICJNQVhQQUdFU0laRSIpID09IDApCi0JbmV3X2FicyAoYmZkX2VtdWxfZ2V0 X21heHBhZ2VzaXplIChkZWZhdWx0X3RhcmdldCkpOworCW5ld19hYnMgKGJm ZF9lbXVsX2dldF9tYXhwYWdlc2l6ZSAodGFyZ2V0KSk7CiAgICAgICBlbHNl IGlmIChzdHJjbXAgKHRyZWUtPm5hbWUubmFtZSwgIkNPTU1PTlBBR0VTSVpF IikgPT0gMCkKLQluZXdfYWJzIChiZmRfZW11bF9nZXRfY29tbW9ucGFnZXNp emUgKGRlZmF1bHRfdGFyZ2V0KSk7CisJbmV3X2FicyAoYmZkX2VtdWxfZ2V0 X2NvbW1vbnBhZ2VzaXplICh0YXJnZXQpKTsKICAgICAgIGVsc2UKIAllaW5m byAoXygiJUYlUzogdW5rbm93biBjb25zdGFudCBgJXMnIHJlZmVyZW5jZWQg aW4gZXhwcmVzc2lvblxuIiksCiAJICAgICAgIHRyZWUtPm5hbWUubmFtZSk7 Cg== --0016e6d99d61943e11047233d4e9--