From 49aa652db810ebdca3a662ebd5b0468bd08ec688 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Sat, 23 Mar 2024 20:32:44 +0300 Subject: 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 Message-ID: <20240323173301.151066-4-bugaevc@gmail.com> --- elf/dl-support.c | 6 +++++- elf/rtld.c | 2 ++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'elf') 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 #include -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", -- cgit v1.2.3