public inbox for glibc-cvs@sourceware.org
help / color / mirror / Atom feed
From: Samuel Thibault <sthibaul@sourceware.org>
To: glibc-cvs@sourceware.org
Subject: [glibc] Allow glibc to be compiled without EXEC_PAGESIZE
Date: Sat, 23 Mar 2024 22:16:26 +0000 (GMT)	[thread overview]
Message-ID: <20240323221626.5E6223858D3C@sourceware.org> (raw)

https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=49aa652db810ebdca3a662ebd5b0468bd08ec688

commit 49aa652db810ebdca3a662ebd5b0468bd08ec688
Author: Sergey Bugaev <bugaevc@gmail.com>
Date:   Sat Mar 23 20:32:44 2024 +0300

    Allow glibc to be compiled without EXEC_PAGESIZE
    
    We would like to avoid statically defining any specific page size on
    aarch64-gnu, and instead make sure that everything uses the dynamic
    page size, available via vm_page_size and GLRO(dl_pagesize).
    
    There are currently a few places in glibc that require EXEC_PAGESIZE
    to be defined. Per Roland's suggestion [0], drop the static
    GLRO(dl_pagesize) initializers (for now, only if EXEC_PAGESIZE is not
    defined), and don't require EXEC_PAGESIZE definition for libio to
    enable mmap usage.
    
    [0]: https://mail.gnu.org/archive/html/bug-hurd/2011-10/msg00035.html
    
    Signed-off-by: Sergey Bugaev <bugaevc@gmail.com>
    Message-ID: <20240323173301.151066-4-bugaevc@gmail.com>

Diff:
---
 elf/dl-support.c | 6 +++++-
 elf/rtld.c       | 2 ++
 libio/libioP.h   | 2 +-
 3 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/elf/dl-support.c b/elf/dl-support.c
index 451932dd03..cb0bbd213f 100644
--- a/elf/dl-support.c
+++ b/elf/dl-support.c
@@ -135,7 +135,11 @@ void *_dl_random;
 #include <dl-procruntime.c>
 #include <dl-procinfo.c>
 
-size_t _dl_pagesize = EXEC_PAGESIZE;
+size_t _dl_pagesize
+#ifdef EXEC_PAGESIZE
+  = EXEC_PAGESIZE
+#endif
+;
 
 size_t _dl_minsigstacksize = CONSTANT_MINSIGSTKSZ;
 
diff --git a/elf/rtld.c b/elf/rtld.c
index ac4bb23652..18d73f19c6 100644
--- a/elf/rtld.c
+++ b/elf/rtld.c
@@ -358,7 +358,9 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
     ._dl_debug_fd = STDERR_FILENO,
     ._dl_lazy = 1,
     ._dl_fpu_control = _FPU_DEFAULT,
+#ifdef EXEC_PAGESIZE
     ._dl_pagesize = EXEC_PAGESIZE,
+#endif
     ._dl_inhibit_cache = 0,
     ._dl_profile_output = "/var/tmp",
 
diff --git a/libio/libioP.h b/libio/libioP.h
index 1af287b19f..1a7f547e0c 100644
--- a/libio/libioP.h
+++ b/libio/libioP.h
@@ -852,7 +852,7 @@ extern off64_t _IO_seekpos_unlocked (FILE *, off64_t, int)
 #  define MAP_ANONYMOUS MAP_ANON
 # endif
 
-# if !defined(MAP_ANONYMOUS) || !defined(EXEC_PAGESIZE)
+# if !defined(MAP_ANONYMOUS)
 #  undef _G_HAVE_MMAP
 #  define _G_HAVE_MMAP 0
 # endif

                 reply	other threads:[~2024-03-23 22:16 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240323221626.5E6223858D3C@sourceware.org \
    --to=sthibaul@sourceware.org \
    --cc=glibc-cvs@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).