From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-yw1-x1136.google.com (mail-yw1-x1136.google.com [IPv6:2607:f8b0:4864:20::1136]) by sourceware.org (Postfix) with ESMTPS id ED2FA3858D28 for ; Mon, 8 Apr 2024 14:27:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org ED2FA3858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org ED2FA3858D28 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::1136 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712586438; cv=none; b=JO/EoEZ8oIcPVr1P16mv7tpquNEq7ZGaA4jh6P9d9/belhiyugvyoNlv36dxY1uxKE+WZBbanIwOp7g24PN7hi0Xt2cG7n1YyOc1pMezFm5X0wZHZXYg7gOBVapcwJ41zkhq9A9NBCvS8oBTdaRlB0jU09scUDTBZRWAlWpMiKo= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1712586438; c=relaxed/simple; bh=wUi1SWhktg5qU1s3V37oq0o6CwkY7QWMPj4/za3flv4=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=EIHmOMW8IIDRW730/BRVa3+M/b3jFeQwQ2bsSSEiQrBDV/Q7gDAO7lE3PygIRHeerCIP2+qc8b7k2NPCl64vgEuyerYQN+YpLYxhCKCTrXsRKe7UUVt9xPH4AVRtEZj6546YrWn9ysKeLdoKijJ5y+DMoPBUPBCCvNuwin0PCsM= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-yw1-x1136.google.com with SMTP id 00721157ae682-614b02f8ed6so48274837b3.0 for ; Mon, 08 Apr 2024 07:27:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1712586436; x=1713191236; darn=sourceware.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=7OCYmdSXxiqkOLLbgibwFffeGpFDDvvI4xlP8BvqdXE=; b=k1Jg5v1T5DpBMOUbq7AXFhJMTFsGc3JnvQVjVZGlbJuFtGn3HZiH+GqyDma2ZAL0gz g2PXWPV8vA6DCWxazSUMCMB24s34Oz0kW6x8/NmZvd1w8m7VyOQ9tDtawu3bgZ1ivfUc kZWEUJ6O0lrLrSyVP9X7Kz797zaYkPgKRVov7gdnxeVzyzWnsX2uMESuVv79N1CTw9us O1NPcnXpbFuw7AXUkhMV0AMOkC78T3Zg3elR+nmDQqTaL0cogLROcqM9CXAol/ZLSOOV B/+29IQ0+Pe5k6Iw9COq6EApwunW6vKuO1bvg96/VPUUK5gy6vvFthduOd6R97cQ9Z1n SYDQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1712586436; x=1713191236; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=7OCYmdSXxiqkOLLbgibwFffeGpFDDvvI4xlP8BvqdXE=; b=HxCuDfM2KfQDiksJMdg0tO+tTFP4IgVlk1PVZhk05DZ9nLrP5N1cMORdvAocJ2+cC8 hhgrwT3RnrBKi9+SRSzO8XFZw91/X9lwmxWd8lQM9dQ43KNONkg3bELwaA26cUl2QdIO UdxeX6ZLUaPGHYqP2U0G1nF/XxcxE41xhMMS+RX+Iizn3XmEiOaDjrueiRw3kplMt2aV DDzCLWzBb+OE/mW8NcOgD8hI1ay3zjQtIzWWdD1LEQQhF2KjWv83+d/w9Lg5VIChC82t 7EiuoSUamakqhQu4jFcQ1Mp1vhG/4FkcnBLr/wN0U7VdWa0cvvk4OQUMj5tJp9PTPva2 Xm7g== X-Gm-Message-State: AOJu0Yw6/2+UYG88oHdTRkzAbFTiIE6pjCt42OKcoprQAm9XE35Z0/i+ okD/6E6DG1thL988O8xoRD0ZaOwFmftm1eDKQBCwH663HPKsAcVuLzxifD5EezkpbwcleRFc9uz XBfME6lORc1CHxdoeptqnLd/1kKM= X-Google-Smtp-Source: AGHT+IGHLzlHivqjP9C5rSQwTEdqOzLJqpSGepqWlztKo3QjH3Yin4NwYgkJzDxTgnqQyJP5kSOJhLZewQdA2OAAfUo= X-Received: by 2002:a05:6902:1023:b0:de0:ee2c:b828 with SMTP id x3-20020a056902102300b00de0ee2cb828mr3013273ybt.25.1712586433935; Mon, 08 Apr 2024 07:27:13 -0700 (PDT) MIME-Version: 1.0 References: <20240317121912.799372-1-hjl.tools@gmail.com> <20240317121912.799372-2-hjl.tools@gmail.com> <6665080c-42e3-4fd7-a843-460de7cef778@polymtl.ca> In-Reply-To: <6665080c-42e3-4fd7-a843-460de7cef778@polymtl.ca> From: "H.J. Lu" Date: Mon, 8 Apr 2024 07:26:37 -0700 Message-ID: Subject: [PATCH] bfd: Define pagesize variables only for mmap To: Simon Marchi Cc: Binutils , Noah Goldstein , Sam James , Alan Modra Content-Type: multipart/mixed; boundary="0000000000000b753f0615969a81" X-Spam-Status: No, score=-3013.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: --0000000000000b753f0615969a81 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sun, Apr 7, 2024 at 8:58=E2=80=AFPM Simon Marchi wrote: > > > > On 2024-03-17 08:19, H.J. Lu wrote: > > There are many linker input files in LLVM debug build with huge string > > sections. All these string sections can be treated as read-only. But > > linker copies all of them into memory which consumes huge amount of > > memory and slows down linker significantly. > > > > Add _bfd_mmap_readonly_persistent and _bfd_mmap_readonly_temporary to > > mmap in reado-only sections with size >=3D 4 * page size. > > > > NB: All string sections in valid ELF inputs must be null terminated. > > There is no need to terminate it again and string sections are mmapped > > as read-only. > > > > * bfd.c (bfd_mmapped_entry): New. > > (bfd_mmapped): Likewise. > > (bfd): Add mmapped. > > * bfdwin.c (bfd_get_file_window): Use _bfd_pagesize. > > * cache.c (cache_bmmap): Remove pagesize_m1 and use pagesize_m1 > > instead. > > * elf.c (bfd_elf_get_str_section): Call > > _bfd_mmap_readonly_persistent instead of _bfd_alloc_and_read. > > Don't terminate the string section again. > > (get_hash_table_data): Call _bfd_mmap_readonly_temporary and > > _bfd_munmap_readonly_temporary instead of _bfd_malloc_and_read > > and free. > > (_bfd_elf_get_dynamic_symbols): Call _bfd_mmap_readonly_persisten= t > > instead of _bfd_alloc_and_read. Don't terminate the string > > section again. Call _bfd_mmap_readonly_temporary and > > _bfd_munmap_readonly_temporary instead of _bfd_malloc_and_read > > and free. > > (_bfd_elf_slurp_version_tables): Call _bfd_mmap_readonly_temporar= y > > and _bfd_munmap_readonly_temporary instead of _bfd_malloc_and_rea= d > > and free. > > * elflink.c (bfd_elf_link_record_dynamic_symbol): Use bfd_malloc > > to get the unversioned symbol. > > * libbfd-in.h (_bfd_pagesize): New. > > (_bfd_pagesize_m1): Likewise. > > (_bfd_minimum_mmap_size): Likewise. > > (_bfd_mmap_readonly_persistent): Likewise. > > (_bfd_mmap_readonly_temporary): Likewise. > > (_bfd_munmap_readonly_temporary): Likewise. > > * libbfd.c > > (bfd_allocate_mmapped_page): New. > > (_bfd_mmap_readonly_temporary): Likewise. > > (_bfd_munmap_readonly_temporary): Likewise. > > (_bfd_mmap_readonly_persistent): Likewise. > > (_bfd_pagesize): Likewise. > > (_bfd_pagesize_m1): Likewise. > > (_bfd_minimum_mmap_size): Likewise. > > (bfd_init_pagesize): Likewise. > > * lynx-core.c (lynx_core_file_p): Use _bfd_pagesize. > > * opncls.c (_bfd_delete_bfd): Munmap tracked mmapped memories. > > * sysdep.h (MAP_ANONYMOUS): New. Define if undefined. > > * bfd-in2.h: Regenerated. > > * libbfd.h: Likewise. > > Hi, > > Since this commit, when building for --host=3Dx86_64-w64-mingw32, I get: > > > make[4]: Entering directory '/home/simark/build/binutils-gdb-x86_64-w64-m= ingw32/bfd' > CC libbfd.lo > /home/simark/src/binutils-gdb/bfd/libbfd.c: In function =E2=80=98bfd_init= _pagesize=E2=80=99: > /home/simark/src/binutils-gdb/bfd/libbfd.c:1583:19: error: implicit decla= ration of function =E2=80=98getpagesize=E2=80=99 [-Werror=3Dimplicit-functi= on-declaration] > 1583 | _bfd_pagesize =3D getpagesize (); > | ^~~~~~~~~~~ > > Simon Please try this patch. --=20 H.J. --0000000000000b753f0615969a81 Content-Type: application/x-patch; name="0001-bfd-Define-pagesize-variables-only-for-mmap.patch" Content-Disposition: attachment; filename="0001-bfd-Define-pagesize-variables-only-for-mmap.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_lur1ohsm0 RnJvbSAwYjhiYjYzNGZjNjlmOTEwZWNjZmUzY2Q3NDg2M2RlYjQ1ZjNlYzIwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhqbC50b29sc0BnbWFpbC5jb20+CkRhdGU6 IE1vbiwgOCBBcHIgMjAyNCAwNzoyMTo1NCAtMDcwMApTdWJqZWN0OiBbUEFUQ0hdIGJmZDogRGVm aW5lIHBhZ2VzaXplIHZhcmlhYmxlcyBvbmx5IGZvciBtbWFwCgpEZWZpbmUgX2JmZF9wYWdlc2l6 ZSwgX2JmZF9wYWdlc2l6ZV9tMSBhbmQgX2JmZF9taW5pbXVtX21tYXBfc2l6ZSBvbmx5CmlmIEhB VkVfTU1BUCBpcyBkZWZpbmVkLgoKCSogbGliYmZkLWluLmggKF9iZmRfcGFnZXNpemUpOiBEZWNs YXJlIG9ubHkgaWYgSEFWRV9NTUFQIGlzCglkZWZpbmVkLgoJKF9iZmRfcGFnZXNpemVfbTEpOiBM aWtld2lzZS4KCShfYmZkX21pbmltdW1fbW1hcF9zaXplKTogTGlrZXdpc2UuCgkqIGxpYmJmZC5j IChfYmZkX3BhZ2VzaXplKTogRGVmaW5lIG9ubHkgaWYgSEFWRV9NTUFQIGlzIGRlZmluZWQuCgko X2JmZF9wYWdlc2l6ZV9tMSk6IExpa2V3aXNlLgoJKF9iZmRfbWluaW11bV9tbWFwX3NpemUpOiBM aWtld2lzZS4KCShiZmRfaW5pdF9wYWdlc2l6ZSk6IExpa2V3aXNlLgotLS0KIGJmZC9saWJiZmQt aW4uaCB8IDIgKysKIGJmZC9saWJiZmQuYyAgICB8IDIgKysKIGJmZC9saWJiZmQuaCAgICB8IDIg KysKIDMgZmlsZXMgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvYmZkL2xp YmJmZC1pbi5oIGIvYmZkL2xpYmJmZC1pbi5oCmluZGV4IDdiZmM1OGYxMmQ4Li44MTg5OGQ0MDZh YiAxMDA2NDQKLS0tIGEvYmZkL2xpYmJmZC1pbi5oCisrKyBiL2JmZC9saWJiZmQtaW4uaApAQCAt ODQ4LDkgKzg0OCwxMSBAQCBleHRlcm4gYmZkX2J5dGUgKiBfYmZkX3dyaXRlX3Vuc2lnbmVkX2xl YjEyOAogZXh0ZXJuIHN0cnVjdCBiZmRfbGlua19pbmZvICpfYmZkX2dldF9saW5rX2luZm8gKGJm ZCAqKQogICBBVFRSSUJVVEVfSElEREVOOwogCisjaWZkZWYgSEFWRV9NTUFQCiBleHRlcm4gdWlu dHB0cl90IF9iZmRfcGFnZXNpemUgQVRUUklCVVRFX0hJRERFTjsKIGV4dGVybiB1aW50cHRyX3Qg X2JmZF9wYWdlc2l6ZV9tMSBBVFRSSUJVVEVfSElEREVOOwogZXh0ZXJuIHVpbnRwdHJfdCBfYmZk X21pbmltdW1fbW1hcF9zaXplIEFUVFJJQlVURV9ISURERU47CisjZW5kaWYKIAogI2lmIEdDQ19W RVJTSU9OID49IDcwMDAKICNkZWZpbmUgX2JmZF9tdWxfb3ZlcmZsb3coYSwgYiwgcmVzKSBfX2J1 aWx0aW5fbXVsX292ZXJmbG93IChhLCBiLCByZXMpCmRpZmYgLS1naXQgYS9iZmQvbGliYmZkLmMg Yi9iZmQvbGliYmZkLmMKaW5kZXggODYzNjZlNDk2YzUuLmU5MmVkNWUxOGEyIDEwMDY0NAotLS0g YS9iZmQvbGliYmZkLmMKKysrIGIvYmZkL2xpYmJmZC5jCkBAIC0xNTcyLDYgKzE1NzIsNyBAQCBf YmZkX2dlbmVyaWNfaW5pdF9wcml2YXRlX3NlY3Rpb25fZGF0YSAoYmZkICppYmZkIEFUVFJJQlVU RV9VTlVTRUQsCiAgIHJldHVybiB0cnVlOwogfQogCisjaWZkZWYgSEFWRV9NTUFQCiB1aW50cHRy X3QgX2JmZF9wYWdlc2l6ZTsKIHVpbnRwdHJfdCBfYmZkX3BhZ2VzaXplX20xOwogdWludHB0cl90 IF9iZmRfbWluaW11bV9tbWFwX3NpemU7CkBAIC0xNTg3LDMgKzE1ODgsNCBAQCBiZmRfaW5pdF9w YWdlc2l6ZSAodm9pZCkKICAgLyogVGhlIG1pbmltdW0gc2VjdGlvbiBzaXplIHRvIHVzZSBtbWFw LiAgKi8KICAgX2JmZF9taW5pbXVtX21tYXBfc2l6ZSA9IF9iZmRfcGFnZXNpemUgKiA0OwogfQor I2VuZGlmCmRpZmYgLS1naXQgYS9iZmQvbGliYmZkLmggYi9iZmQvbGliYmZkLmgKaW5kZXggYmVk N2Q4OGQ0ZWMuLmJmZTNjNmYxNzYyIDEwMDY0NAotLS0gYS9iZmQvbGliYmZkLmgKKysrIGIvYmZk L2xpYmJmZC5oCkBAIC04NTQsOSArODU0LDExIEBAIGV4dGVybiBiZmRfYnl0ZSAqIF9iZmRfd3Jp dGVfdW5zaWduZWRfbGViMTI4CiBleHRlcm4gc3RydWN0IGJmZF9saW5rX2luZm8gKl9iZmRfZ2V0 X2xpbmtfaW5mbyAoYmZkICopCiAgIEFUVFJJQlVURV9ISURERU47CiAKKyNpZmRlZiBIQVZFX01N QVAKIGV4dGVybiB1aW50cHRyX3QgX2JmZF9wYWdlc2l6ZSBBVFRSSUJVVEVfSElEREVOOwogZXh0 ZXJuIHVpbnRwdHJfdCBfYmZkX3BhZ2VzaXplX20xIEFUVFJJQlVURV9ISURERU47CiBleHRlcm4g dWludHB0cl90IF9iZmRfbWluaW11bV9tbWFwX3NpemUgQVRUUklCVVRFX0hJRERFTjsKKyNlbmRp ZgogCiAjaWYgR0NDX1ZFUlNJT04gPj0gNzAwMAogI2RlZmluZSBfYmZkX211bF9vdmVyZmxvdyhh LCBiLCByZXMpIF9fYnVpbHRpbl9tdWxfb3ZlcmZsb3cgKGEsIGIsIHJlcykKLS0gCjIuNDQuMAoK --0000000000000b753f0615969a81--