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>
#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;
._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",
# 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