diff options
author | Sergey Bugaev <bugaevc@gmail.com> | 2024-03-23 20:32:44 +0300 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-03-23 22:47:26 +0100 |
commit | 49aa652db810ebdca3a662ebd5b0468bd08ec688 (patch) | |
tree | 64aa85312a1742e1754cfece8681bee327c59cc9 | |
parent | 4648bfbbde5466929d24013478697cbdec847b46 (diff) | |
download | glibc-49aa652db810ebdca3a662ebd5b0468bd08ec688.zip glibc-49aa652db810ebdca3a662ebd5b0468bd08ec688.tar.gz glibc-49aa652db810ebdca3a662ebd5b0468bd08ec688.tar.bz2 |
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>
-rw-r--r-- | elf/dl-support.c | 6 | ||||
-rw-r--r-- | elf/rtld.c | 2 | ||||
-rw-r--r-- | libio/libioP.h | 2 |
3 files changed, 8 insertions, 2 deletions
diff --git a/elf/dl-support.c b/elf/dl-support.c index 451932d..cb0bbd2 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; @@ -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 1af287b..1a7f547 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 |